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

О переменных target

Переменная target содержит информацию о вашем подключении к хранилищу.

  • dbt Core: Эти значения основаны на целевой конфигурации, определенной в вашем файле profiles.yml. Обратите внимание, что для некоторых адаптеров могут потребоваться дополнительные шаги настройки. Обратитесь к странице настройки для вашей платформы данных.
  • dbt Cloud Чтобы узнать больше о настройке вашего адаптера в dbt Cloud, обратитесь к О подключениях к платформам данных.
    • Планировщик dbt Cloud: target.name определяется для каждой задачи, как описано в Пользовательские имена целей. Для других атрибутов значения определяются подключением для развертывания. Чтобы проверить эти значения, нажмите Deploy и выберите Environments. Затем выберите соответствующую среду развертывания и нажмите Settings.
    • IDE dbt Cloud: Эти значения определяются вашим подключением и учетными данными. Чтобы изменить эти значения, нажмите на имя вашей учетной записи в левом меню и выберите Account settings. Затем нажмите Credentials. Выберите и отредактируйте проект, чтобы настроить учетные данные и имя цели.

Некоторые конфигурации общие для всех адаптеров, в то время как другие специфичны для адаптеров.

Общие

ПеременнаяПримерОписание
target.profile_namejaffle_shopИмя активного профиля
target.namedevИмя активной цели
target.schemadbt_aliceИмя схемы dbt (или, набора данных в BigQuery)
target.typepostgresАктивный используемый адаптер. Один из "postgres", "snowflake", "bigquery", "redshift", "databricks"
target.threads4Количество потоков, используемых dbt

Специфичные для адаптера

Snowflake

ПеременнаяПримерОписание
target.databaseRAWИмя базы данных, указанное в активной цели.
target.warehouseTRANSFORMИмя виртуального склада Snowflake
target.userTRANSFORM_USERПользователь, указанный в активной цели
target.roleTRANSFORM_ROLEРоль, указанная в активной цели
target.accountabc123Учетная запись, указанная в активной цели

Postgres/Redshift

ПеременнаяПримерОписание
target.dbnameanalyticsИмя базы данных, указанное в активной цели.
target.hostabc123.us-west-2.redshift.amazonaws.comХост, указанный в активной цели
target.userdbt_userПользователь, указанный в активной цели
target.port5439Порт, указанный в активном профиле

BigQuery

ПеременнаяПримерОписание
target.projectabc-123Проект, указанный в активном профиле
target.datasetdbt_aliceНабор данных активного профиля

Примеры

Использование target.name для ограничения данных в dev

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

select
*
from source('web_events', 'page_views')
{% if target.name == 'dev' %}
where created_at >= dateadd('day', -3, current_date)
{% endif %}

Использование target.name для изменения вашей исходной базы данных

Если у вас настроены определенные базы данных Snowflake для ваших сред dev/qa/prod, вы можете настроить ваши источники для компиляции в разные базы данных в зависимости от вашей среды.

version: 2

sources:
- name: source_name
database: |
{%- if target.name == "dev" -%} raw_dev
{%- elif target.name == "qa" -%} raw_qa
{%- elif target.name == "prod" -%} raw_prod
{%- else -%} invalid_database
{%- endif -%}
schema: source_schema
0