Skip to main content
注意:视频中展示的策略较为宽松,仅适用于快速入门。请参阅下方的最小权限 IAM 指南。

前置条件

我们假设:

将 ClickHouse 官方 Kafka 连接器与 Amazon MSK 搭配使用

准备连接信息

要通过 HTTP(S) 连接到 ClickHouse,你需要以下信息: 你的 ClickHouse Cloud 服务的连接信息可在 ClickHouse Cloud 控制台中查看。 选择一个服务,然后点击 Connect: 选择 HTTPS。连接信息会显示在示例 curl 命令中。 如果你使用的是自管理 ClickHouse,则连接信息由你的 ClickHouse 管理员配置。

步骤

  1. 确保你已熟悉 ClickHouse Connector Sink
  2. 创建一个 MSK 实例。
  3. 创建并分配 IAM 角色。
  4. 从 ClickHouse Connector Sink 的 Release 页面下载一个 jar 文件。
  5. 在 Amazon MSK 控制台的 自定义插件页面中安装下载的 jar 文件。
  6. 如果连接器与公网 ClickHouse 实例通信,请启用互联网访问。
  7. 在配置中提供 topic 名称、ClickHouse 实例主机名和密码。

推荐的 IAM 权限 (最小权限原则)

请使用满足你的部署需求所需的最小权限集。先采用下面的基础权限,仅在实际使用可选服务时再额外添加相应权限。
  • 仅当您使用 AWS Glue Schema Registry 时,才使用 Glue 块。
  • 仅当您从 Secrets Manager 获取凭证/信任库时,才使用 Secrets Manager 块。请将 ARN 的范围限定到所需资源。
  • 仅当您从 S3 加载制品 (例如 truststore) 时,才使用 S3 块。请将范围限定到存储桶/前缀。
另请参阅:Kafka 最佳实践 – IAM。

性能调优

提升性能的一种方法,是调整批次大小以及从 Kafka 拉取的记录数。为此,可在 工作线程 配置中添加以下内容:
具体使用哪些值会因所需的记录数量和记录大小而异。例如,默认值如下:
你可以在官方的 Kafka 和 Amazon MSK 文档中了解更多细节 (包括实现细节和其他注意事项) 。

关于 MSK Connect 网络的说明

为了让 MSK Connect 能够连接到 ClickHouse,我们建议将您的 MSK 集群部署在私有子网中,并通过 Private NAT 提供互联网访问。下面提供了相关设置说明。请注意,虽然也支持公有子网,但由于需要持续为您的 ENI 分配 Elastic IP 地址,因此不建议这样做。AWS 在此提供了更多详细信息
  1. 创建私有子网: 在您的 VPC 中创建一个新子网,并将其指定为私有子网。该子网不应可直接访问互联网。
  2. 创建 NAT 网关: 在您的 VPC 的公有子网中创建一个 NAT 网关。NAT 网关使私有子网中的实例能够连接到互联网或其他 AWS 服务,但会阻止互联网主动与这些实例建立连接。
  3. 更新路由表: 添加一条路由,将发往互联网的流量定向到 NAT 网关
  4. 确保安全组和网络 ACL 配置正确: 配置您的安全组和网络 ACL (访问控制列表) ,以允许相关流量。
    1. 允许从 MSK Connect 工作线程 ENI 到 MSK 消息代理 TLS 端口 (通常为 9094) 的流量。
    2. 允许从 MSK Connect 工作线程 ENI 到 ClickHouse 端点的流量:9440 (原生 TLS) 或 8443 (HTTPS) 。
    3. 允许消息代理安全组 (SG) 接收来自 MSK Connect 工作线程 安全组的入站流量。
    4. 对于自托管 ClickHouse,开放您 server 中配置的端口 (HTTP 默认为 8123) 。
  5. 将安全组附加到 MSK: 确保这些安全组已附加到您的 MSK 集群和 MSK Connect 工作线程。
  6. 到 ClickHouse Cloud 的连通性:
    1. 公有端点 + IP 允许列表:需要私有子网具备通过 NAT 的出站访问能力。
    2. 在可用时使用私有连接 (例如 VPC peering/PrivateLink/VPN) 。确保已启用 VPC DNS 主机名/解析,并且 DNS 能够解析该专用端点。
  7. 验证连通性 (快速检查清单) :
    1. 从 connector 运行环境中,解析 MSK bootstrap DNS,并通过 TLS 连接到消息代理端口。
    2. 在 9440 端口 (或 HTTPS 使用 8443) 上与 ClickHouse 建立 TLS 连接。
    3. 如果使用 AWS 服务 (Glue/Secrets Manager) ,请允许到这些端点的出站访问。
最后修改于 2026年6月10日