Написание запросов с экспортами
Экспорты улучшают сохраненные запросы, выполняя ваши сохраненные запросы и записывая результат в таблицу или представление в вашей платформе данных. Сохраненные запросы позволяют сохранять и повторно использовать часто используемые запросы в MetricFlow, а экспорты расширяют эту функциональность, позволяя:
- Записывать эти запросы в вашей платформе данных с использованием планировщика заданий dbt Cloud.
- Обеспечивать путь интеграции для инструментов, которые не поддерживают семантический слой dbt, предоставляя таблицы метрик и измерений.
По сути, экспорты подобны любым другим таблицам в вашей платформе данных — они позволяют вам запрашивать определения метрик через любой SQL-интерфейс или подключаться к инструментам нижнего уровня без полноценной интеграции семантического слоя. Запуск экспорта учитывается в использовании запрашиваемых метрик. Запрос результирующей таблицы или представления из экспорта не учитывается в использовании запрашиваемых метрик.
Предварительные условия
- У вас есть учетная запись dbt Cloud на плане Team или Enterprise.
- Вы используете одну из следующих платформ данных: Snowflake, BigQuery, Databricks или Redshift.
- Вы используете версию dbt 1.7 или новее.
- У вас настроен семантический слой dbt в вашем проекте dbt.
- У вас есть среда dbt Cloud с включенным планировщиком заданий.
- У вас есть сохраненный запрос и настроенный экспорт в вашем проекте dbt. В вашей конфигурации используйте кэширование для кэширования общих запросов, ускорения производительности и снижения затрат на вычисления.
- У вас установлен dbt Cloud CLI. Обратите внимание, что экспорты пока не поддерживаются в dbt Cloud IDE.
Преимущества экспортов
Следующий раздел объясняет основные преимущества использования экспортов, включая:
DRY представление
В настоящее время создание таблиц часто включает генерацию десятков, сотен или даже тысяч таблиц, которые денормализуют данные в сводные или метриковые таблицы. Основное преимущество экспортов заключается в создании представления "Don't Repeat Yourself (DRY)" логики для построения каждой метрики, измерения, соединения, фильтра и т.д. Это позволяет повторно использовать эти компоненты для долгосрочной масштабируемости, даже если вы заменяете вручную написанные SQL-модели ссылками на метрики или измерения в сохраненных запросах.
Упрощенные изменения
Экспорты гарантируют, что изменения в метриках и измерениях вносятся в одном месте и затем каскадно распространяются на различные назначения. Это предотвращает проблему необходимости обновления метрики во всех моделях, которые ссылаются на эту же концепцию.
Кэширование
Используйте экспорты для предварительного заполнения кэша, чтобы предварительно вычислить то, что вам нужно для обслуживания пользователей через динамические API семантического слоя.
Соображения
Экспорты предлагают множество преимуществ, и важно отметить некоторые случаи использования, которые выходят за рамки этих преимуществ:
- Бизнес-пользователи все еще могут и спытывать трудности с потреблением из десятков, сотен или тысяч таблиц, и выбор правильной может быть сложной задачей.
- Бизнес-пользователи также могут совершать ошибки при агрегации и фильтрации из предварительно построенных таблиц.
Для этих случаев используйте динамические API семантического слоя dbt вместо экспортов.
Запуск экспортов
Прежде чем вы сможете запускать экспорты в разработке или производстве, вам нужно убедиться, что вы настроили сохраненные запросы и экспорты в вашем проекте dbt. В вашей конфигурации сохраненного запроса вы также можете использовать кэширование с планировщиком заданий dbt Cloud для кэширования общих запросов, ускорения производительности и снижения затрат на вычисления.
Существует два способа запуска экспорта:
- Запуск экспортов в разработке с использованием dbt Cloud CLI для тестирования результата перед производством (Вы можете настроить экспорты в dbt Cloud IDE, однако их запуск непосредственно в IDE пока не поддерживается). Если вы используете dbt Cloud IDE, используйте
dbt build
для запуска экспортов. Убедитесь, что у вас включена переменная окружения. - Запуск экспортов в производстве с использованием планировщика заданий dbt Cloud для записи этих запросов в вашей платформе данных.
Экспорты в разработке
Вы можете запустить экспорт в вашей среде разработки, используя ваши учетные данные разработки, если вы хотите протестировать результат экспорта перед производством.
Этот раздел объясняет различные команды и опции, доступные для запуска экспортов в разработке.
-
Используйте команду
dbt sl export
для тестирования и генерации экспортов в вашей среде разработки для одного сохраненного запроса. Вы также можете использовать флаг--select
, чтобы указать конкретные экспорты из сохраненного запроса. -
Используйте команду
dbt sl export-all
, чтобы запускать экспорты для нескольких сохраненных запросов одновременно. Эта команда предоставляет удобный способ управления и выполнения экспортов для нескольких запросов одновременно, экономя время и усилия.
Экспорты для одного сохраненного запроса
Используйте следующую команду для запуска экспортов в dbt Cloud CLI:
dbt sl export
Следующая таблица перечисляет параметры команды dbt sl export
, используя префикс флага --
для указания параметров:
Параметры | Тип | Обязательный | Описание |
---|---|---|---|
name | Строка | Обязательный | Имя объекта export . |
saved-query | Строка | Обязательный | Имя сохраненного запроса, который может быть использован. |
select | Список или строка | Необязательный | Укажите имена экспортов для выбора из сохраненного запроса. |
exclude | Строка | Необязательный | Укажите имена экспортов для исключения из сохраненного запроса. |
export_as | Строка | Необязательный | Тип экспорта для создания из доступных типов export_as в конфигурации. Доступные опции: table или view . |
schema | Строка | Необязательный | Схема для использования при создании таблицы или представления. |
alias | Строка | Необязательный | Псевдоним таблицы для использования при записи таблицы или представления. |
Вы также можете запустить любой экспорт, определенный для сохраненного запроса, и записать таблицу или представление в вашей среде разработки. Обратитесь к следующему примеру команды и выводу:
dbt sl export --saved-query sq_name
Вывод будет выглядеть примерно так:
Polling for export status - query_id: 2c1W6M6qGklo1LR4QqzsH7ASGFs..
Export completed.
Использование флага select
Вы можете иметь несколько экспортов для сохраненного запроса, и по умолчанию все экспорты выполняются для сохраненного запроса. Вы можете использовать флаг select
в разработке, чтобы выбрать конкретные или несколько экспортов. Обратите внимание, что вы не можете выбирать метрики или измерения из сохраненного запроса, это только для изменения конфигурации экспорта, т.е. формата таблицы или схемы.
Например, следующая команда запускает export_1
и export_2
и не работает с флагами --alias
или --export_as
:
dbt sl export --saved-query sq_name --select export_1,export2
Переопределение конфигураций экспорта
Флаг --select
в основном используется для включения или исключения конкретных экспортов. Если вам нужно изменить эти настройки, вы можете использовать следующие флаги для переопределения конфигураций экспорта:
--export-as
— Определяет тип материализации (таблица или представление) для экспорта. Это создает новый экспорт с собственными настройками и полезно для тестирования в разработке.--schema
— Указывает схему для использования при записи таблицы или представления.--alias
— Назначает пользовательский псевдоним для записываемой таблицы или представления. Это переопределяет имя экспорта по умолчанию.
Будьте осторожны. Флаг --select
не может использоваться с alias
или schema
.
Например, вы можете использовать следующую команду для создания нового экспорта с именем new_export
в виде таблицы:
dbt sl export --saved-query sq_number1 --export-as table --alias new_export
Экспорты для нескольких сохраненных запросов
Используйте команду dbt sl export-all
, чтобы запускать экспорты для нескольких сохраненных запросов одновременно. Это отличается от команды dbt sl export
, которая запускает экспорты только для одного сохраненного запроса. Например, чтобы запустить экспорты для нескольких сохраненных запросов, вы можете использовать:
dbt sl export-all
Вывод будет выглядеть примерно так:
Exports completed:
- Created TABLE at `DBT_SL_TEST.new_customer_orders`
- Created VIEW at `DBT_SL_TEST.new_customer_orders_export_alias`
- Created TABLE at `DBT_SL_TEST.order_data_key_metrics`
- Created TABLE at `DBT_SL_TEST.weekly_revenue`
Polling completed
Команда dbt sl export-all
предоставляет гибкость для управления несколькими экспортами в одной команде.
Экспорты в производстве
Включение и выполнение экспортов в dbt Cloud оптимизирует рабочие процессы данных и обеспечивает доступ к данным в реальном времени. Это повышает эффективность и управление для более умных решений.
Экспорты используют учетные данные по умолчанию для производственной среды. Чтобы включить экспорты для выполнения сохраненных запросов и записи их в вашей платформе данных, выполните следующие шаги:
- Установите переменную окружения в dbt Cloud.
- Создайте и выполните экспорт.