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 нужен аналитику

Представляем подробный гайд по dbt — Data Build Tool — одному из лучших фреймворков для трансформации данных.

dbt — open-source инструмент, который решает проблему организации данных и открывает много возможностей для их трансформации и моделирования. В статье разберём функционал и характеристики фреймворка, а также опишем пошагово процесс его настройки и использования.

 

Что такое dbt: функционал и характеристики

dbt (Data Build Tool) — инструмент, который позволяет дата-инженерам и аналитикам автоматизировать процессы тестирования, внедрения, документирования в рамках трансформации данных. Проще говоря, dbt — это всё о букве T в акрониме ELT (Extract — Transform — Load). Этот фреймворк не выгружает данные из источников, но предоставляет огромные возможности по работе с теми данными, которые уже загружены в Хранилище (в Internal или External Storage).

dbt основан на языках SQL и Jinja, с версии 1.4.* также поддерживает Python.

Основное назначение dbt — взять код, скомпилировать его в SQL, выполнить команды в правильной последовательности в хранилище.

 

Как можно использовать инструмент

Облачное решение:

  • Веб-интерфейс
  • Переменные окружения
  • Планировщики, метаданные, IDE
  • Интеграции с другими инструментами

 

Core:

  • Открытый исходный код
  • Работа через командную строку
  • Какие платформы поддерживает

 

Поддержка команды:

  • AlloyDB
  • Azure Synapse
  • BigQuery
  • Databricks
  • Dremio
  • Postgres
  • Redshift
  • Snowflake
  • Spark
  • Starburst & Trino

 

Поддержка сообщества:

  • Athena
  • Clickhouse
  • IBM DB2
  • Doris & SelectDB
  • DuckDB
  • и другие

 

Экосистема dbt

IDE инструменты:

Visual Stusio Code

deep channnel

PopSQL

Count

● Paradime.io

 

Инструменты разработки:

dbt Power User

SQLFluff

Better Jinja

dbt-osmosis

poentry

pre-commit

 

Чем полезен фреймворк

dbt — довольно универсальный инструмент, но в большей степени он используется в аналитических сервисах в любых отраслях: анализ и обработка данных, сборка любой отчетности и так далее.

 

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

 

Хранение данных. Даже из «коробки» этот фреймворк позволяет реализовать на уровне хранилища хранение данных с историей СКД-2 (хранения технической истории, изменение атрибутов). С ним можно выстраивать снэпшоты — детальные слои с историей данных. dbt помогает собрать любую историю данных, чтобы отвечать на вопросы аналитиков и бизнеса.

 

Связывание данных в единую цепочку. Инструмент описывает ациклические зависимости (DAG) и связи, что позволяет легко анализировать цепочку преобразований данных. Когда мы используем и переиспользуем данные, выполнение этих задач связано: если что-то где-то меняется, то сказывается на других сущностях. С помощью dbt мы решаем задачу консистентности данных — устраиваем зависимость выполнения, чтобы одна сущность была рассчитана только после другой, без задержек и потери актуальности данных. Фреймворк помогает собрать в одном месте и связать всю логику — от исходных данных до итоговых результатов и их переиспользования.

 

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

 

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

 

Что нужно знать, чтобы использовать dbt

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

До знакомства с фреймворком я никогда не работал с Jinja, языком шаблонов, который применяется в dbt для реализации настроек моделей, обработки дополнительной функциональности SQL-кода. Разобраться помогла обширная документация и хорошее комьюнити: есть, например, русскоязычный канал в Telegram.

 

Структура проекта dbt

Проект состоит из директорий и файлов двух типов:

  • модель (.sql) — единица трансформации, выраженная SELECT-запросом;
  • файл конфигурации (.yml) — параметры, настройки, тесты, документация.

 

На базовом уровне работа строится следующим образом:

  • пользователь готовит код моделей в любой удобной IDE;
  • с помощью CLI вызывается запуск моделей, dbt компилирует код моделей в SQL;
  • скомпилированный SQL-код исполняется в Хранилище в заданной последовательности (граф).

 

Модели — это гибрид SQL + Jinja, которые ограничены лишь объёмом хранилища и уровнем знаний пользователя.

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

 

Как работать с dbt: установка, настройка, использование

Устанавливаем фреймворк

dbt поддерживает 4 варианта установки:

  • ● Homebrew;
  • ● pip;
  • ● Docker;
  • ● source.

 

Рассмотрим установку подробнее на примере pip.

 

Установка

  1. Открываем терминал.
  2. Запускаем команды:
  3. pip install dbt-core #Установка
    последней версии;
  4. pip install dbt-core==1.4.0
    #Установка конкретной версии.
  5. dbt —version #Проверка установленной
    версии.

Для обновления можно использовать следующие команды:

  • pip install —upgrade dbt-core #Установка последней версии;
  • pip install —upgrade dbt-core==1.4.0 #Установка конкретной версии.

 

Установка пакетов платформ

