BigQuery 与 ClickHouse Cloud 的集成
你可以在这里注册加入 Private Preview 候补名单。
BigQuery ClickPipe 为从 BigQuery 向 ClickHouse Cloud 摄取数据提供了一种全托管且高可靠性的方式。在 Private Preview 阶段,它支持 initial load(初始加载) 复制方式,帮助你批量加载 BigQuery 数据集用于探索和原型验证。未来将支持 CDC —— 在此之前,我们建议在完成初始加载(initial load)之后,使用 Google Cloud Storage ClickPipe 将 BigQuery 导出的数据持续同步到 ClickHouse Cloud。
可以通过 ClickPipes UI 手动部署和管理 BigQuery ClickPipes,也可以通过 OpenAPI 和 Terraform 以编程方式进行管理。
功能特性
初始加载
BigQuery ClickPipe 会在单次批处理操作中,将 BigQuery dataset 中选定的表加载到 ClickHouse 目标表中。一旦摄取任务完成,ClickPipe 会自动停止。初始加载摄取流程需要用户提供一个用于中转的 Google Cloud Storage (GCS) 存储桶 (bucket) 。未来,该中间存储桶将由 ClickPipes 提供并托管。
ClickPipes 依赖批量导出作业,将数据从 BigQuery 导出到中转用的 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 导出数据,将其加载到暂存用 GCS 存储桶中,并将其读取到 ClickHouse 中。

权限
BigQuery
服务账号必须具有以下 BigQuery 角色:
为了进一步限定访问范围,建议使用 IAM conditions 来限制该角色可以访问的资源。例如,可以将 dataViewer 角色限制为仅能访问包含需要同步的表的特定数据集:
Cloud Storage
该服务账号必须具备以下 Cloud Storage 角色:
为了进一步收窄访问范围,建议使用 IAM conditions 来限定角色可访问的资源。例如,可以将 objectAdmin 和 bucketViewer 角色限定为仅能访问为 ClickPipes 同步创建的专用 bucket。