Commit Graph
12 Commits
Author SHA1 Message Date
ddadmin 281d9d25c9 feat(superset): честный row-lineage по слоям вместо ложной DQ-воронки
- Зачем:
  - чарт «Data Quality Summary» суммировал total_rows по всем таблицам слоя,
    складывал таблицы разного зерна (события 1000 + визиты 99 + error-таблицы 0)
    и рисовал убывающую «воронку потерь» (stg≈4250→ods≈2198→dds≈1099), которой
    в данных нет. На учебном стенде это активно вводит в заблуждение.
- Что:
  - чарт переделан в row-lineage одного event-зерна и переименован в
    «🧱 Rows by Layer (event)»; rename идемпотентный через previous_slice_names.
  - чарт берёт по одной канонической таблице на слой
    (browser_raw→browser_event→event→v_events_enriched), порядок слоёв задан
    числовым префиксом в groupby + order_bars.
  - в dm.dq_summary добавлена строка total_rows для слоя dm, чтобы цепочка
    замыкалась до витрины.
  - описание дашборда обновлено под новый смысл.
- Проверка:
  - python3 -m py_compile superset/create_dashboard.py.
  - make transform / прогон sql/dm/40_dds_to_dm.sql; в dq_summary есть строка dm.
  - make superset-dashboard (идемпотентно, 10 чартов, дублей нет).
  - визуально через playwright-cli: 4 столбца 1·stg→2·ods→3·dds→4·dm,
    видимый шаг дедупликации 1050→1000, консоль без ошибок.
2026-06-06 17:48:43 +03:00
ddadmin 1bec6bb8ad feat(superset): обновлен состав KPI и воронки дашборда
- Зачем:
  - нужно убрать дублирующий KPI Unique Sessions и сделать эталонный dashboard честнее для учебного анализа.
- Что:
  - обновлены KPI, добавлена Conversion to /confirmation и Page Funnel.
  - добавлена идемпотентная миграция старых chart names без дублей.
  - синхронизированы документация, урок 6 и спека редизайна.
  - добавлен handoff для продолжения работы в новой сессии.
- Проверка:
  - python3 -m py_compile superset/create_dashboard.py.
  - make superset-dashboard.
  - Superset metadata: dashboard_charts=10, obsolete_unique_sessions=0, page_funnel_type=funnel.
2026-06-06 17:00:02 +03:00
ddadmin f1fc31fa3f fix(superset): починена ROW-раскладка дашборда и честные KPI
- Зачем:
  - дашборд рендерился одной колонкой во всю ширину, а KPI показывали
    значение последнего часового бакета (1/1/1) вместо итогов по срезу.
- Что:
  - чарты разложены по строкам-контейнерам ROW (Superset layout v2):
    KPI-полоса 4-в-ряд + аналитические блоки парами вместо плоского
    списка CHART под GRID с игнорируемыми x/y.
  - KPI переведены с big_number на big_number_total без granularity_sqla;
    sync_query_context чистит granularity/time_grain для тотала.
- Проверка:
  - make superset-dashboard; GET /api/v1/dashboard/1/datasets → 200;
    position_json содержит 4 ROW; KPI показывают 50/26/26/1.92.
2026-06-05 22:56:53 +03:00
ddadmin 9f69a33c31 fix(superset): исправлен BI-дашборд и добавлен урок 6
- Зачем:
  - Superset dashboard открывался с ошибками datasources и неудобным layout, а курс не содержал готового урока по BI-витрине.
- Что:
  - добавлен урок 6 про Superset поверх ClickHouse DM-витрин.
  - исправлена раскладка dashboard и дефолтный фильтр даты для исторических демо-данных.
  - добавлено восстановление metadata колонок датасетов при обновлении dashboard.
- Проверка:
  - make superset-dashboard.
  - /api/v1/dashboard/1/datasets и /superset/explore_json для chart 10 возвращают 200.
  - python3 -m py_compile superset/create_dashboard.py; git diff --cached --check.
