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。