Skip to content

Обзор

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

Тем самым Datapulse снижает порог входа для аналитиков и data engineer, позволяя им разрабатывать отчетные витрины, используя только SQL и ничего более.

⚠️ Важно!

На текущий момент Datapulse не умеет работать с python-моделями dbt

Модель dbt

dbt предназначен для более удобной разработки процессов трансформации данных (буква T в аббревиатуре ETL).

Модель dbt - ключевой компонент. Она представляет собой SQL-запрос, который сохраняется в .sql файле. Это может быть любой SELEC-запрос, который выдает какие-либо данные.

Пример запроса

with customer_orders as (
    select
        customer_id,
        min(order_date) as first_order_date,
        max(order_date) as most_recent_order_date,
        count(order_id) as number_of_orders

    from jaffle_shop.orders

    group by 1
)

select
    customers.customer_id,
    customers.first_name,
    customers.last_name,
    customer_orders.first_order_date,
    customer_orders.most_recent_order_date,
    coalesce(customer_orders.number_of_orders, 0) as number_of_orders

from jaffle_shop.customers

left join customer_orders using (customer_id)

dbt на основе этого SQL-запроса автоматически формирует DDL таблицы, а также записывает данные в сформированную таблицу. При запуске модели dbt будет выполнять SQL и записывать данные в таблицу.

При изменении SQL-запроса (к примеру, добавляется новый столбец) dbt автоматически произведет ALTER таблицы.

Типы моделей dbt

Модель dbt может быть следующих типов (от этого зависит, как данные будут записываться в таблицу): * view (не материализованное представление) * table (таблица, которая при каждом запуске модели полностью перезаписывается - старые данные удаляются, новые записываются) * incremental (таблица, в которую записываются новые данные, а старые либо остаются, либо обновляются на новые) * ephemeral (виртуальная таблица, не хранящаяся в DWH, SQL которой вызывается при использовании таблицы в других dbt моделях через конструкцию ref())

Тип materialized view не реализован в Datapulse

Параметры моделей

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

Пример .yml файла

models:
  - name: base_events
    config:
      materialized: table
      sort: event_time
      dist: event_id

Преимущества Datapulse

Использование с dbt представляет собой работу с множеством файлов (dbt моделями и .yml файлами с параметрами). А также работы с командой строкой.

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

Datapulse предоставляет удобный графический интерфейс по работе с dbt. Главные его преимущества: * быстрое начало работы с dbt * минимизация ошибок и стандартизированные сценарии работы * ускорение процесса разработки * автоматический анализ SQL-запросов и документация