2026-06-05 22:30:19 +03:00
ddadmin ec6111d260 fix(superset): stabilize bootstrap after clean reset
- make superset-init run via dedicated init service\n- tolerate missing dm views during early metadata refresh\n- add clickhouse dependency for init service\n- document clean-reset behavior and re-init flow
2026-02-11 09:48:56 +03:00
ddadmin 7819af8688 fix(superset): restore ClickHouse dialect and dataset metadata sync
- switch Superset ClickHouse URI back to clickhousedb://\n- refresh dataset metadata during init to restore filter columns\n- install runtime deps in image layer and add troubleshooting notes
2026-02-11 09:23:48 +03:00
ddadmin 99731850f8 fix(superset): исправлена инициализация датасетов
- Добавлен clickhouse-sqlalchemy в Dockerfile для поддержки диалекта
- Изменен URI с clickhousedb:// на clickhouse+connect://
- Убран вызов fetch_metadata() в init_superset.py (вызывал ошибку диалекта)
- Датасеты создаются без предварительного fetch_metadata

Тестирование:
- Чистый запуск: 
- Перезапуск: 
- API: 
2026-02-11 00:12:04 +03:00
ddadmin 22f08382e5 fix(superset): align bootstrap with clickhousedb uri
- Why:
  - Superset bootstrap used outdated ClickHouse URI format and did not fail fast on init errors.
  - docs and exported dashboard metadata diverged from runtime connection settings.
- What:
  - build ClickHouse URI from env vars and use clickhousedb:// in init script.
  - refresh dataset metadata on existing datasets and surface import errors.
  - run create_dashboard during superset-init startup and align docs/exported URI references.
  - ignore node_modules in git.
- Check:
  - python3 -m py_compile superset/init_superset.py
  - manual dashboard smoke check in UI (charts render)
2026-02-10 23:51:38 +03:00
ddadmin 6533f8b32c fix(superset): fix dashboard chart rendering in Superset 4
- Why:
  - dashboard tiles failed with "Item with key 'echarts_bar' is not registered".
  - existing slice query_context stayed stale after config updates.
- What:
  - switch Top Pages and Data Quality Summary from \'echarts_bar\' to \'dist_bar\'.
  - use \'groupby\' for categorical bar charts and sync this into query_context.
  - keep dashboard export config aligned with runtime chart definitions.
- Check:
  - python3 -m py_compile superset/create_dashboard.py
  - docker compose exec -T superset python /app/superset_init/create_dashboard.py
  - DB check for slices 9/10: viz_type=form_data=query_context set to dist_bar
2026-02-10 23:49:40 +03:00
ddadmin cb3665c1be feat(superset): автоматическая инициализация с PostgreSQL метаданными
- Добавлена автоматическая инициализация Superset (подключение ClickHouse, 6 датасетов, 10 чартов, дашборд)
- Переведено хранение метаданных с SQLite на PostgreSQL (shared с Airflow)
- Добавлен superset_config.py для конфигурации PostgreSQL
- Обновлен Dockerfile.superset: postgresql-client, psycopg2-binary
- Обновлен docker-compose.yml: volume mount конфига, SUPERSET_CONFIG_PATH
- Исправлены скрипты init_superset.py и create_dashboard.py для работы с shell
- Обновлена документация в README.md: раздел Superset с инструкциями

Тестирование:
- Проверена работа после перезапуска (данные сохраняются)
- Проверен чистый запуск с нуля
- API и UI доступны
2026-02-10 21:56:47 +03:00
ddadmin 91f1a790cb fix: исправлен путь Kafka volume и обновлены скрипты Superset
- Исправлен путь Kafka volume с /tmp/kraft-combined-logs на /var/lib/kafka/data
  (решена проблема с правами доступа при старте Kafka)
- Обновлен superset/init_superset.py: улучшена обработка ошибок SQLite
- Обновлен superset/create_dashboard.py: оптимизирован импорт модулей
2026-02-10 20:48:05 +03:00
ddadmin 2e48f6065a feat: добавлен дашборд Superset для e-commerce аналитики
- Добавлен сервис superset-init в docker-compose для автоматической инициализации
- Созданы Python-скрипты для инициализации подключения ClickHouse и создания датасетов
- Создан скрипт для автоматического создания дашборда с 10 чартами
- Создан скрипт экспорта дашборда в JSON
- Добавлен экспортируемый JSON дашборда (ecommerce_analytics.zip.json)
- Обновлен Makefile с командами superset-init, superset-dashboard, superset-export
- Добавлена документация docs/SUPERSET_DASHBOARD.md

Дашборд включает:
- KPI блок (Total Events, Unique Users, Sessions, Avg/Session)
- Динамика трафика (Events by Hour, Traffic by Device)
- География (World Map)
- Маркетинг (UTM Effectiveness Table, Top Pages)
- Качество данных (DQ Summary)
- Native Filters (Date Range, Country, Device, Browser)
2026-02-10 20:48:05 +03:00