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 сообщений)
This commit is contained in:
@@ -72,14 +72,13 @@
|
||||
Будут поддержаны:
|
||||
|
||||
- `RESET_TOPICS=1|0` — пересоздавать ли топики перед загрузкой (по умолчанию `1`).
|
||||
- `LIMIT=<int>` — сколько строк брать из каждого файла в debug‑режиме (по умолчанию `50`).
|
||||
- `FULL=1|0` — грузить ли весь файл (по умолчанию `0`). Если `FULL=1`, параметр `LIMIT` игнорируется.
|
||||
- `LIMIT=<int>` — сколько строк брать из каждого файла. Если не указан — загружаются все записи.
|
||||
- `BOOTSTRAP_SERVER=<host:port>` — bootstrap изнутри Kafka‑контейнера (по умолчанию `kafka:29092`).
|
||||
|
||||
Это обеспечивает:
|
||||
|
||||
- быстрый debug: `LIMIT=50 make data`;
|
||||
- полная заливка осознанно: `FULL=1 make data`.
|
||||
- полная загрузка по умолчанию: `make data` (все записи);
|
||||
- быстрый debug: `LIMIT=50 make data`.
|
||||
|
||||
---
|
||||
|
||||
@@ -94,14 +93,14 @@
|
||||
1) В начале скрипта зафиксирую defaults:
|
||||
- `KAFKA_SERVICE=kafka`
|
||||
- `BOOTSTRAP_SERVER=kafka:29092`
|
||||
- `RESET_TOPICS=1`, `LIMIT=50`, `FULL=0`
|
||||
- `RESET_TOPICS=1`, `LIMIT=` (пустое — все записи)
|
||||
2) Добавлю проверку наличия исходных файлов `data/*_events.jsonl` и понятные ошибки.
|
||||
3) Реализую обнаружение Kafka CLI внутри контейнера (через `command -v`), чтобы не завязываться на конкретный путь.
|
||||
4) Реализую “reset” топиков:
|
||||
- удалить (`--delete --if-exists`) 4 фиксированных топика;
|
||||
- создать (`--create --if-not-exists`) эти же топики с `partitions=1`, `replication-factor=1`.
|
||||
5) Реализую загрузку:
|
||||
- если `FULL=1` → `cat file | producer`;
|
||||
- если `LIMIT` не задан → `cat file | producer` (весь файл);
|
||||
- иначе → `head -n LIMIT file | producer`;
|
||||
- один топик на файл по маппингу.
|
||||
6) Добавлю минимальные, но полезные сообщения в stdout (что грузим, сколько строк, в какой топик) без лишнего шума.
|
||||
@@ -149,9 +148,9 @@
|
||||
- В Kafka UI (`localhost:8082`) видны 4 топика и в них появились сообщения.
|
||||
- `make data`:
|
||||
- работает без ClickHouse/DDL;
|
||||
- по умолчанию грузит небольшой срез (не весь файл);
|
||||
- в режиме `FULL=1` грузит весь файл;
|
||||
- в режиме `RESET_TOPICS=1` даёт воспроизводимый “чистый” прогон.
|
||||
- по умолчанию грузит все записи (весь файл);
|
||||
- в режиме `LIMIT=50` грузит первые 50 строк (быстрый тест);
|
||||
- в режиме `RESET_TOPICS=1` даёт воспроизводимый "чистый" прогон.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user