注意:视频中展示的策略较为宽松,仅适用于快速入门。请参阅下方的最小权限 IAM 指南。
前置条件
- 你已熟悉 ClickHouse Connector Sink;
- 你已熟悉 Amazon MSK 和 MSK Connectors。建议先阅读 Amazon MSK 的入门指南以及 MSK Connect 指南。
将 ClickHouse 官方 Kafka 连接器与 Amazon MSK 搭配使用
准备连接信息
你的 ClickHouse Cloud 服务的连接信息可在 ClickHouse Cloud 控制台中查看。
选择一个服务,然后点击 Connect:

curl 命令中。

步骤
- 确保你已熟悉 ClickHouse Connector Sink
- 创建一个 MSK 实例。
- 创建并分配 IAM 角色。
- 从 ClickHouse Connector Sink 的 Release 页面下载一个
jar文件。 - 在 Amazon MSK 控制台的 自定义插件页面中安装下载的
jar文件。 - 如果连接器与公网 ClickHouse 实例通信,请启用互联网访问。
- 在配置中提供 topic 名称、ClickHouse 实例主机名和密码。
推荐的 IAM 权限 (最小权限原则)
- 仅当您使用 AWS Glue Schema Registry 时,才使用 Glue 块。
- 仅当您从 Secrets Manager 获取凭证/信任库时,才使用 Secrets Manager 块。请将 ARN 的范围限定到所需资源。
- 仅当您从 S3 加载制品 (例如 truststore) 时,才使用 S3 块。请将范围限定到存储桶/前缀。
性能调优
关于 MSK Connect 网络的说明
- 创建私有子网: 在您的 VPC 中创建一个新子网,并将其指定为私有子网。该子网不应可直接访问互联网。
- 创建 NAT 网关: 在您的 VPC 的公有子网中创建一个 NAT 网关。NAT 网关使私有子网中的实例能够连接到互联网或其他 AWS 服务,但会阻止互联网主动与这些实例建立连接。
- 更新路由表: 添加一条路由,将发往互联网的流量定向到 NAT 网关
- 确保安全组和网络 ACL 配置正确: 配置您的安全组和网络 ACL (访问控制列表) ,以允许相关流量。
- 允许从 MSK Connect 工作线程 ENI 到 MSK 消息代理 TLS 端口 (通常为 9094) 的流量。
- 允许从 MSK Connect 工作线程 ENI 到 ClickHouse 端点的流量:9440 (原生 TLS) 或 8443 (HTTPS) 。
- 允许消息代理安全组 (SG) 接收来自 MSK Connect 工作线程 安全组的入站流量。
- 对于自托管 ClickHouse,开放您 server 中配置的端口 (HTTP 默认为 8123) 。
- 将安全组附加到 MSK: 确保这些安全组已附加到您的 MSK 集群和 MSK Connect 工作线程。
- 到 ClickHouse Cloud 的连通性:
- 公有端点 + IP 允许列表:需要私有子网具备通过 NAT 的出站访问能力。
- 在可用时使用私有连接 (例如 VPC peering/PrivateLink/VPN) 。确保已启用 VPC DNS 主机名/解析,并且 DNS 能够解析该专用端点。
- 验证连通性 (快速检查清单) :
- 从 connector 运行环境中,解析 MSK bootstrap DNS,并通过 TLS 连接到消息代理端口。
- 在 9440 端口 (或 HTTPS 使用 8443) 上与 ClickHouse 建立 TLS 连接。
- 如果使用 AWS 服务 (Glue/Secrets Manager) ,请允许到这些端点的出站访问。