Surse dbt

dbt intermediar

Mike Metzger

Data Engineer

Ce este o sursă dbt?

  • Numele și descrierea datelor încărcate prin procesul EL
  • Ajută la definirea liniei de date
  • Teste
  • Documentație

Sursă de date

1 Photo by Mika Baumeister on Unsplash
dbt intermediar

Surse

  • Furnizează informații despre linia de date
  • Descrie fluxul datelor în depozit
  • Utilizați funcția Jinja {{ source() }}
    • Similară cu funcția {{ ref() }}
  • Simplifică accesul la datele brute
select * 
from
  {{ source('raw', 'orders') }}
dbt intermediar

Definirea unei surse

  • În fișierul .yml
  • Fișierul poate fi models/model_properties.yml
    • Sau orice alt fișier .yml din director
  • În secțiunea sources:
  • Denumiți sursa cu opțiunea - name:
  • Definiți fiecare tabel sursă cu opțiunea - name: sub tables:
  • Opțiuni disponibile variază în funcție de tipul de depozit de date; consultați documentația dbt.
version: 2

sources:
  - name: raw
    tables:
      - name: phone_orders
      - name: web_orders
dbt intermediar

Accesarea surselor

  • Utilizați {{ source() }}
  • {{ source(source_name, table_name) }}
  • Furnizează numele corect al tabelului în interogarea compilată
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 intermediar

Testarea surselor

  • Puteți aplica teste pe surse
  • Aceleași metode ca pentru modele
  • Definite în secțiunea sources: în loc de models:
  • În fișierul .yml unde sunt definite sursele
version: 2

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

Să exersăm!

dbt intermediar

Preparing Video For Download...