Źródła dbt

dbt średnio zaawansowany

Mike Metzger

Data Engineer

Czym jest źródło dbt?

  • Nazwa i opis danych załadowanych przez proces EL
  • Pomaga zdefiniować rodowód danych
  • Testy
  • Dokumentacja

Źródło danych

1 Photo by Mika Baumeister on Unsplash
dbt średnio zaawansowany

Źródła

  • Dostarcza informacji o rodowodzie danych
  • Opisuje przepływ danych w hurtowni
  • Używa funkcji Jinja {{ source() }}
    • Podobnie jak funkcja {{ ref() }}
  • Upraszcza dostęp do danych surowych
select * 
from
  {{ source('raw', 'orders') }}
dbt średnio zaawansowany

Definiowanie źródła

  • W pliku .yml
  • Może być models/model_properties.yml
    • Lub inny plik .yml w katalogu
  • W sekcji sources:
  • Nazwij źródło opcją - name:
  • Zdefiniuj każdą tabelę źródłową opcją - name: w tables:
  • Dostępne opcje zależą od typu hurtowni danych – patrz dokumentacja dbt.
version: 2

sources:
  - name: raw
    tables:
      - name: phone_orders
      - name: web_orders
dbt średnio zaawansowany

Dostęp do źródeł

  • Użyj {{ source() }}
  • {{ source(source_name, table_name) }}
  • Podaje właściwą nazwę tabeli w skompilowanym zapytaniu
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 średnio zaawansowany

Testowanie źródeł

  • Do źródeł można stosować testy
  • Te same metody co dla modeli
  • Definiowane w sekcji sources: zamiast models:
  • W pliku .yml, gdzie zdefiniowano źródła
version: 2

sources:
  - name: raw
    tables:
      - name: phone_orders
        columns:
          - name: id
            tests:
              - not_null
              - unique
      - name: web_orders
dbt średnio zaawansowany

Czas na ćwiczenia!

dbt średnio zaawansowany

Preparing Video For Download...