Для работы с конкретными платформами необходимо установить пакет платформы, с которой вы планируете работать:

  • pip install dbt-clickhouse #Установка последней версии

 

Проверка установленных пакетов

Выполняем команду dbt —version

Результатом будет информация по версии установленной версии и доступном обновлении.

 

Настройка проекта

Для начала работы настроим окружение взаимодействия с dbt, установив VS Code. Обязательно проверяем наличие установленного Git и Python 3.

Для удобства работы с фреймворком стоит рассмотреть установки и настройки дополнительных расширений для VS Code:

  • vscode-dbt;
  • dbt Power User:

 

Настроим параметры VS Code для работы с dbt. Открываем settings.json по пути File-Preferences-Settings.

Переходим в раздел Text Editor — Font и выбираем edit in settings.json.

Добавляем настройки ассоциации файлов:

"files.associations": {

    "**/models/**/*.sql": "jinja-sql",

    "**/macros/**/*.sql": "jinja-sql",

    "**/snapshots/**/*.sql": "jinja-sql",

    "**/tests/**/*.sql": "jinja-sql",

    "**/target/**/*.sql": "sql",

    "**/**/*.yaml": "jinja-yaml",

    "**/*.yml": "jinja-yaml"

  }

Закрываем файл.

 

Инициализация проекта

1. Создаем каталог проекта. К примеру, dbt_example.

2. Открываем терминал и переходим в каталог:

3. Инициализируем новый проект командой dbt init:

4. Указываем название нашего проекта: если мы уже установили платформу для взаимодействия, нам предложат выбрать из списка, после чего проект будет создан:

5. Типовая структура проекта:

6. Проверяем состояние модели командой dbt debug:

Готово — можем приступать к созданию модели.

 

О чем важно помнить при работе с dbt

  • Основное — так как проект живой, нужно всегда следить за функциональностью, за обновлениями версий. Не всегда стоит использовать последнюю версию, но тестировать все изменения модели — важно.
  • Помнить о том, что любая стандартизация и шаблонизация, с одной стороны, облегчает работу, а с другой — усложняет анализ. С помощью шаблонов мы можем любой SQL-код, который состоял из 3000 строк, сократить до условных 100, но нужно понять, как потом это всё прочитать.
  • Поскольку инструмент гибкий и позволяет самостоятельно расширять функциональность, любые разработки придётся тестировать на работоспособность для каждой базы данных отдельно. В основном мы используем Postgres, Redshift, Spark, но также есть Greenplum, Clickhouse, MySQL, и синтаксис у всех отличается. Например, текущая версия адаптера для Clickhouse не поддерживает создание материализованных представлений.
  • Расширение функциональности у dbt фактически безгранично, потому что ядро фреймворка сделано на Python. Если в команде есть разработчики Python, они смогут дописать любую функциональность.

 

Полезные ссылки и материалы

  • DBT documentation — Introduction — официальная документация.
  • What, exactly, is dbt? — обзорная статья одного из авторов dbt.
  • Building a Mature Analytics Workflow — взгляд на будущее работы с данными и аналитику.
  • Getting started with DBT tutorial — практика, пошаговые инструкции для самостоятельной работы.
  • Jaffle shop — Github DBT Tutorial — Github, код учебного проекта.
  • Hub.getdbt.com — открытая база готовых пакетов для dbt.
  • Telegram-канал по dbt  — здесь всегда можно почитать подробнее о фреймворке, задать вопрос, обсудить какие-то новости и проблемы.

 

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

Автор: Илья Тищенко, архитектор хранилища данных «Ростелеком»

 

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

← Предыдущая статья
dbt Core, Snowflake и GitHub Actions: пет-проект для дата-инженеров
Следующая статья →
Построение многомерных хранилищ данных с помощью dbt

Решения

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

Клиенты
  • Русклимат
    Русклимат — международный торгово-производственный холдинг, концентрирующий опыт ведущих мировых производителей индустрии климата, мощный потенциал конструкторских бюро и лабораторий индустриального дизайна.
     
    Компания образована в 1996 году. За более чем двадцатилетнюю историю Русклимат прошел путь от локальной компании до мощной вертикально-интегрированной многопрофильной структуры.
     
  • ГК «Акрон Холдинг», одно из крупнейших в России промышленно-металлургических предприятий, запустил проект по модернизации управления данными. В качестве целевого решения для анализа ключевых данных компания выбрала систему PIX BI. В компании уже более 100 пользователей PIX BI, и в этом году в планах увеличить их число в два раза.

  • «ПрофХолод» — крупнейший в России производитель сэндвич-панелей с пенополиуретаном. 

  • ООО "Интернэшнл Ресторант Брэндс" – это крупнейший франчайзинговый партнер компании Yum! Brands Russia & CIS в России, отвечающий за рост и развитие бренда KFC на территории РФ. На сегодняшний день у компании более 350 ресторанов. Ежедневно в рестораны приходит 200 000+ гостей.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • 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 и политикой конфиденциальности.