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

Настройка переменных окружения

dbt v2 автоматически загружает переменные окружения из файла .env в текущем рабочем каталоге (папке, в которую вы переходите с помощью cd и из которой запускаете команды dbt в терминале). Это помогает управлять учетными данными и настройками, не прописывая их значения напрямую в profiles.yml и не раскрывая их в истории команд оболочки.

Использование файла .env​

  1. Создайте файл .env в текущем рабочем каталоге (обычно в корне проекта dbt):

    DBT_MY_DATABASE=my_database
    DBT_MY_SCHEMA=my_schema
    DBT_SECRET_KEY=my_secret_value
  2. Используйте эти переменные в profiles.yml с помощью функции Jinja env_var:

    my_profile:
    target: dev
    outputs:
    dev:
    type: snowflake
    account: my_account
    database: "{{ env_var('DBT_MY_DATABASE') }}"
    schema: "{{ env_var('DBT_MY_SCHEMA') }}"
  3. Запускайте команды dbt как обычно. dbt v2 автоматически загрузит переменные из файла .env. Например, при запуске dbtf debug будут показаны параметры подключения со значениями из .env:

    dbtf debug
    ...
    Debugging connection:
    "authenticator": "my_authenticator",
    "account": "my_account",
    "user": "my_user",
    "database": "my_database", # Загружено из DBT_MY_DATABASE в .env
    "schema": "my_schema", # Загружено из DBT_MY_SCHEMA в .env
примечание

Рекомендуем размещать файл .env в корне проекта и запускать команды dbt из этого каталога, поскольку файл загружается только из текущего рабочего каталога. При его загрузке не учитываются флаг --project-dir и переменная окружения (Версии dbt: v1.11 и новее) DBT_ENGINE_PROJECT_DIR, а dbt не будет искать файл в корне проекта, если вы запускаете команды из другого каталога.

Порядок приоритета​

Если одна и та же переменная окружения определена в нескольких местах, dbt v2 использует следующий порядок приоритета (от высшего к низшему):

  1. Окружение оболочки — переменные, заданные непосредственно в оболочке (например, export DBT_MY_VAR=value)
  2. Файл .env — переменные, определенные в файле .env в текущем рабочем каталоге

Это означает, что переменные окружения, заданные в оболочке, всегда переопределяют значения из файла .env.

подсказка

Добавьте .env в файл .gitignore, чтобы конфиденциальные учетные данные не попали в систему контроля версий. Команда dbtf init автоматически добавляет .env в создаваемый файл .gitignore.

Подробнее об управлении переменными окружения в локальной среде см. в разделе Настройка локальной среды.

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

0
Loading