Перейти к основному содержимому
(Версии dbt: v2.0 и новее)

Подключение BigQuery к dbt v2

Вы можете настроить адаптер BigQuery, выполнив dbt init в CLI или вручную создав файл profiles.yml с полями, настроенными для выбранного типа аутентификации.

Адаптер BigQuery для dbt v2 поддерживает следующие методы аутентификации:

  • Сервисный аккаунт (JSON-файл)
  • gcloud OAuth
  • Workload Identity Federation (Microsoft Entra)

Разрешения для хранилища данных​

Удостоверение Google Cloud (сервисный аккаунт или пользователь), которое использует dbt v2, должно иметь разрешения IAM для запуска заданий, чтения и записи данных таблиц, а также чтения метаданных, которые dbt v2 использует для интроспекции и проверки актуальности источников.

Необходимые объекты Google Cloud​

Перед подключением следующие объекты должны существовать или быть доступны:

ОбъектТермин BigQueryНазначение
ПроектПроект GCPИдентификатор вашего проекта Google Cloud
Набор данныхНабор данныхЦелевой набор данных (эквивалент схемы)
Сервисный аккаунт или пользовательУдостоверение IAMУдостоверение для аутентификации
Местоположение или регионМестоположениеМестоположение данных (например, US, EU, us-east1)

Разрешения IAM​

Для основных функций dbt необходимы следующие разрешения:

РазрешениеНазначение
bigquery.datasets.getДоступ к метаданным набора данных
bigquery.tables.createСоздание таблиц
bigquery.tables.deleteУдаление или замена таблиц
bigquery.tables.getЧтение метаданных таблиц
bigquery.tables.getDataЧтение данных таблиц
bigquery.tables.listПолучение списка таблиц в наборе данных
bigquery.tables.updateОбновление схемы таблицы
bigquery.tables.updateDataВставка, обновление или удаление строк
bigquery.routines.getЧтение метаданных подпрограмм
bigquery.routines.listПолучение списка подпрограмм в наборе данных
bigquery.jobs.createВыполнение запросов

Следующие разрешения необязательны и нужны для дополнительных функций dbt:

РазрешениеКогда требуется
bigquery.datasets.createАвтоматическое создание наборов данных
bigquery.routines.createСоздание UDF или хранимых процедур
bigquery.jobs.getОтслеживание статуса заданий
storage.objects.createМодели Python (промежуточное хранение в GCS)
dataproc.*Модели Python в Dataproc

Предопределённые роли IAM​

Следующие роли обычно служат отправной точкой при настройке доступа для dbt:

РольОписаниеСценарий использования
roles/bigquery.dataEditorЧтение и запись таблиц в наборах данныхСтандартные операции dbt
roles/bigquery.userЗапуск заданий, создание наборов данныхВыполнение заданий
roles/bigquery.jobUserТолько запуск заданийМинимальные права для выполнения запросов

Для доступа к Storage Read API с помощью dbt v2 также предоставьте роль BigQuery Read Session User (roles/bigquery.readSessionUser) на уровне проекта, как указано в разделе Подключение BigQuery.

Операции с метаданными​

Для основных функций dbt необходимы следующие операции:

Тип запросаИспользуемый SQL или APIНеобходимое разрешение
Получение схемы таблицыAPI get_table_schemabigquery.tables.get
Получение списка отношенийЗапрос к набору данныхbigquery.tables.list, bigquery.routines.list
Проверка актуальности источниковЗапрос к метаданным __TABLES__bigquery.tables.get
Получение статистики таблицыЗапрос к INFORMATION_SCHEMAbigquery.tables.get
Создание набора данныхCREATE SCHEMAbigquery.datasets.create

INFORMATION_SCHEMA и представления метаданных​

dbt v2 выполняет запросы к следующим системным представлениям BigQuery:

ПредставлениеНазначениеОбласть действия
INFORMATION_SCHEMA.TABLESПолучение списка таблицНабор данных или регион
INFORMATION_SCHEMA.COLUMNSМетаданные столбцовНабор данных или регион
INFORMATION_SCHEMA.VIEWSОпределения представленийНабор данных или регион
INFORMATION_SCHEMA.PARTITIONSИнформация о секцияхТолько набор данных
__TABLES__ (устарело)Время изменения таблицНабор данных

BigQuery DataFrames (необязательно)​

Для рабочих процессов BigQuery DataFrames пользователям обычно требуются дополнительные роли, такие как BigQuery Job User, BigQuery Read Session User, Notebook Runtime User, Code Creator и colabEnterpriseUser. Точные названия ролей в вашей организации уточните у администратора Google Cloud.

Настройка dbt v2​

При выполнении dbt init в CLI вам будет предложено заполнить следующие поля:

  • Project ID: Идентификатор проекта BigQuery в GCP
  • Dataset: Имя схемы
  • Location: Расположение вашей среды GCP (например, us-east1)

Кроме того, вы можете вручную создать файл profiles.yml и настроить его поля. Примеры форматирования приведены в разделе аутентификации. Если файл profiles.yml уже существует, вы можете сохранить существующие поля или перезаписать их.

Затем выберите метод аутентификации. Следуйте инструкциям на экране, чтобы указать необходимые сведения.

Поддерживаемые типы аутентификации​

При выборе типа аутентификации Service account (JSON file) вам будет предложено указать путь к JSON-файлу. Вы также можете вручную задать этот путь в файле profiles.yml.

Пример настройки сервисного аккаунта с использованием JSON-файла​

profiles.yml
default:
target: dev
outputs:
dev:
type: bigquery
threads: 16
database: ABC123
schema: JAFFLE_SHOP
method: service-account
keyfile: /Users/youruser/Downloads/CustomRoleDefinition.json
location: us-east1
dataproc_batch: null

Дополнительная информация​

Сведения о настройках, специфичных для BigQuery, приведены в справочном руководстве по адаптеру BigQuery.

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

0
Loading