กรณีศึกษา: การสร้าง Data Model สำหรับ E-Commerce ด้วย dbt
Susan Sun
Freelance Data Scientist
ติดตั้ง dbt
pip install dbt
สร้างโปรเจกต์ dbt ชื่อ looker_ecommerce
dbt init looker_ecommerce
ตรวจสอบการตั้งค่า
cd looker_ecommerce
dbt debug
โครงสร้างไฟล์ที่ dbt สร้างให้อัตโนมัติ:

distribution_centers.csv มีขนาดเล็กและไม่เปลี่ยนแปลงบ่อย มีเพียง 10 แถว
ตัวอย่างข้อมูลดิบจากไฟล์ distribution_centers.csv

orders.csv มีขนาดใหญ่และอัปเดตอยู่เสมอ มี 125,000 แถวและ 9 คอลัมน์
ตัวอย่างข้อมูลดิบจากไฟล์ orders.csv:

Distribution center ไฟล์ข้อมูลดิบ:
Orders ไฟล์ข้อมูลดิบ:
dbt seeddbt sourcedbt init สร้างโครงสร้างไฟล์พื้นฐานให้อัตโนมัติ:
looker_ecommerce/
macros/
models/
seeds/
snapshots/
tests/
dbt_project.yml
โหลด distribution_center เป็น seed:
looker_ecommerce/
macros/
models/
stg_looker__distribution_centers.sql
seeds/
looker__distribution_centers.csv
snapshots/
tests/
dbt_project.yml
ใน stg_looker__distribution_centers.sql:
SELECT
id,
name,
latitude,
longitude
FROM
{{ref('looker__distribution_centers')}}
โหลด orders เป็น source:
looker_ecommerce/
macros/
models/
stg_looker__orders.sql
seeds/
snapshots/
tests/
dbt_project.yml
ใน stg_looker__orders.sql:
SELECT *
FROM
{{source('looker_ecommerce', 'orders')}}
การจัดทำเอกสาร sources:
looker_ecommerce/
macros/
models/
_looker__sources.yml
seeds/
snapshots/
tests/
dbt_project.yml
ใน _looker__sources.yml:
version: 2
sources:
- name: looker_ecommerce
tables:
- name: orders
_looker__models.yml ในไดเรกทอรี models เดียวกัน:version: 2
models:
- name: stg_looker__distribution_centers
description: Distribution center name and location
- name: stg_looker__orders
description: Order information such as order status
looker_ecommerce/
macros/
models/
_looker__models.yml
_looker__sources.yml
stg_looker__distribution_centers.sql
stg_looker__orders.sql
seeds/
looker__distribution_centers.csv
snapshots/
tests/
dbt_project.yml
โหลดไฟล์ CSV เป็น seed files
dbt seed
สร้างหรืออัปเดตโมเดลทั้งหมดในโปรเจกต์ dbt
dbt run
สร้างหรืออัปเดตเฉพาะโมเดลที่ระบุ
dbt run --select model
รันการทดสอบทั้งหมดในโปรเจกต์ dbt
dbt test
รันการทดสอบสำหรับโมเดลที่ระบุ
dbt test --select model
รวม dbt run และ dbt test ไว้ในคำสั่งเดียว!
dbt build
dbt build --select model
รูปแบบการตั้งชื่อ models:
<data_source>__<model_name>.sqlตัวอย่าง
stg_looker__distribution_centers.sqlstg_looker__orders.sqlรูปแบบการตั้งชื่อไฟล์ yaml:
_<data_source>__<artifact_type>.ymlตัวอย่าง
_looker__models.yml_looker__sources.ymlกรณีศึกษา: การสร้าง Data Model สำหรับ E-Commerce ด้วย dbt