กรณีศึกษา: การสร้าง Data Model สำหรับ E-Commerce ด้วย dbt
Susan Sun
Freelance Data Scientist
_<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
ตัวอย่าง _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 ใดที่ผู้ใช้กำลังจัดทำเอกสาร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
3.accepted_values: รับเฉพาะค่าที่อยู่ในรายการที่กำหนด
- name: table_name
columns:
- name: column_name
data_tests:
- accepted_values:
values: ['value_a', 'value_b', 'value_c', NULL]
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