从 MySQL 摄取数据到 ClickHouse(使用 CDC)
通过 ClickPipes 将 MySQL 数据摄取到 ClickHouse Cloud 目前处于公开测试阶段。
MySQL ClickPipe 提供了一种完全托管且具备高可用性和容错能力的方式,将 MySQL 和 MariaDB 数据库中的数据摄取到 ClickHouse Cloud。它同时支持用于一次性摄取的批量加载以及用于持续摄取的 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 常见问题页面。