feat(dags): add ddl dag for gp and rename csv dq
This commit is contained in:
@@ -24,7 +24,7 @@
|
||||
- Откройте UI: http://localhost:8080 (admin/admin).
|
||||
- Включите и запустите DAG `csv_to_greenplum`. Дождитесь Success.
|
||||
- Проверьте данные: `make gp-psql` → `SELECT COUNT(*) FROM public.orders;`.
|
||||
- Дополнительно: запустите `greenplum_data_quality` — все проверки должны быть зелёные.
|
||||
- Дополнительно: запустите `csv_to_greenplum_dq` — все проверки должны быть зелёные.
|
||||
|
||||
Если что‑то не работает — смотрите «Типичные проблемы» и «Быстрый reset» ниже.
|
||||
|
||||
@@ -170,8 +170,13 @@ uv run black --check airflow tests
|
||||
- **pandas** — библиотека для генерации и анализа данных в формате CSV
|
||||
|
||||
### Готовые DAG (workflow)
|
||||
- **orders_base_ddl** — создаёт базовую таблицу `public.orders` для CSV‑пайплайна
|
||||
- **bookings_stg_ddl** — готовит схему `stg` и таблицы `stg.bookings_ext` / `stg.bookings`
|
||||
- **csv_to_greenplum** — базовый pipeline: pandas → CSV → Greenplum
|
||||
- **greenplum_data_quality** — проверки качества данных (наличие таблицы, схема, дубликаты)
|
||||
- **bookings_to_gp_stage** — пример загрузки из демо‑БД bookings в слой STG
|
||||
- **csv_to_greenplum_dq** — проверки качества данных (наличие таблицы, схема, дубликаты)
|
||||
|
||||
> Учебный путь — триггернуть DDL‑DAG: для CSV `orders_base_ddl`, для bookings `bookings_stg_ddl`. Технический шорткат для быстрой инициализации — `make ddl-gp` (он не вызывается автоматически при старте контейнеров).
|
||||
|
||||
### Полезные команды
|
||||
```bash
|
||||
@@ -179,7 +184,7 @@ uv run black --check airflow tests
|
||||
make up # Запустить весь стенд
|
||||
make down # Остановить и удалить данные
|
||||
make airflow-init # Инициализировать Airflow
|
||||
make ddl-gp # Применить DDL к Greenplum
|
||||
make ddl-gp # Применить DDL к Greenplum вручную
|
||||
make gp-psql # Подключиться к Greenplum через psql
|
||||
make bookings-init # Установить демобазу bookings в Postgres (по умолчанию генерирует 1 день)
|
||||
make bookings-generate-day # Добавить ещё один день данных в bookings (можно вызвать несколько раз)
|
||||
@@ -250,7 +255,7 @@ docker compose -f docker-compose.yml exec bookings-db bash -lc 'PGPASSWORD="$POS
|
||||
|
||||
### Проверка качества данных
|
||||
|
||||
Запустите DAG `greenplum_data_quality` для автоматической проверки:
|
||||
Запустите DAG `csv_to_greenplum_dq` для автоматической проверки:
|
||||
- Наличие таблицы в базе
|
||||
- Соответствие схемы ожидаемой структуре
|
||||
- Объем загруженных данных
|
||||
@@ -366,7 +371,7 @@ load_bookings_to_stg = PostgresOperator(
|
||||
├── airflow/
|
||||
│ └── dags/ # Файлы workflow (DAG)
|
||||
│ ├── csv_to_greenplum.py
|
||||
│ ├── data_quality_greenplum.py
|
||||
│ ├── csv_to_greenplum_dq.py
|
||||
│ └── bookings_to_gp_stage.py
|
||||
├── bookings/ # Скрипты и файлы для демобазы bookings в Postgres
|
||||
├── sql/
|
||||
@@ -381,7 +386,7 @@ load_bookings_to_stg = PostgresOperator(
|
||||
## 💡 Советы для дальнейшего обучения
|
||||
|
||||
1. **Поэкспериментируйте с DAG** — измените параметры генерации данных или размер батча
|
||||
2. **Добавьте свои проверки** — расширьте DAG `data_quality_greenplum.py`
|
||||
2. **Добавьте свои проверки** — расширьте DAG `csv_to_greenplum_dq.py`
|
||||
3. **Попробуйте другие источники** — замените генератор данных на чтение из файла или API
|
||||
4. **Изучите Airflow deeper** — добавьте зависимости между задачами, настройте расписания
|
||||
|
||||
|
||||
Reference in New Issue
Block a user