Сохраненные запросы
Сохраненные запросы — это способ сохранить часто используемые запросы в MetricFlow. Вы можете сгруппировать метрики, измерения и фильтры, которые логически связаны, в сохраненный запрос. Сохраненные запросы являются узлами и видны в dbt DAG.
Saved queries служат базовым строительным блоком, позволяя вам настраивать экспорты в конфигурации сохранённого запроса. Exports развивает эту функциональность дальше, позволяя вам планировать выполнение и запись saved queries напрямую в вашей data platform с использованием планировщика заданий dbt.
Параметры
Чтобы создать сохраненный запрос, обратитесь к следующей таблице параметров.
Обратите внимание, что мы используем точечную нотацию (.), чтобы указать, является ли параметр вложенным в другой параметр. Например, query_params.metrics означает, что параметр metrics вложен в query_params.
Если вы используете несколько метрик в сохраненном запросе, то вы сможете ссылаться только на общие измерения, которые эти метрики разделяют в group_by или where выражениях. Используйте префикс имени сущности с объектом Dimension, например Dimension('user__ds').
Настройка сохраненного запроса
Используйте сохранённые запросы (saved queries) для определения и управления общими запросами Semantic Layer в YAML, включая метрики и измерения. Сохранённые запросы позволяют организовывать и повторно использовать типовые запросы MetricFlow внутри проектов dbt. Например, вы можете группировать связанные метрики для более удобной структуры, а также включать часто используемые измерения и фильтры.
В конфигурации сохранённого запроса вы также можете использовать кэширование вместе с планировщиком заданий dbt, чтобы кэшировать часто используемые запросы, повышать производительность и снижать вычислительные затраты.
В следующем примере вы можете задать сохраненный запрос в файле semantic_model.yml:
Обратите внимание, что параметр export_as можно задать как для сохранённого запроса, так и в конфигурации экспорта config, при этом значение, указанное в конфигурации экспорта, имеет приоритет. Если какой‑либо ключ не задан в конфигурации экспорта, он будет унаследован из конфигурации сохранённого запроса.
Where выражение
Используйте следующий синтаксис для ссылки на сущности, измерения, временные измерения или метрики в фильтрах и обратитесь к Метрики как измерения для получения подробной информации о том, как использовать метрики как измерения с фильтрами метрик:
filter: |
{{ Entity('entity_name') }}
filter: |
{{ Dimension('primary_entity__dimension_name') }}
filter: |
{{ TimeDimension('time_dimension', 'granularity') }}
filter: |
{{ Metric('metric_name', group_by=['entity_name']) }}
Сохранённые запросы на уровне проекта
Чтобы включить сохраненные запросы на уровне проекта, вы можете задать конфигурацию saved-queries в файле dbt_project.yml. Это сэкономит вам время на настройку сохраненных запросов в каждом файле:
saved-queries:
my_saved_query:
+cache:
enabled: true
Для получения дополнительной информации о dbt_project.yml и соглашениях об именах конфигураций, см. страницу справки dbt_project.yml.
Чтобы собрать saved_queries:
- Убедитесь, что в вашей среде задана правильная переменная окружения.
- Выполните команду
dbt build --resource-type saved_query, используя флаг--resource-type.
Настройка экспортов
Экспорты — это дополнительная конфигурация, добавляемая к сохраненному запросу. Они определяют как записать сохраненный запрос, вместе со схемой и именем таблицы.
После того как вы настроили сохранённый запрос и задали базовый блок, вы можете сконфигурировать экспорты в YAML‑файле конфигурации saved_queries (в том же файле, где находятся определения метрик). Это также позволит вам запускать экспорты автоматически внутри вашей платформы данных с помощью планировщика заданий dbt.
Следующий пример показывает сохраненный запрос с экспортом:
Запуск экспортов
После того как вы настроили экспорты, можно пойти дальше и запускать их так, чтобы сохранённые запросы автоматически записывались в вашу платформу данных с помощью планировщика заданий dbt. Эта возможность доступна только при использовании Semantic Layer в dbt.
Для получения дополнительной информации о том, как запускать экспорты, обратитесь к документации Экспорты.