Настройка BigQuery
profiles.yml предназначен только для пользователей dbt CoreЕсли вы используете dbt Cloud, вам не нужно создавать файл profiles.yml. Этот файл предназначен только для пользователей dbt Core. Чтобы подключить вашу платформу данных к dbt Cloud, обратитесь к разделу О платформах данных.
- Поддерживается: dbt Labs
- Авторы: core dbt maintainers
- Репозиторий на GitHub: dbt-labs/dbt-bigquery
- Пакет на PyPI:
dbt-bigquery - Канал в Slack: #db-bigquery
- Поддерживаемая версия dbt Core: v0.10.0 и новее
- Поддержка dbt Cloud: Supported
- Минимальная версия платформы данных: n/a
Установка dbt-bigquery
Используйте pip для установки адаптера. До версии 1.8 установка адаптера автоматически устанавливала dbt-core и любые дополнительные зависимости. Начиная с версии 1.8, установка адаптера не устанавливает автоматически dbt-core. Это связано с тем, что адаптеры и версии dbt Core были разделены, и мы больше не хотим перезаписывать существующие установки dbt-core.
Используйте следующую команду для установки:
Конфигурация dbt-bigquery
Для конфигурации, специфичной для BigQuery, пожалуйста, обратитесь к конфигурациям BigQuery.
Методы аутентификации
Цели BigQuery могут быть указаны с использованием одного из четырех методов:
Для локальной разработки мы рекомендуем использовать метод OAuth. Если вы планируете запускать dbt на сервере, следует использовать метод аутентификации через учетную запись службы.
Цели BigQuery должны быть настроены с использованием следующей конфигурации в вашем файле profiles.yml. Также вы можете указать ряд дополнительных конфигураций.
OAuth через gcloud
Этот метод подключения требует локального OAuth через gcloud.
# Обратите внимание, что требуется только одна из этих целей
my-bigquery-db:
target: dev
outputs:
dev:
type: bigquery
method: oauth
project: GCP_PROJECT_ID
dataset: DBT_DATASET_NAME # Вы также можете использовать "schema" здесь
threads: 4 # Должно быть значением 1 или больше
OPTIONAL_CONFIG: VALUE
Проект по умолчанию
Если вы не указываете project/database и используете метод oauth, dbt будет использовать проект по умолчанию, связанный с вашим пользователем, как определено в gcloud config set.
На основе OAuth токена
См. документацию о использовании OAuth 2.0 для доступа к Google API.
Токен обновления
Используя токен обновления и информацию о клиенте, dbt будет создавать новые токены доступа по мере необходимости.
my-bigquery-db:
target: dev
outputs:
dev:
type: bigquery
method: oauth-secrets
project: GCP_PROJECT_ID
dataset: DBT_DATASET_NAME # Вы также можете использовать "schema" здесь
threads: 4 # Должно быть значением 1 или больше
refresh_token: TOKEN
client_id: CLIENT_ID
client_secret: CLIENT_SECRET
token_uri: REDIRECT_URI
OPTIONAL_CONFIG: VALUE
Временный токен
dbt будет использовать одноразовый токен доступа без дополнительных вопросов. Этот подход имеет смысл, если у вас есть внешний процесс развертывания, который может создавать новые токены доступа и обновлять файл профиля соответствующим образом.
my-bigquery-db:
target: dev
outputs:
dev:
type: bigquery
method: oauth-secrets
project: GCP_PROJECT_ID
dataset: DBT_DATASET_NAME # Вы также можете использовать "schema" здесь
threads: 4 # Должно быть значением 1 или больше
token: TEMPORARY_ACCESS_TOKEN # обновляется внешним процессом
OPTIONAL_CONFIG: VALUE
Файл учетной записи службы
my-bigquery-db:
target: dev
outputs:
dev:
type: bigquery
method: service-account
project: GCP_PROJECT_ID
dataset: DBT_DATASET_NAME
threads: 4 # Должно быть значением 1 или больше
keyfile: /PATH/TO/BIGQUERY/keyfile.json
OPTIONAL_CONFIG: VALUE