跳转到主内容
跳转到主内容

BigQuery 与 ClickHouse Cloud 的集成

Private preview in 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,也可以通过 OpenAPITerraform 以编程方式进行管理。

功能特性

初始加载

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 数据类型

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 导出数据,将其加载到暂存用 GCS 存储桶中,并将其读取到 ClickHouse 中。

创建具备 BigQuery 和 Cloud Storage 权限的服务账号密钥

权限

BigQuery

服务账号必须具有以下 BigQuery 角色:

为了进一步限定访问范围,建议使用 IAM conditions 来限制该角色可以访问的资源。例如,可以将 dataViewer 角色限制为仅能访问包含需要同步的表的特定数据集:

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

Cloud Storage

该服务账号必须具备以下 Cloud Storage 角色:

为了进一步收窄访问范围,建议使用 IAM conditions 来限定角色可访问的资源。例如,可以将 objectAdminbucketViewer 角色限定为仅能访问为 ClickPipes 同步创建的专用 bucket。

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