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

schema

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

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

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

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

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

Определение

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

Для пользователей 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.

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

Нашли ошибку?

0
Loading