Кейс-стаді: створення моделей даних для e-commerce за допомогою dbt
Susan Sun
Freelance Data Scientist
Установіть dbt
pip install dbt
Ініціалізуйте проєкт dbt looker_ecommerce
dbt init looker_ecommerce
Перевірте успішність налаштування
cd looker_ecommerce
dbt debug
Автозгенерований dbt каталог файлів:

distribution_centers.csv невеликий і статичний, лише 10 рядків
Зразок «сирого» файла даних distribution_centers.csv

orders.csv великий і постійно оновлюється: 125 000 рядків і 9 стовпців
Зразок «сирого» файла даних orders.csv:

«Сирий» файл даних Distribution center:
«Сирий» файл даних Orders:
dbt seeddbt sourcedbt init автогенерує базову структуру файлів:
looker_ecommerce/
macros/
models/
seeds/
snapshots/
tests/
dbt_project.yml
Завантажте distribution_center як seed:
looker_ecommerce/
macros/
models/
stg_looker__distribution_centers.sql
seeds/
looker__distribution_centers.csv
snapshots/
tests/
dbt_project.yml
У stg_looker__distribution_centers.sql:
SELECT
id,
name,
latitude,
longitude
FROM
{{ref('looker__distribution_centers')}}
Завантажте orders як source:
looker_ecommerce/
macros/
models/
stg_looker__orders.sql
seeds/
snapshots/
tests/
dbt_project.yml
У stg_looker__orders.sql:
SELECT *
FROM
{{source('looker_ecommerce', 'orders')}}
Щоб задокументувати sources:
looker_ecommerce/
macros/
models/
_looker__sources.yml
seeds/
snapshots/
tests/
dbt_project.yml
У _looker__sources.yml:
version: 2
sources:
- name: looker_ecommerce
tables:
- name: orders
_looker__models.yml у тій самій теці models:version: 2
models:
- name: stg_looker__distribution_centers
description: Назва та розташування центру дистрибуції
- name: stg_looker__orders
description: Інформація про замовлення, зокрема статус
looker_ecommerce/
macros/
models/
_looker__models.yml
_looker__sources.yml
stg_looker__distribution_centers.sql
stg_looker__orders.sql
seeds/
looker__distribution_centers.csv
snapshots/
tests/
dbt_project.yml
Завантажує csv як seed-файли
dbt seed
Створює або оновлює всі моделі в проєкті dbt
dbt run
Створює або оновлює вказану модель
dbt run --select model
Запускає всі тести в проєкті dbt
dbt test
Запускає тести для вказаної моделі
dbt test --select model
Поєднує dbt run і dbt test в одному!
dbt build
dbt build --select model
Структура імен моделей:
<data_source>__<model_name>.sqlнаприклад:
stg_looker__distribution_centers.sqlstg_looker__orders.sqlСтруктура імен yaml-файлів:
_<data_source>__<artifact_type>.ymlнаприклад:
_looker__models.yml_looker__sources.ymlКейс-стаді: створення моделей даних для e-commerce за допомогою dbt