Настройка 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