โมเดลแบบลำดับชั้นใน dbt

dbt เบื้องต้น

Mike Metzger

Data Engineer

ลำดับชั้นใน dbt คืออะไร?

  • แสดงความสัมพันธ์เชิงพึ่งพาภายในโปรเจกต์ dbt
  • เรียกอีกชื่อว่า directed acyclic graph (DAG) หรือ lineage graph
    • หมายเหตุ: นี่คือ DAG เฉพาะของ dbt ไม่ใช่ DAG ทั่วไป
  • ช่วยให้สร้าง/อัปเดตโมเดลได้ตามลำดับการพึ่งพา

dbt DAG / Lineage graph

dbt เบื้องต้น

รายละเอียดลำดับชั้น

  • avg_fare_per_day และ total_creditcard_riders_per_day ขึ้นอยู่กับ taxi_rides_raw
  • dbt จะสร้าง taxi_rides_raw ก่อนเสมอ
  • หากไม่มี lineage graph dbt จะสร้างตามลำดับตัวอักษร
    • avg_fare_per_day จะล้มเหลวหากยังไม่มี taxi_rides_raw

dbt DAG / Lineage graph

dbt เบื้องต้น

กำหนดลำดับชั้นอย่างไร?

  • กำหนดผ่านภาษาเทมเพลต Jinja ในไฟล์โมเดล
  • ส่วนใหญ่ใช้ฟังก์ชัน ref
  • แทนที่ชื่อตารางด้วย {{ ref('model_name') }} ใน SQL
  • สร้าง/สร้างใหม่ด้วย dbt run
  • เทมเพลต ref จะถูกแทนที่ด้วยชื่อตารางจริงโดยอัตโนมัติ
dbt เบื้องต้น

ตัวอย่างลำดับชั้น

SELECT 
  first_name, last_name
FROM taxi_rides_raw
SELECT 
  first_name, last_name
FROM {{ ref('taxi_rides_raw') }}
dbt เบื้องต้น

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

dbt เบื้องต้น

Preparing Video For Download...