schema
- Модель
- Сиды
- Снапшоты
- Сохраненные запросы
- Тест
Укажите пользовательскую схему для группы моделей в вашем файле dbt_project.yml
или в блоке конфигурации.
Например, если у вас есть группа моделей, связанных с маркетингом, и вы хотите разместить их в отдельной схеме под названием marketing
, вы можете настроить это следующим образом:
models:
your_project:
marketing: # Группировка или папка для набора моделей
+schema: marketing
Это приведет к тому, что сгенерированные отношения для этих моделей будут находиться в схеме marketing
, так что полные имена отношений будут analytics.target_schema_marketing.model_name
. Это происходит потому, что схема отношения — это {{ target.schema }}_{{ schema }}
. Раздел определение объясняет это более подробно.
Настройте пользовательскую схему в вашем файле dbt_project.yml
.
Например, если у вас есть сид, который должен быть размещен в отдельной схеме под названием mappings
, вы можете настроить это следующим образом:
seeds:
your_project:
product_mappings:
+schema: mappings
Это приведет к тому, что сгенерированное отношение будет находиться в схеме mappings
, так что полное имя отношения будет analytics.mappings.seed_name
.
Specify a custom schema for a saved query in your dbt_project.yml
or YAML file.
saved-queries:
+schema: metrics
This would result in the saved query being stored in the metrics
schema.
Настройте свою схему для хранения результатов тестов в вашем файле dbt_project.yml
.
Например, чтобы сохранить результаты тестов в определенной схеме, вы можете настроить это следующим образом:
tests:
+store_failures: true
+schema: test_results
Это приведет к тому, чт о результаты тестов будут сохранены в схеме test_results
.
Обратитесь к разделу Использование для получения дополнительных примеров.
Определение
При необходимости укажите пользовательскую схему для модели, сида, снапшота, сохраненного запроса или теста.
Для пользователей dbt Cloud v1.8 или более ранних версий используйте target_schema
config для указания пользовательской схемы для снапшота.
Когда dbt создает отношение (/) в базе данных, оно создается как: {{ database }}.{{ schema }}.{{ identifier }}
, например, analytics.finance.payments
.
Стандартное поведение dbt:
- Если пользовательская схема не указана, схема отношения — это целевая схема (
{{ target.schema }}
). - Если пользовательская схема указана, по умолчанию схема отношения — это
{{ target.schema }}_{{ schema }}
.
Чтобы узнать больше о том, как изменить способ генерации схемы отношения dbt, прочитайте Использование пользовательских схем.
Использование
Модели
Настройте группы моделей из файла dbt_project.yml
.
models:
jaffle_shop: # имя проекта
marketing:
+schema: marketing
Настройте отдельные модели с помощью блока конфигурации:
{{ config(
schema='marketing'
) }}
Сиды
seeds:
+schema: mappings
Тесты
Настройте имя схемы, в которой тесты настроенные для хранения сбоев будут сохранять свои результаты.
Полученная схема — это {{ profile.schema }}_{{ tests.schema }}
, с суффиксом по умолчанию dbt_test__audit
.
Чтобы использовать ту же схему профиля, установите +schema: null
.
tests:
+store_failures: true
+schema: _sad_test_failures # Запишет таблицы в my_database.my_schema__sad_test_failures
Убедитесь, что у вас есть разрешение на создание или доступ к схемам для вашей работы. Чтобы гарантировать, что необходимые схемы имеют правильные разрешения, выполните SQL-запрос в соответствующей среде вашей платформы данных. Например, выполните следующую команду, если вы используете Redshift (точный запрос на авторизацию может отличаться в зависимости от платформы данных):
create schema if not exists dev_username_dbt_test__audit authorization username;
Замените dev_username
на ваше конкретное имя схемы разработки и username
на соответствующего пользователя, которому должн ы быть предоставлены разрешения.
Эта команда предоставляет соответствующие разрешения для создания и доступа к схеме dbt_test__audit
, которая часто используется с конфигурацией store_failures
.
Информация, специфичная для хранилища
- BigQuery:
dataset
иschema
взаимозаменяемы.