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

KafkaとClickHouseの統合

Apache Kafkaは、高性能データパイプライン、ストリーミング分析、データ統合、ミッションクリティカルなアプリケーションのために、数千の企業によって使用されるオープンソースの分散イベントストリーミングプラットフォームです。ClickHouseは、Kafkaおよびその他のKafka API互換ブローカー(例:Redpanda、Amazon MSK)に読み込みおよび書き込みを行うための複数のオプションを提供しています。

利用可能なオプション

使用ケースに最適なオプションを選択するには、ClickHouseのデプロイメントタイプ、データフローの方向、および運用要件などの複数の要因を考慮する必要があります。

オプションデプロイメントタイプ完全管理KafkaからClickHouseへClickHouseからKafkaへ
ClickPipes for KafkaCloud, BYOC (近日登場!)
Kafka Connect SinkCloud, BYOC, Self-hosted
Kafka table engineCloud, BYOC, Self-hosted

これらのオプションの詳細な比較については、オプションの選択を参照してください。

ClickPipes for Kafka

ClickPipesは、多様なソースからデータを取り込むためのマネージドインテグレーションプラットフォームであり、数回ボタンをクリックするだけで実現できます。完全管理で生産ワークロード向けに特化されているため、ClickPipesはインフラストラクチャと運用コストを大幅に削減し、外部のデータストリーミングおよびETLツールの必要性を排除します。

ヒント

ClickHouse Cloudのユーザーには、これが推奨されるオプションです。ClickPipesは完全管理されており、クラウド環境で最高のパフォーマンスを提供するために設計されています。

主な機能

  • ClickHouse Cloud向けに最適化され、驚異的なパフォーマンスを実現
  • 高スループットワークロードに対する水平および垂直スケーラビリティ
  • 設定可能なレプリカと自動再試行による内蔵フォールトトレランス
  • ClickHouse Cloud UI、Open API、またはTerraformを使用したデプロイと管理
  • クラウドネイティブな認証(IAM)およびプライベート接続(PrivateLink)をサポートするエンタープライズグレードのセキュリティ
  • Confluent Cloud、Amazon MSK、Redpanda Cloud、Azure Event Hubsなど、幅広いデータソースをサポート
  • 一般的なシリアル化形式(JSON、Avro、Protobufが近日登場!)をサポート

始め方

Kafka用のClickPipesを使用するには、リファレンスドキュメントを参照するか、ClickHouse Cloud UIのData Sourcesタブに移動してください。

Kafka Connect Sink

Kafka Connectは、Kafkaと他のデータシステム間の簡単なデータ統合のための集中型データハブとして機能するオープンソースのフレームワークです。ClickHouse Kafka Connect Sinkコネクタは、Apache Kafkaおよびその他のKafka API互換ブローカーからデータを読み込むためのスケーラブルで高度に設定可能なオプションを提供します。

ヒント

高い設定可能性を好む場合や、すでにKafka Connectユーザーである場合には、これが推奨されるオプションです。

主な機能

  • 一度だけのセマンティクスをサポートするように設定可能
  • 一般的なシリアル化形式(JSON、Avro、Protobuf)をサポート
  • ClickHouse Cloudに対して継続的にテスト済み

始め方

ClickHouse Kafka Connect Sinkを使用するには、リファレンスドキュメントを参照してください。

Kafka table engine

Kafka table engineを使用すると、Apache Kafkaおよびその他のKafka API互換ブローカーからデータを読み書きすることができます。このオプションはオープンソースのClickHouseにバンドルされており、すべてのデプロイメントタイプで利用可能です。

ヒント

ClickHouseをセルフホスティングしていて、参入障壁が低いオプションが必要な場合、またはKafkaにデータを書き込む必要がある場合には、これが推奨されるオプションです。

主な機能

  • 読み込みおよび書き込みに使用可能
  • オープンソースのClickHouseにバンドル
  • 一般的なシリアル化形式(JSON、Avro、Protobuf)をサポート

始め方

Kafka table engineを使用するには、リファレンスドキュメントを参照してください。

オプションの選択

製品強み弱み
ClickPipes for Kafka• 高スループットと低レイテンシのためのスケーラブルアーキテクチャ
• 内蔵のモニタリングとスキーマ管理
• プライベートネットワーク接続(PrivateLink経由)
• SSL/TLS認証とIAM認証をサポート
• プログラムによる構成(Terraform、APIエンドポイント)をサポート
• Kafkaへのデータのプッシュをサポートしていません
• 最低一回のセマンティクス
Kafka Connect Sink• 一度だけのセマンティクス
• データ変換、バッチ処理、エラーハンドリングに対する詳細な制御が可能
• プライベートネットワークでのデプロイが可能
• Debezium経由でClickPipesでまだサポートされていないデータベースからのリアルタイムレプリケーションが可能
• Kafkaへのデータのプッシュをサポートしていません
• 設定と保守が運用上複雑
• KafkaとKafka Connectの専門知識が必要
Kafka table engineKafkaへのデータのプッシュをサポート
• 設定が運用的に簡単
• 最低一回のセマンティクス
• 消費者に対する水平スケーリングが限定的。ClickHouseサーバーとは独立してスケーリングできません
• エラーハンドリングとデバッグオプションが制限されている
• Kafkaの専門知識が必要

その他のオプション

  • Confluent Cloud - Confluent Platformは、ClickHouse Connector SinkをConfluent Cloudにアップロードして実行するオプションや、Apache KafkaとAPIをHTTPまたはHTTPS経由で統合するHTTP Sink Connector for Confluent Platformを提供します。

  • Vector - Vectorはベンダーに依存しないデータパイプラインです。Kafkaから読み取り、イベントをClickHouseに送信する能力を持ち、強力な統合オプションを表します。

  • JDBC Connect Sink - Kafka Connect JDBC Sinkコネクタを使用すると、KafkaトピックからJDBCドライバを持つ任意のリレーショナルデータベースにデータをエクスポートできます。

  • カスタムコード - KafkaとClickHouseのクライアントライブラリを使用したカスタムコードは、イベントのカスタム処理が必要な場合に適切かもしれません。