target_database
Начиная с dbt Core версии 1.9+, эта функциональность больше не используется. Используйте конфигурацию database в качестве альтернативы для определения пользовательской базы данных, при этом соблюдая макрос generate_database_name
.
Попробуйте это сейчас в dbt Cloud "Latest" release track.
snapshots:
<resource-path>:
+target_database: string
{{ config(
target_database="string"
) }}
Описание
База данных, в которую dbt должен построить снимок .
Примечания:
- Указанная база данных должна уже существовать
- В BigQuery это аналогично
проекту
. - В Redshift кросс-базовые запросы невозможны. Если вы используете этот параметр, вы получите следующую ошибку. Таким образом, не используйте этот параметр в Redshift:
Обнаружена ошибка:
Ошибка выполнения
Кросс-базовые ссылки не разрешены в redshift (raw vs analytics)
По умолчанию
По умолчанию dbt будет использовать target базу данных, связанную с вашим профилем/соединением.
Примеры
Построение всех снимков в базе данных с именем snapshots
snapshots:
+target_database: snapshots
Использование базы данных с учетом цели
Используйте переменную {{ target }}
, чтобы изменить, в какой базе данных будет построена таблица снимков.
Примечание: подумайте, подходит ли вам этот вариант использования, так как последующие refs
будут выбирать из dev
версии снимка, что может затруднить проверку моделей, зависящих от снимков.
snapshots:
+target_database: "{% if target.name == 'dev' %}dev{% else %}{{ target.database }}{% endif %}"
Использование того же поведения именования баз данных, что и у моделей
Используйте макрос generate_database_name
, чтобы строить снимки в базах данных, которые следуют тому же поведению именования, что и ваши модели.
Примечания:
- Этот макрос недоступен при настройке из файла
dbt_project.yml
, поэтому он должен быть настроен в блоке конфигурации снимка. - Подумайте, подходит ли вам этот вариант использования, так как последующие
refs
будут выбирать изdev
версии снимка, что может затруднить проверку моделей, зависящих от снимков.
{{
config(
target_database=generate_database_name('snapshots')
)
}}