Files
clickstream-ch-kafka-supers…/plans/runbook.md
T
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

3.7 KiB
Raw Blame History

Runbook: запуск демо и загрузка данных

Этот документ фиксирует порядок действий и make‑таргеты. Он не описывает внутренности ClickHouse‑слоёв (это в plans/clickhouse_ddl.md).

Предпосылки

  • Docker + Docker Compose.
  • Доступ к Docker daemon (если docker compose ... пишет permission denied ... /var/run/docker.sock, добавьте пользователя в группу docker или запускайте команды с правами, принятыми в вашей среде).

Быстрый сценарий

  1. Поднять инфраструктуру:
make up
  1. (Опционально) Залить данные в Kafka:
make data

make data не зависит от ClickHouse/DDL — достаточно, чтобы Kafka была поднята.

  1. Применить DDL в ClickHouse:
make ddl

Make таргеты

  • make updocker compose up -d (поднимает весь стек из docker-compose.yml).
  • make ddl — применяет исполняемые SQL-файлы из sql/ddl/* в контейнер ClickHouse через clickhouse-client.
  • make data — пересоздаёт топики (по умолчанию) и публикует события из data/*.jsonl в Kafka (1 строка = 1 Kafka message value).
  • make transform — выполняет batch-процесс STG -> ODS -> DDS -> DM через scripts/run_batch.sh.

План реализации механики заливки (дизайн/решения): plans/kafka_ingest_plan.md.

Загрузка данных в Kafka (make data)

Топики

Скрипт использует фиксированный маппинг:

  • data/browser_events.jsonlbrowser_events
  • data/location_events.jsonllocation_events
  • data/device_events.jsonldevice_events
  • data/geo_events.jsonlgeo_events

Режимы загрузки

  • По умолчанию — “debug срез”: первые 50 строк каждого файла.
  • Полная загрузка — весь файл.

Параметры (env):

  • LIMIT — сколько строк брать из каждого .jsonl. По умолчанию загружаются все записи (весь файл). Для ограничения используйте LIMIT=50 или LIMIT=100.
  • RESET_TOPICS — если RESET_TOPICS=1 (по умолчанию), топики удаляются и создаются заново с теми же именами.
  • BOOTSTRAP_SERVER — bootstrap для Kafka изнутри kafka‑контейнера (по умолчанию kafka:29092).

Примеры:

# Загрузить все данные (по умолчанию)
make data

# Быстрый тест — 50 строк на поток
LIMIT=50 make data

# Ограниченная загрузка — 100 строк на поток
LIMIT=100 make data

# Дозалить данные без пересоздания топиков
RESET_TOPICS=0 make data

Применение DDL в ClickHouse (make ddl)

Скрипт исполняет SQL-файлы из sql/ddl/* по фиксированному порядку. Для ENGINE = Kafka важно, чтобы kafka_broker_list был доступен из контейнера ClickHouse.

В текущем compose:

  • для соединений “контейнер → Kafka” используйте kafka:29092;
  • localhost:9092 подходит только для клиентов на хосте.