Создание витрин данных и моделей снимков в dbt

Практический пример: построение моделей данных для электронной коммерции с помощью dbt

Susan Sun

Freelance Data Scientist

Знакомство с моделями витрин данных dbt

Витрины данных — это чистые и доступные модели данных на выходе пайплайна.

Примеры использования

  • Хранилища признаков для команды по анализу данных
  • Агрегированные KPI для финансовой команды
  • Метрика задержки для команды разработчиков
  • Сокращение повторений за счёт хранения SQL в виде кода
Практический пример: построение моделей данных для электронной коммерции с помощью dbt

Витрины данных Looker e-commerce

Клиенты

Отвечает на вопросы:

Кто наши клиенты?

Каковы их покупательские привычки?

Гранулярность данных:

Одна строка на клиента

Пример столбцов:

Имя клиента, сумма покупок

Продукты

Отвечает на вопросы:

Каковы выручка, затраты и прибыль?

Гранулярность данных:

Одна строка на продукт

Пример столбцов:

Категория продукта, выручка, прибыль

Практический пример: построение моделей данных для электронной коммерции с помощью dbt

Витрины данных Looker e-commerce

Диаграмма направленного ациклического графа, показывающая все источники и модели dbt и связи между ними. Источники выделены зелёным, модели и витрины — синим.

Практический пример: построение моделей данных для электронной коммерции с помощью dbt

Пошаговая сборка

Шаг 1: Доработайте SQL-логику вне dbt, затем замените ссылки на синтаксис dbt.

Снимок экрана с примером файла SQL-логики, содержащего несколько CTE.

Шаг 2: Создайте тесты данных и документацию

Снимок экрана с примером YAML-файла моделей dbt, содержащего описания таблиц и столбцов модели dbt.

Шаг 3: Проверьте сборку! (например, dbt build)

Практический пример: построение моделей данных для электронной коммерции с помощью dbt

Знакомство с моделями снимков dbt

Пять статусов заказа:

Processing, Shipped, Complete, Cancelled и Returned

Пример данных:

Предварительный просмотр файла данных о заказах: две строки данных и 9 столбцов. Названия столбцов: order id, user id, status, gender, created at, returned at, shipped at, delivered at, num of items.

Практический пример: построение моделей данных для электронной коммерции с помощью dbt

Заказы: отслеживание изменений статуса

  • Создайте файл orders_snapshot.sql
{% snapshot orders_snapshot %}
{{
    config(target_schema='main',
      unique_key='order_id',
      strategy='timestamp',
      updated_at='created_at')
}}

SELECT * 
FROM 
{{source('looker_ecommerce', 'orders')}}

{% endsnapshot %}
  • Запустите конкретную модель снимка
dbt snapshot -s orders_snapshot.sql
  • Запустите все модели снимков
dbt snapshot
  • Запустите все модели (включая снимки)
dbt build
1 https://docs.getdbt.com/docs/build/snapshots
Практический пример: построение моделей данных для электронной коммерции с помощью dbt

Давайте потренируемся!

Практический пример: построение моделей данных для электронной коммерции с помощью dbt

Preparing Video For Download...