dbt sources

Intermediate dbt

Mike Metzger

Data Engineer

Vad är en dbt-källa?

  • Namn och beskrivning av data inläst via EL-processen
  • Hjälper till att definiera datalinje
  • Tester
  • Dokumentation

Datakälla

1 Foto av Mika Baumeister på Unsplash
Intermediate dbt

Källor

  • Ger information om datalinje
  • Beskriver dataflödet i datalagret
  • Använd Jinja-funktionen {{ source() }}
    • Liknar funktionen {{ ref() }}
  • Förenklar åtkomst till rådata
select * 
from
  {{ source('raw', 'orders') }}
Intermediate dbt

Definiera en källa

  • I .yml-filen
  • Filen kan heta models/model_properties.yml
    • Eller en annan .yml-fil i katalogen
  • Under avsnittet sources:
  • Namnge källan med alternativet - name:
  • Definiera varje källtabell med - name: under tables:
  • Olika alternativ finns beroende på typ av datalager – se dbt-dokumentationen.
version: 2

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

Åtkomst till källor

  • Använd {{ source() }}
  • {{ source(source_name, table_name) }}
  • Anger rätt tabellnamn i den kompilerade frågan
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'
Intermediate dbt

Testa källor

  • Du kan tillämpa tester på källor
  • Samma metoder som för modeller
  • Definieras i avsnittet sources: i stället för models:
  • I den .yml-fil där källorna är definierade
version: 2

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

Nu kör vi en övning!

Intermediate dbt

Preparing Video For Download...