将数据从 MySQL 摄取到 ClickHouse(使用 CDC)
通过 ClickPipes 将数据从 MySQL 摄取到 ClickHouse Cloud 目前处于公开测试阶段。
MySQL ClickPipe 提供了一种完全托管且高可靠的方式,将 MySQL 和 MariaDB 数据库中的数据摄取到 ClickHouse Cloud 中。它同时支持用于一次性摄取的 批量加载(bulk load) 和用于持续摄取的 Change Data Capture(CDC,变更数据捕获)。
可以使用 ClickPipes UI 手动部署和管理 MySQL ClickPipes。未来,还可以使用 OpenAPI 和 Terraform 以编程方式部署和管理 MySQL ClickPipes。
前置条件
在开始之前,首先需要确保你的 MySQL 数据库已正确配置为支持 binlog 复制。具体配置步骤取决于你是如何部署 MySQL 的,请按照下面相应的指南进行操作:
支持的数据源
| 名称 | Logo | 详情 |
|---|---|---|
| Amazon RDS MySQL 一次性导入,CDC | 请参阅 Amazon RDS MySQL 配置指南。 | |
| Amazon Aurora MySQL 一次性导入,CDC | 请参阅 Amazon Aurora MySQL 配置指南。 | |
| Cloud SQL for MySQL 一次性导入,CDC | 请参阅 Cloud SQL for MySQL 配置指南。 | |
| Azure Flexible Server for MySQL 一次性导入 | 请参阅 Azure Flexible Server for MySQL 配置指南。 | |
| 自托管 MySQL 一次性导入,CDC | 请参阅 通用 MySQL 配置指南。 | |
| Amazon RDS MariaDB 一次性导入,CDC | 请参阅 Amazon RDS MariaDB 配置指南。 | |
| 自托管 MariaDB 一次性导入,CDC | 请参阅 通用 MariaDB 配置指南。 |
在完成源 MySQL 数据库的配置后,可以继续创建 ClickPipe。
创建你的 ClickPipe
请确保你已登录到你的 ClickHouse Cloud 账户。如果你还没有账户,可以在这里注册。
- 在 ClickHouse Cloud 控制台中,导航到你的 ClickHouse Cloud Service。

- 在左侧菜单中选择
Data Sources按钮,然后点击 "Set up a ClickPipe"

- 选择
MySQL CDC磁贴

添加你的源 MySQL 数据库连接
-
填写在前置条件步骤中配置好的源 MySQL 数据库的连接信息。
参考资料在开始添加连接信息之前,请确保你已经在防火墙规则中将 ClickPipes 的 IP 地址加入允许列表。你可以在以下页面找到一份ClickPipes IP 地址列表。 更多信息请参考本页顶部链接的源 MySQL 设置指南。

(可选)设置 SSH 隧道
如果你的源 MySQL 数据库无法通过公网访问,你可以配置 SSH 隧道的相关参数。
-
启用 "Use SSH Tunnelling" 开关。
-
填写 SSH 连接信息。

-
如需使用基于密钥的认证,点击 "Revoke and generate key pair" 以生成新的密钥对,并将生成的公钥复制到 SSH 服务器的
~/.ssh/authorized_keys中。 -
点击 "Verify Connection" 以验证连接。
请确保在 SSH 堡垒机的防火墙规则中将 ClickPipes IP addresses 加入允许列表,以便 ClickPipes 能够建立 SSH 隧道。
在填写完连接信息后,点击 Next。
配置高级设置
如有需要,你可以配置高级设置。下面是每个设置的简要说明:
- Sync interval:ClickPipes 轮询源数据库变更的时间间隔。这会对目标 ClickHouse 服务产生影响;对于对成本敏感的用户,建议将其保持在较大的数值(大于
3600)。 - Parallel threads for initial load:用于抓取初始快照的并行工作线程数量。当你有大量表并希望控制用于抓取初始快照的并行工作线程数量时,这个设置会很有用。该设置是针对每张表的。
- Pull batch size:单个批次中要抓取的行数。这是一个尽力而为型配置,在所有情况下可能不会被严格遵守。
- Snapshot number of rows per partition:在初始快照期间,每个分区中将要抓取的行数。当你的表中有大量行,并希望控制每个分区抓取的行数时,这个设置会很有用。
- Snapshot number of tables in parallel:在初始快照期间,将并行抓取的表的数量。当你有大量表,并希望控制并行抓取的表数量时,这个设置会很有用。
配置表
-
在这里你可以选择 ClickPipe 的目标数据库。你可以选择一个已存在的数据库,或者创建一个新数据库。

-
你可以选择要从源 MySQL 数据库复制的表。在选择表时,你还可以选择在目标 ClickHouse 数据库中重命名这些表,以及排除特定列。
检查权限并启动 ClickPipe
-
在权限下拉框中选择 "Full access" 角色,然后点击 "Complete Setup"。

最后,如需了解更多常见问题及其解决方法,请参阅 "ClickPipes for MySQL FAQ" 页面。
下一步操作
完成使用 ClickPipe 将数据从 MySQL 复制到 ClickHouse Cloud 的设置后,即可专注于如何查询和建模数据,以实现最佳性能。有关 MySQL CDC(变更数据捕获)和故障排除的常见问题,请参阅 MySQL 常见问题页面。