Добавлен контроль качества данных
This commit is contained in:
@@ -15,7 +15,8 @@ Airflow по‑прежнему использует **Postgres** только
|
||||
- **Kafka (KRaft, без Zookeeper)** — генерация событий.
|
||||
- **Airflow (2.9)** — оркестрация пайплайна, metadata в Postgres.
|
||||
- **DAG** `kafka_to_greenplum.py` — генерирует данные → пишет в Kafka → читает и грузит в Greenplum.
|
||||
- **DDL** `sql/ddl_gp.sql` — создаёт таблицу `orders` с распределением по `order_id`.
|
||||
- **DAG** `greenplum_data_quality.py` — выполняет проверки качества данных (наличие таблицы, схема, заполненность, дубли).
|
||||
- **DDL** `sql/ddl_gp.sql` — создаёт колонночную таблицу `orders` без PRIMARY KEY (AO-таблицы GP6 не поддерживают его), распределённую по `order_id`; контроль дублей реализован в DAG.
|
||||
|
||||
> Примечание по версиям и надёжности: используется образ `woblerr/greenplum:6.27.1` с поддержкой переменных окружения и fallback значениями. Для продакшен‑подобных тестов зафиксируй digest (SHA256) конкретного тега на Docker Hub.
|
||||
|
||||
@@ -149,7 +150,6 @@ SELECT count(*) FROM public.orders;
|
||||
- Нет топика `orders`: создай его через Kafka UI (или перезапусти DAG после включения авто‑создания топиков).
|
||||
- `make` отсутствует на Windows: используй команды `docker compose` из раздела «Альтернатива без Make» или установи Git Bash/WSL.
|
||||
|
||||
## Что дальше (опциональные расширения)
|
||||
- Добавить пример загрузки через внешние таблицы/`gpfdist` для демонстрации быстрых батчей в Greenplum.
|
||||
- Показать альтернативу с GPDB 7 и `ON CONFLICT` (отдельная ветка/вариант DAG).
|
||||
- Добавить пример использования Airflow Variables/Secrets Backend для передачи порогов и секретов.
|
||||
## Проверка данных
|
||||
- Подними стенд (`make up && make airflow-init`) и запусти DAG `kafka_to_greenplum`, чтобы заполнить таблицу `orders`.
|
||||
- Активируй и запусти DAG `greenplum_data_quality` — он последовательно проверит наличие таблицы, схему, объём данных и отсутствие дублей. Все проверки выполняются внутри Airflow и используют те же настройки подключений.
|
||||
|
||||
Reference in New Issue
Block a user