Giới thiệu về kiểm thử trong dbt

dbt trung cấp

Mike Metzger

Data Engineer

Kiểm thử là gì?

  • Khẳng định/xác thực các đối tượng dbt
    • Model
    • Source và seed
  • Dùng để xác minh dữ liệu đúng kỳ vọng
    • Giá trị null
    • Giá trị trong phạm vi
    • Quan hệ giữa dữ liệu
    • Kiểm thử tùy chỉnh (trình bày sau)
dbt trung cấp

Loại kiểm thử

dbt có ba loại kiểm thử

  1. Tích hợp sẵn (4 loại định nghĩa sẵn)
  2. Singular*
  3. Generic*

$$

  • sẽ trình bày sau
dbt trung cấp

Kiểm thử tích hợp sẵn

  • unique
    • Xác minh mọi giá trị là duy nhất
  • not_null
    • Xác minh không có giá trị null
  • accepted_values
    • Xác minh mọi giá trị thuộc một danh sách cụ thể
    • values: [a, b, c, d]
  • relationships
    • Xác minh liên kết tới bảng/cột cụ thể
    • to: ref('table')
    • field: id
dbt trung cấp

Áp dụng kiểm thử ở đâu?

  • models/model_properties.yml
    • Tên file có thể tùy ý
    • models/schema.yml
  • Định nghĩa dưới mục tests:
version: 2

models:
  - name: taxi_rides_raw
    columns:
      - name: tpep_pickup_datetime
        tests:
          - not_null
      - name: payment_type
        tests:
          - not_null
          - accepted_values:
              values: [1, 2, 3, 4, 5, 6]
dbt trung cấp

Chạy kiểm thử

  • dbt test
    • dbt test --select modelname
  • Xác minh đầu ra đạt yêu cầu
  • Nếu lỗi, kiểm tra SQL đã biên dịch

đầu ra kiểm thử dbt thất bại

dbt trung cấp

Tìm lỗi thất bại

  1. Tìm mã SQL đã biên dịch
  2. Trong thư mục target/compiled/projectname/models/model_properties.yml
    • target/compiled/nyc_yellow_taxi/models/model_properties.yml/
  3. Tìm file .sql phù hợp (trùng bài kiểm thử thất bại)
  4. Sao chép nội dung vào client cơ sở dữ liệu và xác minh vị trí lỗi
  5. Loại bỏ khỏi dữ liệu và chạy lại dbt run / dbt test
dbt trung cấp

Ayo berlatih!

dbt trung cấp

Preparing Video For Download...