dbt の説明とテストの作成

ケーススタディ: dbt で構築する Eコマースのデータモデル

Susan Sun

Freelance Data Scientist

docs: 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 で構築する Eコマースのデータモデル

docs: 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 で構築する Eコマースのデータモデル

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 で構築する Eコマースのデータモデル

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 で構築する Eコマースのデータモデル

dbt データテスト: relationships

4.relationships: テーブル間の参照整合性(外部キー)

- name: table_1
  columns: 
    - name: column_1
      data_tests:
        - relationships:
            to: ref('table_2')
            field: column_2
ケーススタディ: dbt で構築する Eコマースのデータモデル

Ayo berlatih!

ケーススタディ: dbt で構築する Eコマースのデータモデル

Preparing Video For Download...