3.6 KiB
3.6 KiB
Runbook: запуск демо и загрузка данных
Этот документ фиксирует порядок действий и make‑таргеты. Он не описывает внутренности ClickHouse‑слоёв (это в plans/clickhouse_ddl.md).
Предпосылки
- Docker + Docker Compose.
- Доступ к Docker daemon (если
docker compose ...пишетpermission denied ... /var/run/docker.sock, добавьте пользователя в группуdockerили запускайте команды с правами, принятыми в вашей среде).
Быстрый сценарий
- Поднять инфраструктуру:
make up
- (Опционально) Залить данные в Kafka:
make data
make data не зависит от ClickHouse/DDL — достаточно, чтобы Kafka была поднята.
- Применить DDL в ClickHouse:
make ddl
Make таргеты
make up—docker 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.jsonl→browser_eventsdata/location_events.jsonl→location_eventsdata/device_events.jsonl→device_eventsdata/geo_events.jsonl→geo_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-файлы из sql/ddl/* по фиксированному порядку. Для ENGINE = Kafka важно, чтобы kafka_broker_list был доступен из контейнера ClickHouse.
В текущем compose:
- для соединений “контейнер → Kafka” используйте
kafka:29092; localhost:9092подходит только для клиентов на хосте.