创建 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

  • 四个默认数据测试写在 yaml 中:
    • unique
    • not_null
    • accepted_values
    • relationship

1.unique:每行值唯一

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

2.not_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...