Перейти к основному содержимому

Почему мы прекращаем поддержку пакета dbt_metrics

· 4 мин. чтения
Callum McCann

Здравствуйте, дорогие специалисты по данным.

Если вы еще не читали пост в блоге Ника и Рокси о будущем семантического слоя dbt, настоятельно рекомендую ознакомиться с ним, так как он дает полезный контекст о том, что нас ждет впереди.

Сказав это, пришло время попрощаться с нашим любимым пакетом dbt_metrics. С выпуском dbt-core версии 1.6 в конце июля мы прекратим поддержку пакета dbt_metrics.

С предстоящей интеграцией с MetricFlow мы на пороге новой эры для семантического слоя dbt. И если быть честными с собой, это более светлое будущее, чем то, которое мог бы поддержать пакет dbt_metrics.

Мы знаем, что некоторые из вас использовали этот пакет для помощи своим организациям. Мы предоставим скрипты миграции, чтобы помочь уменьшить сложность перехода на новые спецификации.

Если вы хотите заранее подготовиться к переходу, рекомендуем начать знакомство с новой спецификацией в этом обсуждении на Github. Если вы еще более любопытны, вы можете прочитать документацию MetricFlow, хотя некоторые элементы изменятся в ближайшие месяцы, пока мы работаем над интеграцией. Я уверен, что со временем вы полюбите MetricFlow гораздо больше, чем dbt_metrics.

Прежде чем мы углубимся в технические детали, почему мы прекращаем поддержку пакета, хочу выразить огромную благодарность всем из сообщества, кто использовал или внес вклад в пакет dbt_metrics за последний год. От всего сердца, мне было приятно слышать от всех вас и обсуждать способы помочь вам решить проблемы с данными вашей организации. Это была мечта, ставшая реальностью, работать в этой области, и это было бы невозможно без всех вас, замечательных людей.

Почему мы прекращаем поддержку

Сказав это, давайте углубимся в точные причины, почему мы прекращаем поддержку пакета.

Дублирующая функциональность:

MetricFlow и dbt_metrics имеют общую цель — упрощенный и стандартный способ генерации SQL для запросов метрик. Однако MetricFlow делает это гораздо более эффективно, с расширенными функциями и более надежной основой.

Ловушка Jinja:

Опора на макросы Jinja для генерации SQL в dbt_metrics оказалась неоптимальной и ограничивающей. Этот подход ограничивал потенциал пакета и затруднял масштабирование и настройку для каждого нового типа метрик и функциональности, которую мы хотели добавить. В отличие от этого, реализация MetricFlow на Python предлагает гораздо более гибкое и выразительное решение.

  • Чтобы подчеркнуть, что MetricFlow на годы опережает dbt_metrics, он на самом деле использовал шаблоны Jinja, но отказался от них в ходе полной переработки, чтобы увеличить гибкость.

Фокус на динамическом семантическом слое:

Мы твердо уверены, что сила семантического слоя заключается в его способности динамически обслуживать организацию — отвечать на первый, второй и третий вопросы пользователя. Таким образом, MetricFlow не будет поддерживать материализацию запросов метрик как статических объектов базы данных. Вместо этого мы сосредоточимся на функциональности кэширования, которая увеличивает производительность без снижения возможностей.

Продвинутая генерация SQL с интеллектуальными соединениями:

MetricFlow предлагает продвинутую генерацию SQL и оставляет dbt_metrics далеко позади по возможностям. Одной из ключевых функций является его сложная обработка соединений, которая была функцией номер один, запрашиваемой сообществом. С MetricFlow вы можете легко получить доступ ко всем допустимым измерениям для ваших метрик на лету, даже если они определены в разных семантических моделях. Более того, вы можете строить метрики, используя меры из нескольких семантических моделей.

  • Как он это делает? Он создает граф с семантическими моделями в качестве узлов и путями соединений в качестве ребер, автоматически генерируя соответствующий тип соединения на основе типов сущностей. Этот подход помогает избежать фан-аута или соединений типа "пропасть", чтобы гарантировать правильность результатов. Попытка сделать это в Jinja была бы пустой тратой времени.

Первоклассная валидация с трехэтапным подходом:

MetricFlow предлагает комплексную валидацию семантики, обеспечивая надежность и достоверность ваших моделей данных. Этот процесс включает три ключевых этапа:

  1. Валидация хранилища данных: Для дальнейшей проверки вашей семантики MetricFlow проверяет, существуют ли семантические определения в вашем хранилище данных. Запуская запросы к вашему хранилищу данных, он гарантирует, что сгенерированный SQL для семантических моделей, измерений и метрик будет выполняться, как задумано.

  2. Семантическая валидация: После создания ваших семантических моделей MetricFlow запускает набор тестов, чтобы убедиться, что семантика имеет смысл. Например, он проверяет, уникальны ли имена мер или ссылаются ли метрики на существующие меры. Это помогает поддерживать целостность и согласованность семантического манифеста.

  3. Непрерывная интеграция (CI): Интегрируя эти шаги валидации в ваш CI-пайплайн, MetricFlow помогает выявлять любые проблемы на ранних этапах процесса разработки. Это приводит к меньшему количеству сюрпризов, более надежному пайплайну dbt и повышенной уверенности в вашем DAG.

Гибкая основа для интеграции:

MetricFlow является более гибкой основой, через которую мы можем предоставить нашим партнерам по интеграции инструменты для создания дифференцированных решений. Это открывает двери для захватывающих сотрудничеств и упрощает нашим партнерам создание.

Итак, прощаясь с пакетом dbt_metrics, мы приветствуем MetricFlow и все возможности и достижения, которые он приносит. Это новая эра для семантического слоя.

С инструментами и ресурсами для миграции, которые скоро появятся, мы стремимся поддержать вас в этом переходе. Мы выражаем благодарность всем, кто использовал, внес вклад или поддерживал dbt_metrics, и приглашаем всех вас присоединиться к нам в этом захватывающем путешествии к более светлому будущему в аналитике данных. Если вы хотите обсудить, пожалуйста, присоединяйтесь к #dbt-core-metrics!

Comments

Loading

Missed Coalesce 2024?

Catch up on Coalesce 2024 and register to access a select number of on-demand sessions.

Register and watch