建立 dbt 說明與測試

案例研習:使用 dbt 建立電商資料模型

Susan Sun

Freelance Data Scientist

文件:dbt 使用者自訂說明

  • 在 yaml 檔中自行撰寫說明
  • 用於記錄:dbt 的 models、sources、seeds、data tests
  • 命名慣例:
    _<data source>__<asset>.yml
    
  • 與資產放在同一個目錄
looker_ecommerce/
  macros/
  models/
    _looker__models.yml     <------ 
    _looker__sources.yml    <------
    stg_looker__distribution_center.sql
    stg_looker__orders.sql
  seeds/
    looker__distribution_center.csv
案例研習:使用 dbt 建立電商資料模型

文件:dbt 模型 yaml

範例 _looker__models.yml

version: 2

models:
  - name: model_name
    description: This is a table
    columns:
      - name: column_name
        description: This is a column
      - name: column_name
        description: This is a column

注意:

  • version: 2 是 dbt 使用的綱要設定格式
  • models 定義此自訂說明對應的資產
  • 表名前縮排 2 個空格
  • 欄位名前縮排 4 個空格
案例研習:使用 dbt 建立電商資料模型

dbt 資料測試:not null 與 unique

  • 4 個預設資料測試寫在 yaml:
    • unique
    • not_null
    • accepted_values
    • relationship

1.unique:每列的值需唯一

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - not_null
    ...

2.not_null:不允許有 NULL 值

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - unique
        - not_null
    - name: column_name
      data_tests:
        - unique
案例研習:使用 dbt 建立電商資料模型

dbt 資料測試:accepted values

3.accepted_values:僅接受清單中的值

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - accepted_values:
            values: ['value_a', 'value_b', 'value_c', NULL]
案例研習:使用 dbt 建立電商資料模型

dbt 資料測試:relationships

4.relationships:表與表之間的參照完整性(外鍵)

- name: table_1
  columns: 
    - name: column_1
      data_tests:
        - relationships:
            to: ref('table_2')
            field: column_2
案例研習:使用 dbt 建立電商資料模型

一起來練習吧!

案例研習:使用 dbt 建立電商資料模型

Preparing Video For Download...