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

将 Amazon MSK 与 ClickHouse 集成

先决条件

我们假设:

ClickHouse 的官方 Kafka 连接器与 Amazon MSK

收集连接详细信息

To connect to ClickHouse with HTTP(S) you need this information:

  • The HOST and PORT: typically, the port is 8443 when using TLS or 8123 when not using TLS.

  • The DATABASE NAME: out of the box, there is a database named default, use the name of the database that you want to connect to.

  • The USERNAME and PASSWORD: out of the box, the username is default. Use the username appropriate for your use case.

The details for your ClickHouse Cloud service are available in the ClickHouse Cloud console. Select the service that you will connect to and click Connect:

Choose HTTPS, and the details are available in an example curl command.

If you are using self-managed ClickHouse, the connection details are set by your ClickHouse administrator.


ClickHouseにHTTP(S)で接続するには、次の情報が必要です:

  • HOSTとPORT: 通常、ポートはTLSを使用する場合は8443、TLSを使用しない場合は8123です。

  • DATABASE NAME: デフォルトでは、defaultという名前のデータベースがあります。接続したいデータベースの名前を使用してください。

  • USERNAMEとPASSWORD: デフォルトでは、ユーザー名はdefaultです。ご利用のケースに適したユーザー名を使用してください。

ClickHouse Cloudサービスの詳細はClickHouse Cloudコンソールで確認できます。接続するサービスを選択し、Connectをクリックします:

HTTPSを選択すると、詳細が例のcurlコマンドで提供されます。

セルフマネージドのClickHouseを使用している場合、接続の詳細はClickHouseの管理者によって設定されます。

步骤

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

性能调优

提高性能的一种方法是通过在 worker 配置中添加以下内容来调整批处理大小和从 Kafka 获取的记录数量:

您使用的具体值将根据所需的记录数量和记录大小而有所不同。例如,默认值为:

您可以在官方的 KafkaAmazon MSK 文档中找到更多细节(包括实施和其他考虑因素)。

有关 MSK Connect 的网络注意事项

为了使 MSK Connect 能够连接到 ClickHouse,我们建议您的 MSK 集群位于一个具有连接互联网访问的私有子网中,并连接一个私有 NAT。以下是如何设置的说明。请注意,公共子网是支持的,但由于需要不断为您的 ENI 分配弹性 IP 地址,因此不建议使用,AWS 在这里提供了更多详情

  1. 创建一个私有子网: 在您的 VPC 中创建一个新子网,并将其指定为私有子网。此子网不应具有直接访问互联网的权限。
  2. 创建 NAT 网关: 在您 VPC 的公共子网中创建一个 NAT 网关。NAT 网关使私有子网中的实例能够连接到互联网或其他 AWS 服务,但防止互联网与这些实例建立连接。
  3. 更新路由表: 添加一条将互联网流量定向到 NAT 网关的路由。
  4. 确保安全组和网络 ACL 配置: 配置您的 安全组网络 ACL(访问控制列表),以允许与 ClickHouse 实例之间的相关流量进出。
    1. 对于 ClickHouse Cloud,配置您的安全组以允许在端口 9440 和 8443 上的入站流量。
    2. 对于自托管 ClickHouse,配置您的安全组以允许在配置文件中的端口上进行入站流量(默认是 8123)。
  5. 将安全组附加到 MSK: 确保这些新的路由到 NAT 网关的安全组已附加到您的 MSK 集群。