DBT в двух словах
В этой статье мы поговорим о моем видении DBT (Data Build Tool) в целом (более подробно данная тема буде раскрыта в последующих постах), а так же о том, кому, на мой взгляд, стоит использовать этот инструмент, а кому – нет.
Решение бизнес-задач с помощью DBT и Snowflake
GitHub: https://github.com/Ravikumar10593-hub/dbt-snowfalkes-project - вносите свой вклад, копируйте репозиторий и делитесь информацией с другими!
Что такое DBT?
DBT (data build tool) – это open-source инструмент (версия Core), используемый для преобразования рабочих процессов с помощью SQL-скриптов (.sql) и YAML-скриптов (.yml).
- SQL скрипты помогают преобразовывать данные модулированным способом с использованием CTE;
- YAML-скрипты помогают определить схему, описания и правила проверки столбцов (not_null, unique и т. д.).
DBT бесплатный?
DBT имеет две версии - DBT Core и DBT Cloud:
- DBT Core - это версия CLI (интерфейс командной строки), которую можно установить с помощью простой команды pip pip install dbt-cor ; для установки адаптера (Snowlake, SQL-сервера) для подключения используйте rjvfyle pip install dbt-snowflake;
- DBT Cloud – предоставляет Вам GUI (графический интерфейс пользователя), в котором Вы можете интегрировать git и адаптер (источник данных), а также организовать там рабочее пространство с помощью функций drag-and-drop и добавить функцию планирования Ваших моделей (Ваших .sql-файлов).
Какие задачи решает DBT?
Взаимодействуйте легко, без лишних усилий:
- Используйте единую платформу для совместной работы над преобразованием данных;
- Для организации эффективной командной работы используйте интеграцию CI/CD-Git.
Легко преобразовывайте данные:
- Для быстрого преобразования данных используйте простые операторы SQL Select.
Убедитесь в надежности преобразований с помощью тестирования:
- Тестируйте преобразований данных, включая специфические задачи.
Развертывайте и планируйте работу без особых усилий:
- Развертывайте и планируйте код в различных средах, таких как Development и Production.
Документируйте свою работу:
- Документируйте весь рабочий процесс с помощью простого файла .yml.
- Подробно документируйте весь процесс преобразования данных.
На каком этапе ETL используется DBT?
DBT использует ELT, но никак не ETL. В данном случае Вы извлекаете и загружаете данные на свои платформы данных (см. рисунок ниже), а затем используете DBT для их преобразования и загрузки обратно на платформы данных.
С какими адаптерами данных (платформами данных) работает DBT?
На сегодняшний день DBT напрямую работает со следующими платформами данных:
- Snowflake
- Google Big Query
- Data Bricks
- AWS Redshift
- Trino
Платформы данных
Trino используется для подключения к нескольким источникам данных (см. рисунок ниже)
Чем DBT отличается от аналогичных продуктов, таких как Databricks?
- DBT призван решить только 2 главные задачи, заключающиеся в преобразовании и документировании данных в Dataware house простым, эффективным и оптимизированным способом с помощью .sql и .ymlfile в среде CICD-git.
- Databricks - это унифицированная платформа, разработанная для анализа данных, которая обеспечивает совместную среду для эффективного анализа Big Data. Платформа выполняет функции Data Engineering, ML и Dta Science. В основном она используется для совместной работы со Spark в целях организации распределенной обработки данных.
“DBT - важный элемент пазла данных, который отлично справляется с задачами преобразования и моделирования данных в DWH. Однако, несмотря на всю свою важность, его не стоит рассматривать в качестве универсальной панацеи”












