Обзор
Конструктор 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-запросов и документация