Jinja 模板

dbt 入门

Mike Metzger

Data Engineer

什么是模板?

  • 一种可替换信息的预定义格式
  • 通常是文本文件
  • 便于访问与复用
dbt 入门

什么是 Jinja?

  • 简单的文本模板语言
  • 用于多种工具,不仅是 dbt
  • {{ ... }} 表示模板替换
  • dbt 提供许多可在项目中使用的 Jinja 函数
  • 让 dbt 使用更动态
  • 可用 for 循环简化代码
dbt 入门

dbt 的 Jinja 函数

  • 部分常用 Jinja 函数
    • ref:按名称访问模型
    • config:访问配置
    • docs:访问文档信息
    • 计算、循环等
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 入门

Passons à la pratique !

dbt 入门

Preparing Video For Download...