BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс по dbt (Data Build Tool) » DBT: лучшие практики

DBT: лучшие практики

Безусловно, Вы можете найти в Chat GPT список лучших практик: контроль версий, документация, модулирование, соглашения об именах, тестирование, конфигурации для конкретной среды, планирование и т.д.

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

 

Присвоение имени и структура модели

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

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

Прежде чем изобретать велосипед, ознакомьтесь с тем, что уже разработано. У DBT есть набор пакетов, которые Вы можете запросто использовать. Они размещены здесь: hub.getdbt.com. Результатом элементарного поиска в Интернете станет перечень наиболее часто используемых пакетов. Например, если Вы работаете с внешними источниками, такими как salesforce, Вам нужно проверить, какие пакеты поддерживают модели salesforce, например,  salesforce_formula_utils. Так что обязательно загляните в getdbt, там Вы найдете сотни уже готовых пакетов.

 

 

Макросы

К сожалению, далеко не все, что нам нужно, уже есть, поэтому зачастую нам приходится разрабатывать свои собственные решения. Как и в любом POC, Вы начинаете работать в рамках монолита, а затем стараетесь выйти за его пределы. В нашем случае Вы начнете действовать в рамках проекта, но очень скоро Вам понадобится  создать отдельный git-проект для своих собственных макросов и предоставить их в виде пакета.

Конечно, Вы хотите свести к минимуму копирование-вставку данных между проектами, а также ограничить возможность версионирования макросов, которыми Вы делитесь с другими.

 

Конфигурации для разных сред

DBT обладает на редкость приятным интерфейсом, использующим  файлы Profile. Вы должны всегда помнить о том, что безопасность – на первом месте. Ни в коем случае нельзя сохранять в этих файлах конфиденциальную информацию.

DBT подталкивает Вас к созданию двух профилей, одного для среды разработки и второго для производственной среды. Я считаю, что это не совсем целесообразно. Вы же не хотите, чтобы Ваши разработчики что-то изменили в производственной среде по ошибке. Поэтому у Вас должны быть созданы только профили для среды разработки и staging среды, но никак не для производственной среды.

На мой взгляд, только CD может создавать профиль для производственной среды, устанавливая правильные соединения.

 

Планирование

Планирование и оркестрация процессов - очень важная область, которую DBT еще предстоит освоить. Для запуска моделей DBT предлагает достаточно простую утилиту CLI. Хотя возможности запуска моделей достаточно широки, они все же не совсем отвечают требованиям оптимального производственного решения.

Это означает то, что Вам нужно заранее продумать о том, по какому расписанию Вы хотите запускать свои модели. Вы должны быть уверены в том, что не запускаете модели без необходимости -> например, обновлять модель каждый час, когда она основана на модели, которая обновляется раз в день, очень расточительно.

Есть и другие вопросы, связанные с тестированием данных и транзакциями, которые нужно заранее предусмотреть. 

 

Каждому проекту нужен в цикл тестирования/ci/cd. Проект DBT не исключение. В Вашем проекте должны быть предусмотрены модульные тесты для разрешения сложных бизнес-ситуаций. Существуют различные фреймворки для имитации исходных данных для тестирования моделирования.

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

После соединения кода с main/master необходимо запустить все модели. Это позволит Вам убедиться в том, что все они хорошо работают вместе и что ни один код или пакет не пропал.

 

Производственная среда

Теперь у нас есть проект, который можно запустить в производство, но как лучше это сделать?

Лучше всего создать образ Docker, содержащий все необходимые модели, пакеты и версию ядра dbt. Даже если Вы используете Airflow или другое решение на базе Python, в котором установлен DBT, не стоит использовать именно установленную версию, в дальнейшем это может привести к нежелательным последствиям. У Вас должна быть возможность выбирать, когда и где Вы можете обновить ядро dbt. Вы можете обновить его только на одном домене и при этом не обновлять на других.

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

 

Документация

Документация - один из самых сложных аспектов. Большинство специалистов не хотят составлять документацию. С помощью dbt сделать это гораздо проще: документация может быть добавлена  как часть исходного кода. Чтобы облегчить себе жизнь, как правило,  документация добавляется не только в исходный код, но и на уровне витрин.

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

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

Кроме того, было бы неплохо иметь опцию наследования документов между моделями. Если бы я мог определить документ на поле базовой таблицы, я бы смог увидеть тот же самый текст во всех таблицах, использующих это поле.

 

Каталог данных

 

Каталог данных - это относительно новый продукт, появившийся на рынке. На первый взгляд, он выглядит достаточно многообещающе, но если копнуть глубже, то Вы сразу же поймете, что получить действительно полезный каталог, способный принести реальную пользу Вашей компании,  совсем непросто. В этом случае dbt опять спешит к нам на помощь, большинство каталогов данных могут импортировать схемы данных DBT, которые также включают в себя data lineage. Кроме того, я также присматриваюсь к datahub, как к достаточно приятному open-source решению.

 

CLI

Мы рассмотрели несколько лучших практик использования dbt, но пока не поговорили о том, как обеспечить их соблюдение и как облегчить жизнь разработчикам?

Основы CLI - это добавление функциональности в Ваш проект, а также ограничений на то, что с ним можно делать.

Основные принципы работы с CLI заключаются в генерации yaml-файлов и создании новых моделей с правильным наименованием и атрибутами. 

Если Вы не хотите создавать полноценное CLI-приложение, начните с dbt power user.

 

Резюме

Data Build Tool (dbt) стал одним из наиболее популярных решений в области аналитики данных, в том числе и в Израиле. В этой статье мы поговорили об особенностях использования dbt и описали лучшие практики его применения. Поскольку организации все больше признают важность эффективного управления данными и их анализа, статья может послужить руководством по максимально эффективному использованию dbt. Будь то оптимизация рабочих процессов, связанных с обработкой данных, или оптимизация аналитических процессов, лучшие практики, представленные в данной статье, призваны помочь специалистов эффективно использовать dbt для совершенствования процесса принятия решений на основе данных.

 

Узнать стоимость решенияЗапросить видео презентацию

← Предыдущая статья
Построение многомерных хранилищ данных с помощью dbt
Следующая статья →
Dbt labs купили стартап SDF

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • Нашей компанией был реализован проект автоматизации конвейера данных на базе СПО ETL-инструмента Apache NiFi для клиента ООО «Императорский Монетный Двор» в части актуализации данных, передаваемых из Системы Oracle в Anaplan.

  • «Лента» – первая по величине сеть гипермаркетов и четвертая среди крупнейших розничных сетей страны. Компания была основана в 1993 г. в Санкт-Петербурге.

    «Лента» управляет 249 гипермаркетами в 88 городах России и 131 супермаркетом в Москве, Санкт-Петербурге, Сибири, Уральском и Центральном регионах с общей торговой площадью около 1 494 тыс. кв. м. Средняя торговая площадь одного гипермаркета «Лента» составляет около 5 500 кв.м, средняя площадь супермаркета – 800 кв.м. Компания оперирует двенадцатью распределительными центрами. Штат компании – около 50, 5 тыс. человек.

  • "Уральский банк реконструкции и развития" входит в топ-25 крупнейших банков России и список значимых кредитных организаций на рынке платежных услуг по версии ЦБ РФ.

  • АО «Новосибирскэнергосбыт» является единственным гарантирующим поставщиком электроэнергии на территории г. Новосибирска и Новосибирской области. Предприятие отвечает за электроснабжение клиентов, закупая электроэнергию на оптовом рынке, регулируя поставку электроэнергии через договорные отношения с сетевыми организациями.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.