Джерела dbt

Середній рівень dbt

Mike Metzger

Data Engineer

Що таке джерело в dbt?

  • Назва й опис даних, завантажених EL-процесом
  • Допомагає визначити ланцюжок походження даних
  • Тести
  • Документація

Джерело даних

1 Фото: Mika Baumeister, Unsplash
Середній рівень dbt

Джерела

  • Надає інформацію про походження даних
  • Описує рух даних у сховищі
  • Використовуйте функцію Jinja {{ source() }}
    • Подібна до функції {{ ref() }}
  • Спрощує доступ до сирих даних
select * 
from
  {{ source('raw', 'orders') }}
Середній рівень dbt

Визначення джерела

  • У файлі .yml
  • Файл може бути models/model_properties.yml
    • Або будь-який інший .yml у каталозі
  • У секції sources:
  • Назвіть джерело опцією - name:
  • Опишіть кожну таблицю джерела опцією - name: у tables:
  • Доступні різні опції залежно від типу сховища даних; див. документацію dbt.
version: 2

sources:
  - name: raw
    tables:
      - name: phone_orders
      - name: web_orders
Середній рівень dbt

Доступ до джерел

  • Використовуйте {{ source() }}
  • {{ source(source_name, table_name) }}
  • Підставляє коректну назву таблиці в скомпільованому запиті
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

Тестування джерел

  • До джерел можна застосовувати тести
  • Ті самі методи, що й для моделей
  • Визначаються в секції sources: замість models:
  • У .yml-файлі, де описані джерела
version: 2

sources:
  - name: raw
    tables:
      - name: phone_orders
        columns:
          - name: id
            tests:
              - not_null
              - unique
      - name: web_orders
Середній рівень dbt

Давайте потренуємось!

Середній рівень dbt

Preparing Video For Download...