Apache Kafka はオープンソースの分散型イベントストリーミングプラットフォームであり、高性能なデータパイプライン、ストリーミング分析、データインテグレーション、ミッションクリティカルなアプリケーション向けに、何千もの企業で利用されています。ClickHouse では、Kafka およびその他の Kafka API 互換ブローカー (例: Redpanda、Amazon MSK) からの読み取りと、それらへの書き込みを行うための複数の方法を利用できます。
利用可能なオプション
ユースケースに適したオプションは、ClickHouse のデプロイ形態、データフローの向き、運用要件など、複数の要因に応じて異なります。
| オプション | デプロイ形態 | 完全マネージド型 | Kafka から ClickHouse | ClickHouse から Kafka |
|---|---|---|---|---|
| Kafka 向け ClickPipes | Cloud, BYOC (近日提供予定) | ✅ | ✅ | |
| Kafka Connect Sink | Cloud, BYOC, [セルフホスト] | ✅ | ||
| Kafka テーブルエンジン | Cloud, BYOC, [セルフホスト] | ✅ | ✅ |
これらのオプションをさらに詳しく比較するには、オプションの選び方を参照してください。
Kafka 向け ClickPipes
ClickPipes は、多様なソースからのデータ取り込みを数回クリックするだけで簡単に行える、マネージドなインテグレーションプラットフォームです。完全マネージド型で、本番ワークロード向けに特化して設計されているため、ClickPipes はインフラストラクチャと運用のコストを大幅に削減し、外部のデータストリーミングツールや ETL ツールを不要にします。
主な機能
- 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 互換ブローカーからデータを読み取るための、スケーラブルで柔軟に設定できるオプションを提供します。
主な機能
- exactly-once セマンティクスをサポートするように設定可能
- 一般的なシリアライゼーション フォーマット (JSON、Avro、Protobuf) の大半をサポート
- ClickHouse Cloud に対して継続的にテストを実施
はじめに
ClickHouse Kafka Connect Sink の利用を開始するには、リファレンス ドキュメントを参照してください。
Kafka テーブルエンジン
Kafka テーブルエンジン を使用すると、Apache Kafka やその他の Kafka API 互換ブローカーからデータを読み取ったり、それらにデータを書き込んだりできます。このオプションはオープンソース版の ClickHouse に含まれており、すべてのデプロイメント形態で利用できます。
主な機能
- データの読み取りと書き込みに利用できます
- オープンソース版のClickHouseに同梱されています
- 一般的なシリアライゼーションフォーマット (JSON、Avro、Protobuf) のほとんどに対応しています
はじめに
Kafka テーブルエンジンを使い始めるには、リファレンスドキュメントを参照してください。
オプションの選択
| 製品 | 長所 | 短所 |
|---|---|---|
| Kafka 向け ClickPipes | • 高スループット・低レイテンシー向けのスケーラブルなアーキテクチャ • 組み込みの監視機能とスキーマ管理 • プライベートネットワーク接続 (PrivateLink 経由) • SSL/TLS 認証と IAM 認可をサポート • プログラムによる設定 (Terraform、API エンドポイント) に対応 |
• Kafka へのデータのプッシュはサポートしていない • At-least-once セマンティクス |
| Kafka Connect Sink | • exactly-once セマンティクス • データ変換、バッチ処理、エラー処理をきめ細かく制御できる • プライベートネットワーク内にデプロイできる • Debezium 経由で、ClickPipes がまだ対応していないデータベースからリアルタイムにレプリケーションできる |
• Kafka へのデータのプッシュはサポートしていない • セットアップと保守の運用負荷が高い • Kafka と Kafka Connect の専門知識が必要 |
| Kafka テーブルエンジン | • Kafka へのデータのプッシュをサポート • 運用面ではセットアップが容易 |
• At-least-once セマンティクス • コンシューマーの水平スケーリングに制約があり、ClickHouse サーバーとは独立してスケールできない • エラー処理やデバッグの選択肢が限られる • Kafka の専門知識が必要 |
その他のオプション
-
Confluent Cloud - Confluent Platform では、Confluent Cloud 上で ClickHouse Connector Sink をアップロードして実行するオプションのほか、HTTP または HTTPS 経由で Apache Kafka を API と統合する Confluent Platform 向け HTTP Sink コネクタ を使用することもできます。
-
Vector - Vector はベンダーに依存しないデータパイプラインです。Kafka から読み取り、イベントを ClickHouse に送信できるため、堅牢なインテグレーションの選択肢となります。
-
JDBC Connect Sink - Kafka Connect JDBC Sink コネクタを使用すると、Kafka トピックから任意のリレーショナルデータベースへ、JDBC ドライバーを使ってデータをエクスポートできます。
-
カスタムコード - イベントに対するカスタム処理が必要な場合は、Kafka および ClickHouse の クライアントライブラリ を使用したカスタムコードが適していることがあります。