Nguồn dbt

dbt trung cấp

Mike Metzger

Data Engineer

dbt source là gì?

  • Tên và mô tả dữ liệu nạp bởi EL
  • Giúp xác định dòng dõi dữ liệu
  • Kiểm thử
  • Tài liệu

Nguồn dữ liệu

1 Ảnh: Mika Baumeister trên Unsplash
dbt trung cấp

Nguồn

  • Cung cấp thông tin dòng dõi dữ liệu
  • Mô tả luồng dữ liệu trong kho
  • Dùng hàm Jinja {{ source() }}
    • Tương tự hàm {{ ref() }}
  • Đơn giản hóa truy cập dữ liệu thô
select * 
from
  {{ source('raw', 'orders') }}
dbt trung cấp

Định nghĩa nguồn

  • Trong tệp .yml
  • Có thể là models/model_properties.yml
    • Hoặc bất kỳ tệp .yml nào trong thư mục
  • Trong mục sources:
  • Đặt tên nguồn với tùy chọn - name:
  • Khai báo từng bảng nguồn bằng - name: dưới tables:
  • Tùy chọn khác nhau tùy kho dữ liệu; xem tài liệu dbt.
version: 2

sources:
  - name: raw
    tables:
      - name: phone_orders
      - name: web_orders
dbt trung cấp

Truy cập nguồn

  • Dùng {{ source() }}
  • {{ source(source_name, table_name) }}
  • Trả về tên bảng đúng trong truy vấn đã biên dịch
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 trung cấp

Kiểm thử nguồn

  • Có thể áp dụng kiểm thử cho nguồn
  • Cách làm như với models
  • Định nghĩa trong phần sources: thay vì models:
  • Trong tệp .yml nơi định nghĩa nguồn
version: 2

sources:
  - name: raw
    tables:
      - name: phone_orders
        columns:
          - name: id
            tests:
              - not_null
              - unique
      - name: web_orders
dbt trung cấp

Ayo berlatih!

dbt trung cấp

Preparing Video For Download...