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

3.5 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 из plans/clickhouse_ddl.md в контейнер ClickHouse (извлекает все блоки sql и исполняет их через clickhouse-client).
  • make data — пересоздаёт топики (по умолчанию) и публикует события из data/*.jsonl в Kafka (1 строка = 1 Kafka message value).

План реализации механики заливки (дизайн/решения): 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 (по умолчанию 50). LIMIT=0 трактуется как “весь файл”.
  • FULL — если FULL=1, грузит весь файл независимо от LIMIT.
  • RESET_TOPICS — если RESET_TOPICS=1 (по умолчанию), топики удаляются и создаются заново с теми же именами.
  • BOOTSTRAP_SERVER — bootstrap для Kafka изнутри kafka‑контейнера (по умолчанию kafka:29092).

Примеры:

# 100 строк на поток
LIMIT=100 make data

# Полная заливка всех строк
FULL=1 make data

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

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

Скрипт исполняет SQL из plans/clickhouse_ddl.md. Для ENGINE = Kafka важно, чтобы kafka_broker_list был доступен из контейнера ClickHouse.

В текущем compose:

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