Jinja Templates — это язык для создания шаблонов. С его помощью можно написать динамические SQL-запросы, которые меняются в зависимости от заданных условий. Шаблоны можно использовать в виртуальных наборах данных BI Конструктора. Например, добавить динамический диапазон дат, который будет запрашивать данные только за выбранные промежутки времени.
В статье покажем, как добавить шаблон Jinja в виртуальный набор данных и рассмотрим основные переменные для шаблонов.
Создать виртуальный набор данных
Откройте BI Конструктор, перейдите в раздел SQL > SQL Lab . В окне впишите SQL-запрос и сохраните его как новый датасет.
Как создать виртуальный набор данных
Отредактировать виртуальный набор данных
Чтобы добавить шаблон, откройте вкладку Datasets, выберите виртуальный набор данных и нажмите Редактировать.
Измените SQL-запрос и добавьте шаблон Jinja:
WHERE {% if from_dttm is not none %} date_create >= from_iso8601_timestamp('{{ from_dttm }}') AND {% endif %} {% if to_dttm is not none %} date_create < from_iso8601_timestamp('{{ to_dttm }}') AND {% endif %} true;
- {% if from_dttm is not none %} — проверяет наличие начальной даты для фильтрации.
- date_create >= from_iso8601_timestamp('{{ from_dttm }}') AND — фильтрует данные, чтобы они включали записи с датой создания, начиная с заданной начальной даты.
- {% endif %} — завершает проверку начальной даты.
- {% if to_dttm is not none %} — проверяет наличие конечной даты для фильтрации.
- date_create < from_iso860i_timestamp('{{ to_dttm }}') AND — фильтрует данные, чтобы они включали записи с датой создания до заданной конечной даты.
- {% endif %} — завершает проверку конечной даты.
- true — поддерживает работу запроса при отсутствии дат.
Переменные в шаблоне делают запрос гибким: вы можете изменять временной диапазон выборки данных с помощью фильтра. Подставляя разные значения в from_dttm
и to_dttm
, не изменяя остальную часть запроса.
Cписок переменных для шаблонов Jinja
Переменная | Что делает |
---|---|
portal_url |
Показывает адрес портала, с которого открывается BI Конструктор. Например, в запрос можно добавить строку SELECT '{{portal_url()}}' as string , чтобы увидеть в отчете, с какого портала открыт конструктор.
|
columns | Определяет столбцы для группировки данных в запросе |
filter | Указывает фильтры, применяемые к данным |
from_dttm и to_dttm | Устанавливает временной диапазон выборки данных |
groupby | Повторяет функцию columns, группируя данные по указанным столбцам |
metrics | Включает агрегатные функции, такие как сумма или среднее |
row_limit и row_offset | Ограничивает количество строк в результате запроса и смещение начала выборки |
table_columns | Перечисляет доступные столбцы в наборе данных |
time_column и time_grain | Определяет временной столбец и интервал агрегации данных |
Проверить работу шаблона
Нажмите на набор данных и в открывшемся окне создайте график. Выберите режим запроса Сырые записи, перенесите показатели слева в блок Столбцы, настройте фильтр и нажмите Создать график.
Посмотрите, как работает шаблон в запросе, нажмите Три точки (...) > Показать SQL-запрос.
Теперь в графике работает динамический диапазон дат, который будет запрашивать данные только за выбранные промежутки времени
Коротко
- Jinja Templates — это специальный язык для создания шаблонов. С его помощью можно написать динамические SQL-запросы, которые меняются в зависимости от заданных условий.
- Чтобы добавить шаблон Jinja, отредактируйте SQL-запрос в новом или существующем наборе данных.
Рекомендуем прочитать: