Mẫu Jinja

Giới thiệu về dbt

Mike Metzger

Data Engineer

Template là gì?

  • Định dạng cho phép thay thế thông tin
  • Thường là tệp văn bản
  • Đơn giản hóa truy cập và tái sử dụng
Giới thiệu về dbt

Jinja là gì?

  • Ngôn ngữ tạo mẫu đơn giản dựa trên văn bản
  • Dùng trong nhiều công cụ, không chỉ dbt
  • {{ ... }} biểu thị phép thay thế trong mẫu
  • dbt có nhiều hàm Jinja sẵn dùng trong dự án
  • Cho phép dùng dbt linh hoạt hơn
  • Có thể dùng vòng lặp để rút gọn mã
Giới thiệu về dbt

Hàm Jinja trong dbt

  • Một số hàm Jinja phổ biến
    • ref: Truy cập model theo tên
    • config: Truy cập thiết lập cấu hình
    • docs: Truy cập thông tin tài liệu
    • Phép tính, vòng lặp, v.v.
Giới thiệu về dbt

Ví dụ Jinja

  • Không dùng 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
    
  • Dùng Jinja
    SELECT
    {% for column in ['start_date', 'update_date', 'end_date'] %}
    COALESCE({{column}}, '2025-01-01') as {{column}}
    {% endfor %}
    FROM Events
    
Giới thiệu về dbt

Hãy luyện tập!

Giới thiệu về dbt

Preparing Video For Download...