schema
- Модель
- Сиды
- Снапшоты
- Сохраненные запросы
- Тест
Укажите пользовательскую схему для группы моделей в YAML-файле вашего проекта (dbt_project.yml) или в настройках конфигурации SQL-файла.
Например, если у вас есть группа моделей, связанных с маркетингом, и вы хотите разместить их в отдельной схеме с именем 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.
Укажите пользовательскую схему для сохранённого запроса в вашем dbt_project.yml или файле свойств.
saved-queries:
+schema: metrics
В результате сохранённый запрос будет сохранён в схеме metrics.
Настройте свою схему для хранения результатов тестов в вашем файле dbt_project.yml.
Например, чтобы сохранить результаты тестов в определенной схеме, вы можете настроить это следующим образом:
data_tests:
+store_failures: true
+schema: test_results
Это приведет к тому, что результаты тестов будут сохранены в схеме test_results.
Обратитесь к разделу Использование для получения дополнительных примеров.
Определение
При необходимости укажите пользовательскую схему для модели, сида, снапшота, сохраненного запроса или теста.
Для пользователей dbt версии 1.8 или ниже используйте конфигурацию target_schema, чтобы указать пользовательскую схему для snapshot.
Когда dbt создает отношение (table/view) в базе данных, оно создается как: {{ 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.
data_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взаимозаменяемы.