การสร้าง dbt descriptions และ tests

กรณีศึกษา: การสร้าง Data Model สำหรับ E-Commerce ด้วย dbt

Susan Sun

Freelance Data Scientist

docs: คำอธิบายที่ผู้ใช้กำหนดเองใน dbt

  • คำอธิบายที่ผู้ใช้กำหนดเองในไฟล์ yaml
  • ใช้สำหรับจัดทำเอกสาร: dbt models, sources, seeds, data tests ฯลฯ
  • รูปแบบการตั้งชื่อ:
    _<data source>__<asset>.yml
    
  • เก็บไว้ในไดเรกทอรีเดียวกับ assets
looker_ecommerce/
  macros/
  models/
    _looker__models.yml     <------ 
    _looker__sources.yml    <------
    stg_looker__distribution_center.sql
    stg_looker__orders.sql
  seeds/
    looker__distribution_center.csv
กรณีศึกษา: การสร้าง Data Model สำหรับ E-Commerce ด้วย dbt

docs: dbt model 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 คือรูปแบบการกำหนดค่า schema ที่ dbt ใช้
  • models ระบุว่า asset ใดที่ผู้ใช้กำลังจัดทำเอกสาร
  • ชื่อตาราง เยื้อง 2 ช่องว่าง
  • ชื่อคอลัมน์ เยื้อง 4 ช่องว่าง
กรณีศึกษา: การสร้าง Data Model สำหรับ E-Commerce ด้วย dbt

dbt data tests: not null และ unique

  • data tests ค่าเริ่มต้น 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
กรณีศึกษา: การสร้าง Data Model สำหรับ E-Commerce ด้วย dbt

dbt data tests: accepted values

3.accepted_values: รับเฉพาะค่าที่อยู่ในรายการที่กำหนด

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - accepted_values:
            values: ['value_a', 'value_b', 'value_c', NULL]
กรณีศึกษา: การสร้าง Data Model สำหรับ E-Commerce ด้วย dbt

dbt data tests: relationships

4.relationships: ความสมบูรณ์ของการอ้างอิง (foreign key) ระหว่างตาราง

- name: table_1
  columns: 
    - name: column_1
      data_tests:
        - relationships:
            to: ref('table_2')
            field: column_2
กรณีศึกษา: การสร้าง Data Model สำหรับ E-Commerce ด้วย dbt

มาฝึกกันเถอะ!

กรณีศึกษา: การสร้าง Data Model สำหรับ E-Commerce ด้วย dbt

Preparing Video For Download...