Sumber dbt

dbt Tingkat Menengah

Mike Metzger

Data Engineer

Apa itu sumber dbt?

  • Nama dan deskripsi data yang dimuat oleh proses EL
  • Membantu mendefinisikan garis keturunan data
  • Test
  • Dokumentasi

Sumber data

1 Foto oleh Mika Baumeister di Unsplash
dbt Tingkat Menengah

Sumber

  • Menyediakan informasi garis keturunan data
  • Menggambarkan alur data di gudang
  • Gunakan fungsi Jinja {{ source() }}
    • Mirip dengan fungsi {{ ref() }}
  • Mempermudah akses data mentah
select * 
from
  {{ source('raw', 'orders') }}
dbt Tingkat Menengah

Mendefinisikan sumber

  • Dalam file .yml
  • File bisa models/model_properties.yml
    • Atau file .yml lain di direktori
  • Di bawah bagian sources:
  • Beri nama sumber dengan opsi - name:
  • Definisikan tiap tabel sumber dengan opsi - name: di bawah tables:
  • Opsi berbeda tergantung jenis gudang data, lihat dokumentasi dbt.
version: 2

sources:
  - name: raw
    tables:
      - name: phone_orders
      - name: web_orders
dbt Tingkat Menengah

Mengakses sumber

  • Gunakan {{ source() }}
  • {{ source(source_name, table_name) }}
  • Memberi nama tabel yang benar di kueri terkompilasi
select * from
  {{ source('raw', 'phone_orders') }}
UNION
select * from
  {{ source('raw', 'web_orders') }}
-- dbt compiled
select * from
  'raw'.'phone_orders'
UNION
select * from
  'raw'.'web_orders'
dbt Tingkat Menengah

Menguji sumber

  • Anda dapat menerapkan test ke sumber
  • Metodenya sama seperti pada model
  • Didefinisikan di bagian sources: bukan models:
  • Dalam file .yml tempat sumber didefinisikan
version: 2

sources:
  - name: raw
    tables:
      - name: phone_orders
        columns:
          - name: id
            tests:
              - not_null
              - unique
      - name: web_orders
dbt Tingkat Menengah

Ayo berlatih!

dbt Tingkat Menengah

Preparing Video For Download...