ddadmin
|
7d18b3fe5c
|
feat(dm): добавлена эталонная витрина dm.sales_report
- Зачем:
- требуется эталонная витрина для обучения паттернам DM-слоя
- демонстрация UPSERT-логики с IS DISTINCT FROM для идемпотентности
- Что:
- DDL: heap-таблица dm.sales_report с 18 полями, DISTRIBUTED BY (flight_date)
- Load: UPSERT (UPDATE + INSERT) с JOIN dim_calendar, dim_airports (x2), dim_tariffs, fact_flight_sales
- DQ: PL/pgSQL DO $$ с проверками непустоты, уникальности, tickets_sold >= passengers_boarded, boarding_rate BETWEEN 0 AND 1
- DAGs: bookings_dm_ddl (DDL), bookings_to_gp_dm (ETL + DQ с параллельными ветками)
- Tests: smoke-тесты для обоих DAG
- sql/ddl_gp.sql: добавлен \i dm/sales_report_ddl.sql
- Проверка:
- make fmt && make lint — passed
- make test — 15 passed, 11 skipped
- make ddl-gp — DDL applied successfully
- airflow dags test bookings_to_gp_dm 2026-02-28T13:00:00 — 4 tasks SUCCESS
- 9243 rows loaded, _load_id подставлен корректно (Jinja2 templating works)
- DQ checks passed
|
2026-02-28 22:13:11 +03:00 |
|