Skip to main content
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 输入框中,输入 ClickHouse 或 BigQuery,然后选择 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月10日