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

schema

Укажите пользовательскую схему для группы моделей в вашем файле dbt_project.yml или в блоке конфигурации.

Например, если у вас есть группа моделей, связанных с маркетингом, и вы хотите разместить их в отдельной схеме под названием marketing, вы можете настроить это следующим образом:

dbt_project.yml
models:
your_project:
marketing: # Группировка или папка для набора моделей
+schema: marketing

Это приведет к тому, что сгенерированные отношения для этих моделей будут находиться в схеме marketing, так что полные имена отношений будут analytics.target_schema_marketing.model_name. Это происходит потому, что схема отношения — это {{ target.schema }}_{{ schema }}. Раздел определение объясняет это более подробно.

Обратитесь к разделу Использование для получения дополнительных примеров.

Определение

При необходимости укажите пользовательскую схему для модели, сида, снапшота, сохраненного запроса или теста.

Для пользователей dbt Cloud v1.8 или более ранних версий используйте target_schema config для указания пользовательской схемы для снапшота.

Когда dbt создает отношение (/) в базе данных, оно создается как: {{ database }}.{{ schema }}.{{ identifier }}, например, analytics.finance.payments.

Стандартное поведение dbt:

  • Если пользовательская схема не указана, схема отношения — это целевая схема ({{ target.schema }}).
  • Если пользовательская схема указана, по умолчанию схема отношения — это {{ target.schema }}_{{ schema }}.

Чтобы узнать больше о том, как изменить способ генерации схемы отношения dbt, прочитайте Использование пользовательских схем.

Использование

Модели

Настройте группы моделей из файла dbt_project.yml.

dbt_project.yml
models:
jaffle_shop: # имя проекта
marketing:
+schema: marketing

Настройте отдельные модели с помощью блока конфигурации:

models/my_model.sql
{{ config(
schema='marketing'
) }}

Сиды

dbt_project.yml
seeds:
+schema: mappings

Тесты

Настройте имя схемы, в которой тесты настроенные для хранения сбоев будут сохранять свои результаты. Полученная схема — это {{ profile.schema }}_{{ tests.schema }}, с суффиксом по умолчанию dbt_test__audit. Чтобы использовать ту же схему профиля, установите +schema: null.

dbt_project.yml
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 взаимозаменяемы.
0