跳到主要内容
跳到主要内容

将数据从 MySQL 摄取到 ClickHouse(使用 CDC)

Beta feature. Learn more.
参考资料

通过 ClickPipes 将数据从 MySQL 摄取到 ClickHouse Cloud 目前处于公开测试阶段。

MySQL ClickPipe 提供了一种完全托管且高可靠的方式,将 MySQL 和 MariaDB 数据库中的数据摄取到 ClickHouse Cloud 中。它同时支持用于一次性摄取的 批量加载(bulk load) 和用于持续摄取的 Change Data Capture(CDC,变更数据捕获)

可以使用 ClickPipes UI 手动部署和管理 MySQL ClickPipes。未来,还可以使用 OpenAPITerraform 以编程方式部署和管理 MySQL ClickPipes。

前置条件

在开始之前,首先需要确保你的 MySQL 数据库已正确配置为支持 binlog 复制。具体配置步骤取决于你是如何部署 MySQL 的,请按照下面相应的指南进行操作:

支持的数据源

名称Logo详情
Amazon RDS MySQL
一次性导入,CDC
Icon-Architecture/32/Arch_Amazon-RDS_32请参阅 Amazon RDS MySQL 配置指南。
Amazon Aurora MySQL
一次性导入,CDC
Icon-Architecture/32/Arch_Amazon-Aurora_32请参阅 Amazon Aurora MySQL 配置指南。
Cloud SQL for MySQL
一次性导入,CDC
请参阅 Cloud SQL for MySQL 配置指南。
Azure Flexible Server for MySQL
一次性导入
Icon-databases-122请参阅 Azure Flexible Server for MySQL 配置指南。
自托管 MySQL
一次性导入,CDC
请参阅 通用 MySQL 配置指南。
Amazon RDS MariaDB
一次性导入,CDC
Icon-Architecture/32/Arch_Amazon-RDS_32请参阅 Amazon RDS MariaDB 配置指南。
自托管 MariaDB
一次性导入,CDC
MDB-VLogo_RGB请参阅 通用 MariaDB 配置指南。

在完成源 MySQL 数据库的配置后,可以继续创建 ClickPipe。

创建你的 ClickPipe

请确保你已登录到你的 ClickHouse Cloud 账户。如果你还没有账户,可以在这里注册。

  1. 在 ClickHouse Cloud 控制台中,导航到你的 ClickHouse Cloud Service。
ClickPipes 服务
  1. 在左侧菜单中选择 Data Sources 按钮,然后点击 "Set up a ClickPipe"
选择导入
  1. 选择 MySQL CDC 磁贴
选择 MySQL

添加你的源 MySQL 数据库连接

  1. 填写在前置条件步骤中配置好的源 MySQL 数据库的连接信息。

    参考资料

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

    填写连接信息

(可选)设置 SSH 隧道

如果你的源 MySQL 数据库无法通过公网访问,你可以配置 SSH 隧道的相关参数。

  1. 启用 "Use SSH Tunnelling" 开关。

  2. 填写 SSH 连接信息。

    SSH 隧道
  3. 如需使用基于密钥的认证,点击 "Revoke and generate key pair" 以生成新的密钥对,并将生成的公钥复制到 SSH 服务器的 ~/.ssh/authorized_keys 中。

  4. 点击 "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:在初始快照期间,将并行抓取的表的数量。当你有大量表,并希望控制并行抓取的表数量时,这个设置会很有用。

配置表

  1. 在这里你可以选择 ClickPipe 的目标数据库。你可以选择一个已存在的数据库,或者创建一个新数据库。

    选择目标数据库
  2. 你可以选择要从源 MySQL 数据库复制的表。在选择表时,你还可以选择在目标 ClickHouse 数据库中重命名这些表,以及排除特定列。

检查权限并启动 ClickPipe

  1. 在权限下拉框中选择 "Full access" 角色,然后点击 "Complete Setup"。

    检查权限

最后,如需了解更多常见问题及其解决方法,请参阅 "ClickPipes for MySQL FAQ" 页面。

下一步操作

完成使用 ClickPipe 将数据从 MySQL 复制到 ClickHouse Cloud 的设置后,即可专注于如何查询和建模数据,以实现最佳性能。有关 MySQL CDC(变更数据捕获)和故障排除的常见问题,请参阅 MySQL 常见问题页面