Files
clickstream-ch-kafka-supers…/Makefile
T
ddadmin 92e9c4b45a docs(accuracy): профильная документация выверена по коду
- Зачем:
  - профильные доки отстали от реализации: схема ods.*_errors, DQ-split и
    сборка dds.event описывались неверно, ряд артефактов и параметров отсутствовал.
    Канон по этим темам де-факто задают свежие уроки 2–3 курса.
- Что:
  - ARCHITECTURE: ods.*_errors как копия с Kafka-метаданными+raw+error_reason;
    DQ-split подан как пересекающийся; dds.event — browser-driven LEFT JOIN с
    маркером location_not_found; добавлен перечень DQ-маркеров; уточнены
    dq_summary (слой dm, orphan_events) и v_session_overview.
  - REPO_MAP: добавлен sql/ods/20_stg_to_ods.sql, утилиты DAG, скрипты Superset;
    scripts/make помечены как запасной путь, Airflow — основной.
  - OPERATIONS: параметр wait_stg_timeout_sec; порт Superset и креды ClickHouse.
  - SUPERSET_DASHBOARD: исправлен пароль ClickHouse (123456); убран сломанный
    make superset-export, удалён superset/export_dashboard.py и target в Makefile.
- Проверка:
  - git diff проверен против sql/*, airflow/dags/*, configs/default_user.xml;
    ER-диаграмма провалидирована mermaid-валидатором.
2026-06-06 21:43:31 +03:00

88 lines
3.8 KiB
Makefile

.PHONY: up down clean ddl data transform logs \
reload-monitoring recover-monitoring \
superset-init superset-dashboard superset-ui superset-restart
COMPOSE ?= docker compose
# ============================================================================
# Основные команды
# ============================================================================
up:
$(COMPOSE) up -d
# Остановить и удалить контейнеры/сети текущего проекта
down:
$(COMPOSE) down
# Полная очистка окружения проекта (включая volumes)
clean:
$(COMPOSE) down -v --remove-orphans
logs:
$(COMPOSE) logs -f --tail=200 $(service)
# ============================================================================
# ETL Pipeline
# ============================================================================
ddl:
bash ./scripts/apply_clickhouse_ddl.sh
data:
bash ./scripts/load_kafka_data.sh
transform:
bash ./scripts/run_batch.sh
# Перезагрузка конфигурации мониторинга (после изменений в provisioning)
reload-monitoring:
@echo "=== Перезагрузка сервисов мониторинга ==="
$(COMPOSE) up -d prometheus grafana kafka-exporter statsd-exporter
$(COMPOSE) restart prometheus statsd-exporter
@echo "=== Перезагрузка provisioning Grafana ==="
@sleep 2
@curl -s -u admin:admin -X POST http://localhost:3000/api/admin/provisioning/datasources/reload && echo " [datasources]"
@curl -s -u admin:admin -X POST http://localhost:3000/api/admin/provisioning/dashboards/reload && echo " [dashboards]"
@curl -s -u admin:admin -X POST http://localhost:3000/api/admin/provisioning/alerting/reload && echo " [alerting]"
@echo "=== Проверка ==="
@curl -s http://localhost:9090/api/v1/targets | grep -o '"job":"[^"]*"' | sort | uniq
# Восстановление мониторинга после сбоев (например, out of bounds / пустые дашборды)
recover-monitoring:
@echo "=== Восстановление мониторинга (жесткий режим) ==="
$(COMPOSE) rm -sf prometheus statsd-exporter
$(COMPOSE) up -d prometheus grafana kafka-exporter statsd-exporter
$(COMPOSE) restart airflow-scheduler airflow-webserver
@echo "=== Перезагрузка provisioning Grafana ==="
@sleep 2
@curl -s -u admin:admin -X POST http://localhost:3000/api/admin/provisioning/datasources/reload && echo " [datasources]"
@curl -s -u admin:admin -X POST http://localhost:3000/api/admin/provisioning/dashboards/reload && echo " [dashboards]"
@curl -s -u admin:admin -X POST http://localhost:3000/api/admin/provisioning/alerting/reload && echo " [alerting]"
@echo "=== Проверка targets ==="
@curl -s http://localhost:9090/api/v1/targets | grep -o '"job":"[^"]*"' | sort | uniq
@curl -s http://localhost:9090/api/v1/targets | grep -o '"health":"[^"]*"' | sort | uniq -c
# ============================================================================
# Superset команды
# ============================================================================
# Инициализация Superset (подключение к ClickHouse + датасеты)
superset-init:
$(COMPOSE) up -d postgres-metadata clickhouse
$(COMPOSE) up --abort-on-container-exit --exit-code-from superset-init superset-init
$(COMPOSE) up -d --no-deps superset
# Создание дашборда с чартами
superset-dashboard:
$(COMPOSE) exec -T superset bash -c "python /app/superset_init/create_dashboard.py"
# Открыть Superset UI
superset-ui:
@echo "Superset доступен по адресу: http://localhost:8088"
@echo "Логин: admin / Пароль: admin"
# Перезапуск Superset
superset-restart:
$(COMPOSE) restart superset