feat(airflow): реализован DAG kafka_load для загрузки в Kafka (фаза 2)
- Добавлен kafka-python==2.0.6 в airflow/requirements.txt - Создан dags/utils/kafka_helpers.py с функциями: - check_kafka_ready() — проверка доступности брокера - prepare_topics() — создание/сброс топиков через KafkaAdminClient - load_jsonl() — загрузка данных через KafkaProducer (limit=0 = все) - validate_load_params(), check_input_files() — валидация - Создан dags/kafka_load_dag.py с TaskGroup: - precheck: check_kafka, check_input_files, validate_load_params - ingest: prepare_topics, параллельная загрузка 4 потоков, verify_publish_counts - Параметры DAG: limit (0 = все), reset_topics, load_* (выбор потоков) - Обновлена документация: AGENTS.md, README.md, plans/runbook.md, plans/airflow_dags_plan.md, docs/ARCHITECTURE.md Тестирование: - Подключение к Kafka: ✅ (kafka:29092 доступен, брокер 2.6.0) - Загрузка данных: ✅ (1000 сообщений — полный файл browser_events) - Python синтаксис: ✅ (py_compile проходит) - Структура DAG: ✅ (все 9 задач корректно определены)
This commit is contained in:
@@ -33,10 +33,18 @@ docker compose ps
|
||||
docker compose exec -T airflow-webserver airflow dags trigger ddl_init
|
||||
```
|
||||
|
||||
Загрузка небольшого среза данных в Kafka:
|
||||
Загрузка данных в Kafka (фаза 2 — через Airflow):
|
||||
```bash
|
||||
make data # по умолчанию первые 50 строк
|
||||
# или: FULL=1 make data # полный датасет (1000 строк)
|
||||
# Вариант 1: Через Airflow DAG (рекомендуется) — полная загрузка по умолчанию
|
||||
docker compose exec -T airflow-webserver airflow dags trigger kafka_load \
|
||||
--conf '{"reset_topics": true}'
|
||||
|
||||
# Ограниченная загрузка — первые 100 строк
|
||||
docker compose exec -T airflow-webserver airflow dags trigger kafka_load \
|
||||
--conf '{"limit": 100, "reset_topics": true}'
|
||||
|
||||
# Вариант 2: Через shell-скрипт (устаревший)
|
||||
make data # полная загрузка
|
||||
```
|
||||
|
||||
Запуск batch-трансформации (STG -> ODS -> DDS -> DM) в Airflow (если DAG выключен, сначала unpause):
|
||||
@@ -95,8 +103,8 @@ flowchart TB
|
||||
end
|
||||
|
||||
subgraph Airflow["Airflow"]
|
||||
DAG[DAG: ddl_init / etl_pipeline]
|
||||
end
|
||||
DAG[DAG: ddl_init / kafka_load / etl_pipeline]
|
||||
end
|
||||
|
||||
Sources -->|make data| Kafka -->|MV| STG -->|Batch SQL| ODS -->|Batch SQL| DDS -->|VIEW| DM
|
||||
DAG -.->|оркестрация| STG & ODS & DDS & DM
|
||||
|
||||
Reference in New Issue
Block a user