ddadmin
1b9991f595
fix(airflow): simplify kafka_load params and align docs
...
- Why:
- For DE task we only need full ingest or limit-based sample.
- load_* and full_load params were redundant and unclear in current flow.
- What:
- Remove full_load and load_* params from kafka_load DAG contract.
- Simplify kafka helpers (validate/check files) to fixed 4-stream ingest.
- Sync AGENTS, README, runbook, architecture and airflow plan docs.
- Check:
- python3 -m py_compile dags/kafka_load_dag.py dags/utils/kafka_helpers.py
- Airflow smoke/full runs: ddl_init -> kafka_load -> etl_pipeline (all success).
- Legacy path: make data && make transform (success).
2026-02-08 18:33:54 +03:00
ddadmin
10f5bc3510
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 задач корректно определены)
2026-02-08 18:13:22 +03:00
ddadmin
4819e10cf8
feat: изменён режим загрузки данных по умолчанию — теперь все записи
...
- По умолчанию bash ./scripts/load_kafka_data.sh
Resetting topics: browser_events location_events device_events geo_events
Loading mode: full (LIMIT=unset)
Bootstrap (inside container): kafka:29092
Publishing: data/browser_events.jsonl -> browser_events (full)
Publishing: data/device_events.jsonl -> device_events (full)
Publishing: data/geo_events.jsonl -> geo_events (full)
Publishing: data/location_events.jsonl -> location_events (full)
Done. загружает все записи из файлов (вместо 50 строк)
- Для ограничения используется bash ./scripts/load_kafka_data.sh
- Удалён устаревший параметр
Изменённые файлы:
- scripts/load_kafka_data.sh — обновлена логика и документация
- plans/runbook.md — обновлены примеры использования
- plans/kafka_ingest_plan.md — обновлён план реализации
Теперь:
- bash ./scripts/load_kafka_data.sh
Resetting topics: browser_events location_events device_events geo_events
Loading mode: full (LIMIT=unset)
Bootstrap (inside container): kafka:29092
Publishing: data/browser_events.jsonl -> browser_events (full)
Publishing: data/device_events.jsonl -> device_events (full)
Publishing: data/geo_events.jsonl -> geo_events (full)
Publishing: data/location_events.jsonl -> location_events (full)
Done. — все записи (4000 сообщений)
- bash ./scripts/load_kafka_data.sh
Resetting topics: browser_events location_events device_events geo_events
Loading mode: slice (LIMIT=50)
Bootstrap (inside container): kafka:29092
Publishing: data/browser_events.jsonl -> browser_events (first 50 lines)
Publishing: data/device_events.jsonl -> device_events (first 50 lines)
Publishing: data/geo_events.jsonl -> geo_events (first 50 lines)
Publishing: data/location_events.jsonl -> location_events (first 50 lines)
Done. — 50 строк каждого типа (200 сообщений)
2026-02-08 17:21:22 +03:00
ddadmin
284dc3dc1f
Move STG->ODS to Airflow batch and align monitoring
2026-02-08 16:36:01 +03:00
ddadmin
eb80bc1870
feat(infra): add makefile and kafka data loading script
...
Add build automation via Makefile with targets for docker compose
management, DDL application, and data ingestion. Implement a robust bash
script for loading JSONL demo data into Kafka topics with configurable
options for limits, full dataset loading, and topic reset behavior.
2026-02-05 22:10:48 +03:00
ddadmin
380e8fcff3
docs(plans): fix kafka broker address and add data loading docs
...
Update Kafka broker address to use internal Docker network port (29092)
instead of external port (9092). Add kafka_ingest_plan.md with detailed
implementation strategy and runbook.md with user instructions.
2026-02-05 21:49:09 +03:00