Перейти к основному содержимому

Сохраненные запросы

Сохраненные запросы — это способ сохранить часто используемые запросы в MetricFlow. Вы можете сгруппировать метрики, измерения и фильтры, которые логически связаны, в сохраненный запрос. Сохраненные запросы являются узлами и видны в dbt .

Сохраненные запросы служат основным строительным блоком, позволяя вам настраивать экспорты в конфигурации вашего сохраненного запроса. Экспорты расширяют эту функциональность, позволяя планировать и записывать сохраненные запросы непосредственно в вашей платформе данных с использованием планировщика заданий dbt Cloud.

Параметры

Чтобы создать сохраненный запрос, обратитесь к следующей таблице параметров.

подсказка

Обратите внимание, что мы используем двойное двоеточие (::), чтобы указать, вложен ли параметр в другой параметр. Например, query_params::metrics означает, что параметр metrics вложен в query_params.

Если вы используете несколько метрик в сохраненном запросе, то вы сможете ссылаться только на общие измерения, которые эти метрики разделяют в group_by или where выражениях. Используйте префикс имени сущности с объектом Dimension, например Dimension('user__ds').

Настройка сохраненного запроса

Используйте сохраненные запросы для определения и управления общими запросами Семантического слоя в YAML, включая метрики и измерения. Сохраненные запросы позволяют организовывать и повторно использовать общие запросы MetricFlow в проектах dbt. Например, вы можете сгруппировать связанные метрики для лучшей организации и включить часто используемые измерения и фильтры.

В конфигурации вашего сохраненного запроса вы также можете использовать кэширование с планировщиком заданий dbt Cloud для кэширования общих запросов, ускорения производительности и снижения затрат на вычисления.

Сохраненные запросы на уровне проекта

Чтобы включить сохраненные запросы на уровне проекта, вы можете задать конфигурацию saved-queries в файле dbt_project.yml. Это сэкономит вам время на настройку сохраненных запросов в каждом файле:

dbt_project.yml
saved-queries:
my_saved_query:
+cache:
enabled: true

Для получения дополнительной информации о dbt_project.yml и соглашениях об именах конфигураций, см. страницу справки dbt_project.yml.

Чтобы построить saved_queries, используйте флаг --resource-type и выполните команду dbt build --resource-type saved_query.

Настройка экспортов

Экспорты — это дополнительная конфигурация, добавляемая к сохраненному запросу. Они определяют как записать сохраненный запрос, вместе со схемой и именем таблицы.

После того как вы настроили свой сохраненный запрос и задали основной блок, вы можете настроить экспорты в YAML-файле конфигурации saved_queries (тот же файл, что и ваши определения метрик). Это также позволит вам запускать экспорты автоматически в вашей платформе данных с использованием планировщика заданий dbt Cloud.

Следующий пример показывает сохраненный запрос с экспортом:

semantic_model.yml
saved_queries:
- name: order_metrics
description: Relevant order metrics
query_params:
metrics:
- orders
- large_order
- food_orders
- order_total
group_by:
- Entity('order_id')
- TimeDimension('metric_time', 'day')
- Dimension('customer__customer_name')
- ... # Дополнительные group_by
where:
- "{{TimeDimension('metric_time')}} > current_timestamp - interval '1 week'"
- ... # Дополнительные where выражения
exports:
- name: order_metrics
config:
export_as: table # Доступные варианты: table, view
schema: YOUR_SCHEMA # Необязательно - по умолчанию используется схема развертывания
alias: SOME_TABLE_NAME # Необязательно - по умолчанию используется имя экспорта

Запуск экспортов

После того как вы настроили экспорты, вы можете сделать шаг дальше, запустив экспорты для автоматической записи сохраненных запросов в вашей платформе данных с использованием планировщика заданий dbt Cloud. Эта функция доступна только с Семантическим слоем dbt Cloud.

Для получения дополнительной информации о том, как запускать экспорты, обратитесь к документации Экспорты.

Часто задаваемые вопросы

 Могу ли я иметь несколько экспортов в одном сохраненном запросе?
 Как я могу выбрать saved_queries по их типу ресурса?

Связанные документы

0