跳转到主要内容
BigQuery 到 ClickHouse 的模板是一个批次管道,用于将 BigQuery 表中的数据摄取到 ClickHouse 表中。 该模板可以读取整个表,也可以使用提供的 SQL 查询过滤特定记录。

管道要求

  • 源 BigQuery 表必须存在。
  • 目标 ClickHouse 表必须存在。
  • 必须能够从 Dataflow 工作节点访问 ClickHouse 主机。

Template参数



所有 ClickHouseIO 参数的默认值均可在 ClickHouseIO Apache Beam 连接器中找到。

源表和目标表的 schema

为了高效地将 BigQuery 数据集加载到 ClickHouse 中,管道会执行列推断过程,分为以下几个阶段:
  1. 模板基于目标 ClickHouse 表构建 schema 对象。
  2. 模板遍历 BigQuery 数据集,并尝试根据列名进行匹配。

不过,你的 BigQuery 数据集 (无论是表还是查询) 必须与 ClickHouse 目标表具有完全相同的列名。

数据类型映射

BigQuery 类型会根据你的 ClickHouse 表定义进行转换。因此,上表列出了你的目标 ClickHouse 表中建议采用的映射 (针对给定的 BigQuery 表/查询) :

运行Template

BigQuery 到 ClickHouse 的Template可通过 Google Cloud CLI 运行。
请务必阅读本文档,尤其是上面的各个章节,以充分了解此Template的配置要求和前置条件。
登录 Google Cloud Console 并搜索 DataFlow。
  1. 点击 CREATE JOB FROM TEMPLATE 按钮
  2. 打开Template表单后,输入作业名称并选择所需区域。
  3. DataFlow Template 输入框中,输入 ClickHouseBigQuery,然后选择 BigQuery to ClickHouse Template
  4. 选中后,表单会展开,以便你填写更多详细信息:
    • ClickHouse server JDBC URL,格式如下:jdbc:clickhouse://host:port/schema
    • ClickHouse 用户名。
    • ClickHouse 目标表名称。

ClickHouse 密码选项被标记为可选,适用于未配置密码的场景。 如需添加,请向下滚动到 Password for ClickHouse Endpoint 选项。
  1. 根据Template参数部分中的详细说明,自定义并添加任何与 BigQuery/ClickHouseIO 相关的配置

监控作业

前往 Google Cloud Console 中的 Dataflow Jobs 选项卡,查看该作业的状态。你可以在这里找到作业的详细信息,包括进度以及任何错误:

故障排查

超出内存限制 (总量) 错误 (代码 241)

当 ClickHouse 在处理大批次数据时内存耗尽,就会出现此错误。要解决此问题:
  • 增加实例资源:将 ClickHouse server 升级到内存更大的更高规格实例,以承载数据处理负载。
  • 减小批次大小:调整 Dataflow 作业配置中的批次大小,向 ClickHouse 发送更小的数据块,从而降低每个批次的内存消耗。这些更改有助于在数据摄取期间平衡资源使用。

Template 源代码

该 Template 的源代码可在以下位置查看:
最后修改于 2026年6月12日