Шаблоны Jinja

Введение в dbt

Mike Metzger

Data Engineer

Что такое шаблон?

  • Заданный формат с поддержкой подстановки данных
  • Как правило, текстовый файл
  • Упрощает доступ и повторное использование
Введение в dbt

Что такое Jinja?

  • Простой текстовый язык шаблонов
  • Используется во многих инструментах, не только в dbt
  • {{ ... }} обозначает подстановку в шаблоне
  • В dbt доступно множество функций Jinja
  • Делает использование dbt более динамичным
  • Позволяет применять циклы для упрощения кода
Введение в dbt

Функции Jinja в dbt

  • Некоторые из доступных функций 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

Давайте потренируемся!

Введение в dbt

Preparing Video For Download...