Studi Kasus: Membangun Model Data E-Commerce dengan dbt
Susan Sun
Freelance Data Scientist
Instal dbt
pip install dbt
Inisialisasi proyek dbt looker_ecommerce
dbt init looker_ecommerce
Verifikasi keberhasilan setelan
cd looker_ecommerce
dbt debug
Direktori berkas otomatis dari dbt:

distribution_centers.csv kecil dan statis, hanya 10 baris
Contoh berkas mentah distribution_centers.csv

orders.csv besar dan terus diperbarui, 125.000 baris dan 9 kolom
Contoh berkas mentah orders.csv:

Berkas data mentah Pusat distribusi:
Berkas data mentah Orders:
dbt seeddbt sourcedbt init membuat struktur berkas dasar otomatis:
looker_ecommerce/
macros/
models/
seeds/
snapshots/
tests/
dbt_project.yml
Muat distribution_center sebagai seed:
looker_ecommerce/
macros/
models/
stg_looker__distribution_centers.sql
seeds/
looker__distribution_centers.csv
snapshots/
tests/
dbt_project.yml
Dalam stg_looker__distribution_centers.sql:
SELECT
id,
name,
latitude,
longitude
FROM
{{ref('looker__distribution_centers')}}
Muat orders sebagai source:
looker_ecommerce/
macros/
models/
stg_looker__orders.sql
seeds/
snapshots/
tests/
dbt_project.yml
Dalam stg_looker__orders.sql:
SELECT *
FROM
{{source('looker_ecommerce', 'orders')}}
Untuk mendokumentasikan sources:
looker_ecommerce/
macros/
models/
_looker__sources.yml
seeds/
snapshots/
tests/
dbt_project.yml
Dalam _looker__sources.yml:
version: 2
sources:
- name: looker_ecommerce
tables:
- name: orders
_looker__models.yml di direktori models yang sama:version: 2
models:
- name: stg_looker__distribution_centers
description: Nama dan lokasi pusat distribusi
- name: stg_looker__orders
description: Informasi pesanan seperti status pesanan
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
Memuat berkas csv sebagai seed
dbt seed
Membuat atau memperbarui semua model di proyek dbt
dbt run
Membuat atau memperbarui model tertentu
dbt run --select model
Menjalankan semua test di proyek dbt
dbt test
Menjalankan test untuk model tertentu
dbt test --select model
Menggabungkan dbt run dan dbt test
dbt build
dbt build --select model
Struktur penamaan models:
<data_source>__<model_name>.sqlcontoh:
stg_looker__distribution_centers.sqlstg_looker__orders.sqlStruktur penamaan berkas yaml:
_<data_source>__<artifact_type>.ymlcontoh:
_looker__models.yml_looker__sources.ymlStudi Kasus: Membangun Model Data E-Commerce dengan dbt