メインコンテンツまでスキップ
メインコンテンツまでスキップ

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インスタンスのホスト名、およびパスワードを提供します。

パフォーマンスチューニング

パフォーマンスを向上させる方法の一つは、バッチサイズとKafkaから取得されるレコードの数を調整することです。以下をworker構成に追加します:

使用する具体的な値は、希望するレコード数やレコードサイズによって異なります。例えば、デフォルトの値は以下の通りです:

詳細(実装やその他の考慮事項)は、公式の Kafka および Amazon MSK ドキュメントに記載されています。

MSK Connect用のネットワーキングに関する注意事項

MSK ConnectがClickHouseに接続するためには、MSKクラスターをプライベートサブネットに配置し、インターネットアクセスのためにプライベートNATを接続することを推奨します。設定手順は以下に示します。公共サブネットもサポートされていますが、ENIにElastic 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クラスターにアタッチされていることを確認します。