主な機能
- リアルタイムストリーミング CDC: Streamkap はデータベースのログから変更を直接取り込み、ClickHouse 内のデータがソースのリアルタイムなレプリカであることを保証します。 シンプルなストリーム処理: ClickHouse に取り込む前に、データをリアルタイムで変換、エンリッチ、ルーティング、フォーマットし、embeddings を作成できます。複雑さを伴わない Flink を基盤としています
- 完全マネージド型でスケーラブル: 本番環境に対応した、メンテナンス不要のパイプラインを提供し、Kafka、Flink、Debezium、またはスキーマレジストリのインフラストラクチャを自前で管理する必要をなくします。このプラットフォームは高スループット向けに設計されており、数十億件のイベントを処理できるようリニアにスケールします。
- 自動スキーマ進化: Streamkap はソースデータベースのスキーマ変更を自動的に検出し、それらを ClickHouse に反映します。手動で介入しなくても、新しいカラムの追加やカラム型の変更に対応できます。
- ClickHouse 向けに最適化: このインテグレーションは、ClickHouse の機能を効率的に活用できるように構築されています。既定では、ReplacingMergeTree エンジンを使用して、ソースシステムからの更新や削除をシームレスに処理します。
- 耐障害性の高い配信: このプラットフォームは at-least-once 配信保証を提供し、ソースと ClickHouse 間のデータ整合性を確保します。upsert 操作では、主キーに基づいて重複排除を行います。
はじめに
前提条件
- Streamkap アカウント。
- ClickHouse クラスターの接続情報: Hostname、Port、Username、Password。
- CDC を有効にしたソースデータベース (例: PostgreSQL、SQL Server) 。詳しい設定手順については、Streamkap のドキュメントを参照してください。
ステップ 1: Streamkap でログソースを設定する
- Streamkap アカウントにログインします。
- サイドバーで Connectors に移動し、Sources タブを選択します。
- + Add をクリックし、ログソースデータベースの種類 (例: SQL Server RDS) を選択します。
- エンドポイント、ポート、データベース名、ユーザーの認証情報などの接続情報を入力します。
- コネクタを保存します。
ステップ 2: ClickHouse の宛先を設定する
- Connectors セクションで、Destinations タブを選択します。
- + Add をクリックし、一覧から ClickHouse を選択します。
- ClickHouse サービスの接続情報を入力します。
- Hostname: ClickHouse インスタンスのホスト名 (例:
abc123.us-west-2.aws.clickhouse.cloud) - Port: 通常は
8443のセキュアな HTTPS ポート - Username and Password: ClickHouse ユーザーの認証情報
- Database: ClickHouse の対象データベース名
- Hostname: ClickHouse インスタンスのホスト名 (例:
- 宛先を保存します。
ステップ 3: パイプラインを作成して実行する
- サイドバーの Pipelines に移動し、+ Create をクリックします。
- 先ほど設定したログソースと宛先を選択します。
- ストリーミングするスキーマとテーブルを選択します。
- パイプライン名を入力し、Save をクリックします。
ステップ 4: ClickHouse でデータを確認する
ClickHouseでの仕組み
テーブルエンジンとデータの扱い
- ソーステーブルの主キーは、ReplacingMergeTree のテーブル定義で ORDER BY キーとして使用されます。
- ソースでの 更新 は、ClickHouse では新しい行として書き込まれます。バックグラウンドのマージ処理で、ReplacingMergeTree はこれらの行をまとめ、ソートキーに基づいて最新バージョンだけを残します。
-
削除 は、ReplacingMergeTree の
is_deletedパラメータに渡されるメタデータフラグによって処理されます。ソースで削除された行はすぐには削除されず、削除済みとしてマークされます。- 必要に応じて、削除済みレコードを分析目的で ClickHouse に保持できます