Membangun data mart dan model snapshot dbt

Studi Kasus: Membangun Model Data E-Commerce dengan dbt

Susan Sun

Freelance Data Scientist

Pengenalan model data mart dbt

Data mart adalah model data yang bersih dan mudah diakses di akhir pipeline.

Use case

  • Feature store untuk tim data science
  • KPI agregat untuk tim keuangan
  • Metrik latensi untuk tim engineering
  • Mengurangi pengulangan dengan menyimpan SQL sebagai kode
Studi Kasus: Membangun Model Data E-Commerce dengan dbt

Data mart e-commerce Looker

Customers

Menjawab pertanyaan:

Siapa pelanggan kita?

Bagaimana perilaku pembelian mereka?

Butir data:

Satu baris per pelanggan

Contoh kolom:

Nama pelanggan, total belanja pelanggan

Products

Menjawab pertanyaan:

Berapa pendapatan, biaya, dan laba kita?

Butir data:

Satu baris per produk

Contoh kolom:

Kategori produk, pendapatan, laba

Studi Kasus: Membangun Model Data E-Commerce dengan dbt

Data mart e-commerce Looker

Diagram graf berarah asiklik yang menampilkan semua sumber dan model dbt serta relasinya. Sumber berwarna hijau. Model dan mart berwarna biru.

Studi Kasus: Membangun Model Data E-Commerce dengan dbt

Membangun selangkah demi selangkah

Langkah 1: Sempurnakan logika SQL di luar dbt, lalu ganti referensi dengan sintaks dbt.

Tangkapan layar file logika SQL contoh dengan berbagai CTE.

Langkah 2: Bangun pengujian dan dokumentasi data

Tangkapan layar file YAML model dbt yang menampilkan deskripsi tabel dan kolom untuk sebuah model dbt

Langkah 3: Uji build! (mis. dbt build)

Studi Kasus: Membangun Model Data E-Commerce dengan dbt

Pengenalan model snapshot dbt

Lima status pesanan:

Processing, Shipped, Complete, Cancelled, dan Returned

Contoh data:

Pratinjau file data orders dengan dua baris data dan 9 kolom. Nama kolom: order id, user id, status, gender, created at, returned at, shipped at, delivered at, dan num of items.

Studi Kasus: Membangun Model Data E-Commerce dengan dbt

Orders: perubahan status snapshot

  • Buat file 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 %}
  • Jalankan snapshot model tertentu
dbt snapshot -s orders_snapshot.sql
  • Jalankan semua snapshot model
dbt snapshot
  • Jalankan semua model (termasuk snapshot)
dbt build
1 https://docs.getdbt.com/docs/build/snapshots
Studi Kasus: Membangun Model Data E-Commerce dengan dbt

Ayo berlatih!

Studi Kasus: Membangun Model Data E-Commerce dengan dbt

Preparing Video For Download...