Модуль 8. Интеграция StarRocks с BI и DWH
Методологическое понимание интеграции
StarRocks по своей природе — compute-движок для аналитики, который легко встраивается в уже существующую инфраструктуру.
Интеграция с BI/DWH — это не только «настроить коннектор», а целый процесс:
-
Определить роль StarRocks в архитектуре:
- как витринный слой (BI подключается напрямую);
- как весь DWH (ETL → StarRocks → BI);
- как query engine к Lakehouse (Iceberg/Hive/S3).
- Спроектировать слои и схемы: сырые таблицы, витрины, MVs.
- Выбрать способ подключения: JDBC/ODBC, BI-коннектор, SQL API.
- Обеспечить SLA BI: предагрегация, кэш, ограничения на тяжёлые запросы.
Подключение к BI-инструментам
1. Power BI
- Подключение через ODBC-драйвер MySQL.
-
Важно:
- Включить DirectQuery для работы в реальном времени.
- Для больших наборов — использовать MV и агрегации.
- Поддержка параметрических запросов для фильтров.
Пример подключения:
- DSN на Windows:
Server=fe_host;Port=9030;Database=sales;User=bi_user;Password=****
- В Power BI → Get Data → ODBC → Выбрать DSN.
2. Tableau
- Подключение как к MySQL.
- Для live-режима — ограничить фильтрами и партициями.
- Рекомендовано использовать Extract только при стабильных наборах данных.
3. FineBI
- Подключение через JDBC MySQL.
- Указывать UTF-8 для корректной работы с текстом.
- Настроить пул соединений в FineBI для избежания overhead на установку коннектов.
4. Apache Superset
- Подключение через SQLAlchemy MySQL URI:
mysql+pymysql://user:pass@fe_host:9030/db_name
5. Другие BI (Qlik, Looker, Metabase)
- Qlik → ODBC MySQL.
- Looker → через MySQL Connector.
- Metabase → через MySQL Database Connector.
Интеграция с DWH и Lakehouse
StarRocks можно встроить:
-
Как основное DWH
- ETL/ELT загружает данные в StarRocks.
- BI работает напрямую с витринами.
- Как compute-движок Lakehouse
- Данные лежат в S3/Iceberg/Hive.
- StarRocks подключается к ним через External Tables.
- Копируем тяжёлые витрины в StarRocks для ускорения.
- Пример: Oracle/Greenplum → ETL → StarRocks → BI.
- Как ускоритель к существующему DWH
Методология построения BI-слоя в StarRocks
Разделение слоёв:
- Raw Layer — Duplicate Key, хранит исходники.
- Core Layer — Primary/Aggregate Key, бизнес-логика и расчёты.
- Presentation Layer — материализованные представления и агрегаты под BI.
Правила:
- BI-пользователи работают только с Presentation Layer.
- Витрины проектируются под конкретные дашборды.
- Все тяжёлые join и агрегации — в MV.
Практические кейсы
Кейс 1. Power BI для e-commerce
- Проблема: 200 аналитиков, отчёты по заказам за 2 года.
-
Решение:
- StarRocks как DWH.
- PK-таблицы для заказов с upsert.
- MV для агрегатов по дням.
- Power BI через ODBC DirectQuery.
- Результат: P95 ответов < 2 сек.
Кейс 2. Tableau + Lakehouse
- Проблема: данные в Iceberg, Tableau медленно читает через Presto.
-
Решение:
- Подключили StarRocks к Iceberg как External Table.
- Создали MV в StarRocks с нужными фильтрами.
- Tableau в live-режиме подключён к MV.
- Результат: ускорение в 8 раз.
Кейс 3. FineBI для банковской отчётности
- Проблема: тяжёлые join по 15 таблицам.
-
Решение:
- Перенесли join в MV.
- Настроили пул JDBC в FineBI (50 коннектов).
- Добавили session limits в StarRocks.
- Результат: стабильное время ответа.
Риски и защита
|
Риск |
Симптом |
Как избежать |
|---|---|---|
|
BI «стреляет» в сырые таблицы |
Высокая нагрузка, долгие отчёты |
Разделять Raw/Core/Presentation |
|
Много мелких запросов от BI |
FE перегружен |
Connection pooling, кэш |
|
Плохие планы CBO |
Неоптимальные join |
ANALYZE TABLE, статистика |
|
Вытягивание лишних колонок |
Лишний I/O |
Оптимизация SQL, MV |
|
Слишком большой concurrency |
BE перегружены |
Ограничения на пользователей, resource groups |
Методологические рекомендации
- Слой презентации — только предагрегированные и оптимизированные таблицы.
- MV под каждый тяжёлый отчёт.
- Пулы соединений в BI, чтобы не создавать 1000+ коннектов.
- Анализировать BI-запросы — профилировать и переписывать.
- Согласовывать SLA BI с владельцами отчётов.
