sorgenti dbt

dbt intermedio

Mike Metzger

Data Engineer

Cos'è una sorgente dbt?

  • Nome e descrizione dei dati caricati dall'EL
  • Aiuta a definire la data lineage
  • Test
  • Documentazione

Sorgente dati

1 Foto di Mika Baumeister su Unsplash
dbt intermedio

Sorgenti

  • Fornisce informazioni di lineage
  • Descrive il flusso dei dati nel warehouse
  • Usa la funzione Jinja {{ source() }}
    • Simile a {{ ref() }}
  • Semplifica l'accesso ai dati grezzi
select * 
from
  {{ source('raw', 'orders') }}
dbt intermedio

Definire una sorgente

  • Nel file .yml
  • Può essere models/model_properties.yml
    • O un altro .yml nella directory
  • Nella sezione sources:
  • Dai un nome alla sorgente con - name:
  • Definisci ogni tabella con - name: sotto tables:
  • Opzioni diverse a seconda del warehouse: vedi la documentazione dbt
version: 2

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

Accedere alle sorgenti

  • Usa {{ source() }}
  • {{ source(source_name, table_name) }}
  • Fornisce il nome corretto della tabella nella query compilata
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 intermedio

Testare le sorgenti

  • Puoi applicare test alle sorgenti
  • Stesse modalità dei modelli
  • Definiti nella sezione sources: invece di models:
  • Nel file .yml dove sono definite le sorgenti
version: 2

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

Ayo berlatih!

dbt intermedio

Preparing Video For Download...