Amazon MSKとClickHouseの統合
前提条件
次のことを前提とします:
- あなたは ClickHouse Connector Sink、Amazon MSK、MSK Connectors に精通しています。Amazon MSK の はじめにガイド と MSK Connect ガイド をお勧めします。
- MSK ブローカーは公開アクセス可能です。開発者ガイドの 公開アクセス セクションを参照してください。
Amazon MSKによるClickHouseの公式Kafkaコネクタ
接続詳細を集める
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、使用しない場合は8123です。
-
DATABASE NAME: デフォルトでは、
default
という名前のデータベースがあります。接続したいデータベースの名前を使用します。 -
USERNAMEとPASSWORD: デフォルトでは、ユーザー名は
default
です。使用ケースに適したユーザー名を使用します。
ClickHouse Cloudサービスの詳細は、ClickHouse Cloudコンソールで確認できます。 接続するサービスを選択し、Connectをクリックしてください:

HTTPSを選択すると、詳細はexample curl
コマンドで確認できます。

セルフマネージドのClickHouseを使用している場合は、接続の詳細がClickHouse管理者によって設定されます。
手順
- ClickHouse Connector Sink に精通していることを確認してください。
- MSKインスタンスを作成します。
- IAMロールを作成して割り当てる。
- ClickHouse Connect Sink の リリースページ から
jar
ファイルをダウンロードします。 - Amazon MSKコンソールの カスタムプラグインページ にダウンロードした
jar
ファイルをインストールします。 - コネクタが公開のClickHouseインスタンスと通信する場合、インターネットアクセスを有効にする。
- 設定にトピック名、ClickHouseインスタンスのホスト名、およびパスワードを提供します。
パフォーマンス調整
パフォーマンスを向上させる一つの方法は、以下の設定をワーカー構成に追加し、バッチサイズとKafkaから取得するレコードの数を調整することです:
使用する具体的な値は、希望するレコード数とレコードサイズによって異なります。たとえば、デフォルト値は次の通りです:
公式の Kafka と Amazon MSK ドキュメントで、詳細(実装やその他の考慮事項)を見つけることができます。
MSK Connectのネットワークに関する注意事項
MSK ConnectがClickHouseに接続できるようにするため、MSKクラスターをインターネットアクセス用に接続されたプライベートNATがあるプライベートサブネット内に配置することをお勧めします。これを設定する方法は以下に示します。公共サブネットもサポートされていますが、ENIにElastic IPアドレスを常に割り当てる必要があるため推奨されません。詳細はAWSがこちらで提供しています
- プライベートサブネットを作成: VPC内に新しいサブネットを作成し、プライベートサブネットとして指定します。このサブネットはインターネットへの直接アクセスを持たないべきです。
- NATゲートウェイを作成: VPCの公共サブネットにNATゲートウェイを作成します。NATゲートウェイは、プライベートサブネット内のインスタンスがインターネットや他のAWSサービスに接続できるようにしますが、インターネットがそのインスタンスへの接続を開始するのを防ぎます。
- ルートテーブルを更新: インターネット向けのトラフィックをNATゲートウェイに向けるルートを追加します。
- セキュリティグループとネットワークACLの設定を確認: セキュリティグループ と ネットワークACL(アクセス制御リスト) を設定して、ClickHouseインスタンスとの間で関連するトラフィックを許可します。
- ClickHouse Cloudの場合、セキュリティグループを設定してポート9440および8443の着信トラフィックを許可します。
- セルフホストのClickHouseの場合、設定ファイルに記載のポート(デフォルトは8123)で着信トラフィックを許可するようにセキュリティグループを設定します。
- セキュリティグループをMSKにアタッチ: NATゲートウェイにルーティングされた新しいセキュリティグループがMSKクラスターにアタッチされていることを確認します。