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

Интеграция BigQuery с ClickHouse Cloud

Private preview in ClickHouse Cloud
Примечание

Вы можете записаться в список ожидания Private Preview здесь.

ClickPipe для BigQuery предоставляет полностью управляемый и отказоустойчивый способ приёма данных из BigQuery в ClickHouse Cloud. В рамках Private Preview он поддерживает метод репликации initial load, позволяющий массово загружать наборы данных BigQuery для исследования и прототипирования. Поддержка CDC будет добавлена в будущем — до тех пор мы рекомендуем использовать Google Cloud Storage ClickPipe для непрерывной синхронизации экспортируемых данных BigQuery с ClickHouse Cloud после завершения первоначальной загрузки.

ClickPipes для BigQuery могут развёртываться и управляться вручную через интерфейс ClickPipes, а также программно с использованием OpenAPI и Terraform.

Возможности

Начальная загрузка

BigQuery ClickPipe выполнит загрузку выбранных таблиц из набора данных BigQuery в целевые таблицы ClickHouse в рамках одной пакетной операции. После завершения задачи ингестии ClickPipe останавливается автоматически. Для процесса ингестии при первоначальной загрузке требуется предоставленный пользователем bucket Google Cloud Storage (GCS) для промежуточного хранения (staging). В будущем промежуточный bucket будет предоставляться и управляться ClickPipes.

Примечание

ClickPipes использует пакетные задания извлечения для выборки данных из BigQuery во временный bucket GCS. Эти операции не приводят к начислению платы за обработку в BigQuery.

CDC (фиксация изменений данных)

CDC не поддерживается на этапе Private Preview, но будет поддерживаться в будущем. А пока мы рекомендуем использовать Google Cloud Storage ClickPipe для непрерывной синхронизации экспортов данных BigQuery в ClickHouse Cloud после выполнения первоначальной загрузки.

Сопоставление типов данных

Типы данных BigQuery.

Тип данных BigQueryТип данных ClickHouseПодробности
BOOLBool
INT64Int64
FLOAT64Float64
NUMERICDecimal(P, S)Точность до 38, масштаб до 9. Точность и масштаб сохраняются.
BIGNUMERICDecimal(P, S)Точность до 76, масштаб до 38. Точность и масштаб сохраняются.
STRINGString
BYTESString
JSONString (JSON)
DATEDate
TIMEStringМикросекундная точность.
DATETIMEDateTimeМикросекундная точность.
TIMESTAMPDateTime64(6)Микросекундная точность.
GEOGRAPHYString
GEOMETRYString
UUIDString
ARRAY<T>Array(T)
ARRAY<DATE>Array(Date)
STRUCT (RECORD)String

Управление доступом

Аутентификация

Учетные данные сервисного аккаунта

ClickPipes аутентифицируется в вашем проекте Google Cloud с использованием ключа сервисного аккаунта. Рекомендуем создать отдельный сервисный аккаунт с минимально необходимым набором прав доступа, чтобы ClickPipes мог экспортировать данные из BigQuery, загружать их во временный (staging) бакет в GCS и затем загружать их в ClickHouse.

Создание ключа сервисного аккаунта с правами доступа BigQuery и Cloud Storage

Разрешения

BigQuery

Сервисная учётная запись должна иметь следующие роли BigQuery:

Чтобы точнее ограничить доступ, рекомендуется использовать IAM conditions для сужения перечня ресурсов, к которым имеет доступ роль. Например, вы можете ограничить роль dataViewer конкретным датасетом, который содержит таблицы для синхронизации:

resource.name.startsWith("projects/<PROJECT_ID>/datasets/<DATASET_NAME>")

Cloud Storage

У учетной записи службы должны быть следующие роли Cloud Storage:

Чтобы еще более точно ограничить доступ, рекомендуется использовать условия IAM для ограничения ресурсов, к которым имеет доступ роль. Например, вы можете ограничить действие ролей objectAdmin и bucketViewer только выделенным бакетом, созданным для синхронизаций ClickPipes.

resource.name.startsWith("projects/_/buckets/<BUCKET_NAME>")