Estuary は、ClickHouse のネイティブプロトコルとネイティブフォーマットを使用する、ClickHouse 向けの直接マテリアライゼーションコネクタを提供します。
これにより、Estuary では次のことが可能です。
- セルフホスト環境と ClickHouse Cloud インスタンスの両方にデータをマテリアライズする
- テーブル作成やスキーマ進化などのタスクを自動的に処理する
- 論理削除と物理削除をサポートする
- 通常のマージ更新には
ReplacingMergeTree、デルタ更新にはMergeTreeを使用する - exactly-once 配信を提供する
ClickPipes ワークフローについては、Estuary の Kafka ClickPipe インテグレーションを参照してください。
セットアップガイド
前提条件
以下が必要です。
- Estuary アカウント
- 任意のデータソースからデータを取得する、Estuary の 1 つ以上の キャプチャ
- セルフホストの ClickHouse インスタンス、または ClickHouse Cloud アカウント
- 認証情報を持つ ClickHouse データベースユーザー
インテグレーション用に ClickHouse を設定する
Estuary の ClickHouse コネクタをセットアップするには、ClickHouse インスタンスからいくつかの情報を収集し、ユーザー権限を設定する必要があります。
-
データベースのホストエンドポイントをコピーします。
ポートには、TLS が有効な場合は 9440、無効な場合は 9000 を使用します。
ホストとポートを組み合わせたものが、Estuary に指定する アドレス になります。
-
Estuary がアクセスするデータベースユーザーに権限を付与します。
Estuary がテーブルを自動的に作成・管理するには、移行先データベースに対する
CREATE、SELECT、INSERTなどの権限に加え、メタデータ検出およびパーティション管理の権限が必要です。次の SQL コマンドを実行し、
<database>と<user>を実際の値に置き換えると、必要なすべての権限を付与できます。-- 移行先データベースへのアクセス: CREATE TABLE、DROP TABLE、SELECT、INSERT、TRUNCATE など。 GRANT ALL ON <database>.* TO <user>; -- メタデータ検出およびパーティション管理のためのシステムテーブルへのアクセス。 -- これらは上記のデータベース権限には含まれません。 GRANT SELECT ON system.columns TO <user>; GRANT SELECT ON system.parts TO <user>; GRANT SELECT ON system.tables TO <user>; -
必要に応じて、ユーザーのシステムアクセスを移行先データベースのみに制限します。
これは行レベルポリシーで設定できます。例:
CREATE ROW POLICY estuary_columns ON system.columns FOR SELECT USING database = '<database>' TO <user>; CREATE ROW POLICY estuary_parts ON system.parts FOR SELECT USING database = '<database>' TO <user>; CREATE ROW POLICY estuary_tables ON system.tables FOR SELECT USING database = '<database>' TO <user>;
その後、Estuary に移動してセットアップを完了できます。
Estuary のマテリアライゼーションを作成する
-
Estuary のダッシュボードで、Destinations ページに移動します。
-
+ New Materialization をクリックします。
-
ClickHouse コネクタを選択します。
-
Materialization Details セクションに入力します。
- マテリアライゼーションに一意の名前を付けます
- データプレーン (クラウドプロバイダーとリージョン) を選択します
-
Estuary が ClickHouse インスタンスに接続できるよう、Endpoint Config の詳細を入力します。
- Address: インスタンスのホストとポート
- Database: 移行先データベース名
- Authentication: データベースユーザーのユーザー名とパスワード
物理削除を使用するかどうかや SSL モードなど、任意の設定も構成できます。
ソースコレクションを設定する
Source Collections セクションで、ClickHouse にマテリアライズするログソースを選択します。
- 既存の キャプチャ をリンクするか、ClickHouse にマテリアライズする個別のデータコレクションを追加します。
- 必要に応じて追加設定するデータコレクションをリストから選択します。カスタマイズオプションには次が含まれます。
- コレクションに別のテーブル名を指定する
- コレクションのマージ動作を選択する (デルタ更新モードを使用するかどうか)
- マテリアライズするフィールドを制御するため、フィールドの選択動作をカスタマイズする
- ClickHouse へのデータのマテリアライズ方法に問題がなければ、Next、次に Save and Publish をクリックします。
Estuary は選択したコレクションのデータを ClickHouse にバックフィルし始め、その後は更新が発生するたびにストリーミングします。
関連リソース
Estuary で ClickHouse コネクタを設定する方法については、Estuary のドキュメントを参照してください。
- Estuary の ClickHouse マテリアライゼーションに関するドキュメントを参照してください。
- これらの手順で説明した UI ベースのワークフローに加え、CLI を使用して Estuary のパイプライン設定を管理することもできます。Estuary をプログラムから操作する方法については、Estuary の
flowctlガイドを参照してください。