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-запрос в новом или существующем наборе данных.
Рекомендуем прочитать: