dbt seeds

dbt trung cấp

Mike Metzger

Data Engineer

dbt seeds là gì?

  • Tệp CSV nạp vào kho dữ liệu
  • Thường là bộ dữ liệu ít thay đổi
    • Danh sách quốc gia
    • Danh sách mã bưu chính
  • KHÔNG dùng cho dữ liệu thô

Seeds

1 Ảnh: Maddi Bazzocco trên Unsplash
dbt trung cấp

Vì sao?

  • Dễ quản lý
  • Dễ dùng trong nhiều tình huống
  • Có thể quản lý phiên bản
dbt trung cấp

Định nghĩa seeds như thế nào?

  • Thêm tệp CSV vào thư mục seeds
  • Đảm bảo header ở dòng đầu
  • Nhập bằng lệnh dbt seed
zipcode,place,state
99553,Akutan,Alaska
99571,Cold Bay,Alaska
99583,False Pass,Alaska

bash> dbt seed
1 Mã bưu chính từ https://github.com/zauberware/postal-codes-json-xml-csv
dbt trung cấp

Cấu hình nâng cao

  • Nhiều tùy chọn
    • Schema nào?
    • Cơ sở dữ liệu nào?
    • Trích dẫn cột
    • Kiểu dữ liệu cột
  • Áp dụng cho toàn bộ dự án hoặc từng seed
  • Thêm vào dbt_project.yml hoặc seeds/properties.yml
dbt trung cấp

Định nghĩa kiểu dữ liệu

  • Kiểu dữ liệu phụ thuộc vào kho dữ liệu
  • Có các kiểu phổ biến
    • Integer
    • Varchar
    • v.v.
  • Nếu không khai báo, kiểu sẽ được suy ra từ dữ liệu
version: 2

seeds:
  - name: zipcodes
    config:
      column_types:
        zipcode: varchar(5)
dbt trung cấp

Kiểm thử

  • Hỗ trợ kiểm thử
  • Tương tự models và sources
version: 2

seeds:
  - name: zipcodes
    config:
      column_types:
        zipcode: varchar(5)
    columns:
      - name: zipcode
        tests:
          - unique
dbt trung cấp

Truy cập seeds

  • Truy cập qua lệnh {{ ref() }}
  • Sau khi nhập, hoạt động như một model
select * from
  {{ ref('zipcodes') }}
dbt trung cấp

Hãy thực hành!

dbt trung cấp

Preparing Video For Download...