Интеграция BigQuery с 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 | Тип данных ClickHouse | Подробности |
|---|---|---|
BOOL | Bool | |
INT64 | Int64 | |
FLOAT64 | Float64 | |
NUMERIC | Decimal(P, S) | Точность до 38, масштаб до 9. Точность и масштаб сохраняются. |
BIGNUMERIC | Decimal(P, S) | Точность до 76, масштаб до 38. Точность и масштаб сохраняются. |
STRING | String | |
BYTES | String | |
JSON | String (JSON) | |
DATE | Date | |
TIME | String | Микросекундная точность. |
DATETIME | DateTime | Микросекундная точность. |
TIMESTAMP | DateTime64(6) | Микросекундная точность. |
GEOGRAPHY | String | |
GEOMETRY | String | |
UUID | String | |
ARRAY<T> | Array(T) | |
ARRAY<DATE> | Array(Date) | |
STRUCT (RECORD) | String |
Управление доступом
Аутентификация
Учетные данные сервисного аккаунта
ClickPipes аутентифицируется в вашем проекте Google Cloud с использованием ключа сервисного аккаунта. Рекомендуем создать отдельный сервисный аккаунт с минимально необходимым набором прав доступа, чтобы ClickPipes мог экспортировать данные из BigQuery, загружать их во временный (staging) бакет в GCS и затем загружать их в ClickHouse.

Разрешения
BigQuery
Сервисная учётная запись должна иметь следующие роли BigQuery:
Чтобы точнее ограничить доступ, рекомендуется использовать IAM conditions для сужения перечня ресурсов, к которым имеет доступ роль. Например, вы можете ограничить роль dataViewer конкретным датасетом, который содержит таблицы для синхронизации:
Cloud Storage
У учетной записи службы должны быть следующие роли Cloud Storage:
Чтобы еще более точно ограничить доступ, рекомендуется использовать условия IAM для ограничения ресурсов, к которым имеет доступ роль. Например, вы можете ограничить действие ролей objectAdmin и bucketViewer только выделенным бакетом, созданным для синхронизаций ClickPipes.