Jinja templates

dbt เบื้องต้น

Mike Metzger

Data Engineer

Template คืออะไร?

  • รูปแบบที่กำหนดไว้สำหรับแทนที่ข้อมูล
  • มักเป็นไฟล์ข้อความ
  • ช่วยให้เข้าถึงและนำกลับมาใช้ซ้ำได้ง่าย
dbt เบื้องต้น

Jinja คืออะไร?

  • ภาษา templating แบบข้อความที่เรียบง่าย
  • ใช้งานได้ในหลายเครื่องมือนอกจาก dbt
  • {{ ... }} แทนการแทนที่ใน template
  • dbt มีฟังก์ชัน Jinja หลายตัวสำหรับใช้ในโปรเจกต์
  • ช่วยให้ใช้งาน dbt ได้อย่างยืดหยุ่นมากขึ้น
  • ใช้ for loop เพื่อลดความซ้ำซ้อนของโค้ด
dbt เบื้องต้น

ฟังก์ชัน Jinja ใน dbt

  • ฟังก์ชัน Jinja ที่ใช้บ่อยใน dbt
    • ref: เข้าถึงโมเดลด้วยชื่อ
    • config: เข้าถึงการตั้งค่า configuration
    • docs: เข้าถึงข้อมูล documentation
    • การคำนวณ, Loops และอื่น ๆ
dbt เบื้องต้น

ตัวอย่าง Jinja

  • โดยไม่ใช้ Jinja
    SELECT
    COALESCE(start_date, '2025-01-01') as start_date,
    COALESCE(update_date, '2025-01-01') as update_date,
    COALESCE(end_date, '2025-01-01') as end_date
    FROM Events
    
  • เมื่อใช้ Jinja
    SELECT
    {% for column in ['start_date', 'update_date', 'end_date'] %}
    COALESCE({{column}}, '2025-01-01') as {{column}}
    {% endfor %}
    FROM Events
    
dbt เบื้องต้น

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

dbt เบื้องต้น

Preparing Video For Download...