Итак, с dbt Semantic Layer 2.0 я проделал следующие шаги:
— Обновил версию dbt-проекта до
1.7.X, добавил Metricflow в свой devcontainer (просто и удобно)— Создал простое описание семантического слоя в
semantic_layer.yml на базе одной из витрин dbt (отличается от Semantic Layer 1.0, и не в лучшую сторону)— Добавил файл с описанием метрик
metrics.yml с одной метрикой = # Journeys— Генерировал файл с артефактами командой
dbt parse— Обращался к Metricflow через CLI:
mf list, mf validate-configs, mf query— Настроил dbt Semantic Layer в dbtCloud (обратите внимание на количество шагов и их)
Имеем в сухом остатке:
— Весь процесс конфигурации чтобы начать использовать на примитивном примере стал сложнее
— Есть сомнения в возможностях получить сложные расчеты и метрики с текущим функционалом Metricflow (задать это декларативным способом, в т.ч. связи таблиц = joins)
— Неясный концепт и дальнейшее развитие, вся рабочая схема выглядит ненадежно
— Это только для пользователей dbtCloud Team / Enterprise (sorry dbt Core users)
— И как следствие только для адаптеров Redshift, Snowflake, BigQuery, Databricks (никаких Clickhouse и community adapters)
— Нет простого SQL API (есть что-то неказисто-сложное на
jdbc:arrow-flight-sql, что я не стал подключать через DBeaver - терпение кончилось)— И внимание! Метрики больше нельзя материализовать через dbt models в том же проекте (т.е. посчитать и записать значения в таблицу для дальнейшего чтения)
➡️ Итого: сложно, сомнительно, неудобно, с ограничениями и за плату.
Относительно всего вышеуказанного, такой инструмент как Cube смотрится гораздо привлекательнее и интереснее.
Это я уже не говорю о Looker, который на протяжении многих лет совершенствует свой Semantic layer. В плане feature parity, Looker - это топ, вершина, олимп. Основной минус Looker - это платный продукт, подразумевающий vendor lock-in.
😒 Более того, есть чувство, что dbt Labs теперь ставит своей задачей заработок денег, монетизацию через свой основной платный продукт - dbtCloud (включая Semantic Layer), при этом качество и продуктовая ценность новых предложений неуклонно падает.
Следующие планируемые посты по этой теме:
— Обзор подхода с расчетом метрик (On the fly vs. Pre-aggregated)
— Результаты и сравнение этих подходов на практике используя Looker
— Почему с учетом моих бизнес-требований лучше оказался всё же подход Pre-aggregated
— Обзор возможностей Cube для решения этих задач
💬 Задавайте вопросы, оставляйте комментарии - обсудим.
#dbt #metrics #semantic_layer
🌐 @data_apps | Навигация по каналу