Kafka を ClickHouse と統合する
Apache Kafka は、ハイパフォーマンスなデータパイプライン、ストリーミング分析、データ統合、およびミッションクリティカルなアプリケーションのために数千社で利用されている、オープンソースの分散イベントストリーミングプラットフォームです。ClickHouse は、Kafka およびその他の Kafka API 互換ブローカー(例: Redpanda、Amazon MSK)からの読み取りおよびそれらへの書き込みを行うための複数のオプションを提供します。
利用可能なオプション
ユースケースに最適なオプションを選択するには、ClickHouse のデプロイメントタイプ、データフローの方向性、運用要件など、複数の要因を考慮する必要があります。
| オプション | デプロイメントタイプ | フルマネージド | Kafka から ClickHouse | ClickHouse から Kafka |
|---|---|---|---|---|
| ClickPipes for Kafka | Cloud, BYOC (coming soon!) | ✅ | ✅ | |
| Kafka Connect Sink | Cloud, BYOC, Self-hosted | ✅ | ||
| Kafka table engine | Cloud, 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[近日対応予定]) をサポート
はじめに
ClickPipes for Kafka の利用を開始するには、リファレンスドキュメント を参照するか、ClickHouse Cloud UI の Data Sources タブに移動してください。
Kafka Connect Sink
Kafka Connect はオープンソースのフレームワークであり、Kafka と他のデータシステム間でのシンプルなデータ統合のための集中型データハブとして機能します。ClickHouse Kafka Connect Sink コネクタは、Apache Kafka およびその他の Kafka API 互換ブローカーからデータを読み取るための、スケーラブルで高度に設定可能なオプションを提供します。
高い 設定自由度 を重視する場合、またはすでに Kafka Connect を利用している場合には、このオプションが推奨されます。
主な機能
- exactly-once セマンティクスをサポートするように設定可能
- 一般的なシリアル化フォーマット (JSON、Avro、Protobuf) をサポート
- ClickHouse Cloud を対象に継続的にテストされています
はじめに
ClickHouse Kafka Connect Sink の利用を開始するには、リファレンスドキュメント を参照してください。
Kafka table engine
Kafka table engine は、Apache Kafka およびその他の Kafka API 互換ブローカーからデータを読み取ったり、書き込んだりするために使用できます。このオプションはオープンソース版 ClickHouse にバンドルされており、すべてのデプロイメントタイプで利用可能です。
ClickHouse をセルフホストしており、導入ハードルが低い オプションを必要としている場合、または Kafka にデータを 書き込む 必要がある場合には、このオプションが推奨されます。
主な機能
はじめに
Kafka テーブルエンジンの利用を開始するには、リファレンスドキュメント を参照してください。
オプションの選択
| 製品 | 長所 | 短所 |
|---|---|---|
| ClickPipes for Kafka | • 高スループットかつ低レイテンシーを実現するスケーラブルなアーキテクチャ • 組み込みのモニタリングとスキーマ管理 • PrivateLink 経由のプライベートネットワーク接続 • SSL/TLS 認証および IAM 認可をサポート • プログラムによる構成 (Terraform、API エンドポイント) をサポート | • Kafka へのデータプッシュは非対応 • at-least-once セマンティクス |
| Kafka Connect Sink | • exactly-once セマンティクス • データ変換、バッチ処理、エラー処理をきめ細かく制御可能 • プライベートネットワーク内にデプロイ可能 • ClickPipes でまだサポートされていないデータベースから、Debezium 経由でリアルタイムレプリケーションが可能 | • Kafka へのデータプッシュは非対応 • セットアップおよび運用保守が複雑 • Kafka および Kafka Connect に関する専門知識が必要 |
| Kafka table engine | • Kafka へのデータプッシュ に対応 • セットアップが運用面でシンプル | • at-least-once セマンティクス • コンシューマーの水平方向スケーリングが制限される。ClickHouse サーバーとは独立してスケールできない • エラー処理やデバッグの選択肢が限られる • Kafka に関する専門知識が必要 |
その他のオプション
-
Confluent Cloud - Confluent Platform では、ClickHouse Connector Sink を Confluent Cloud 上でアップロードおよび実行したり、Apache Kafka を HTTP または HTTPS 経由で API と統合する HTTP Sink Connector for Confluent Platform を利用したりできます。
-
Vector - Vector はベンダーに依存しないデータパイプラインです。Kafka からの読み取りと ClickHouse へのイベント送信が可能で、堅牢な統合オプションとなります。
-
JDBC Connect Sink - Kafka Connect JDBC Sink コネクタを使用すると、Kafka トピックから JDBC ドライバーを備えた任意のリレーショナルデータベースへデータをエクスポートできます。
-
カスタムコード - Kafka および ClickHouse の クライアントライブラリ を用いたカスタムコードは、イベントのカスタム処理が必要なケースに適している場合があります。