PostgresからClickHouseへのデータ取り込み(CDCを使用)
現在、ClickPipesを使用してPostgresからClickHouse Cloudへのデータ取り込みはパブリックベータ版にあります。
ClickPipesを使用して、ソースのPostgresデータベースからClickHouse Cloudにデータを取り込むことができます。ソースのPostgresデータベースは、オンプレミスまたはクラウドにホストされていることができます(Amazon RDS、Google Cloud SQL、Azure Database for Postgres、Supabaseなどを含む)。
前提条件
始めるには、まずPostgresデータベースが正しく設定されていることを確認する必要があります。ソースのPostgresインスタンスに応じて、以下のガイドのいずれかに従ってください:
-
Generic Postgres Source(他のPostgresプロバイダーを使用しているか、セルフホストのインスタンスを使用している場合)
-
TimescaleDB(マネージドサービスまたはセルフホストのインスタンスでTimescaleDB拡張機能を使用している場合)
PgBouncer、RDS Proxy、Supabase PoolerなどのPostgresプロキシは、CDCベースのレプリケーションに対応していません。ClickPipesのセットアップにはそれらを使用しないようにし、実際のPostgresデータベースの接続情報を追加してください。
ソースのPostgresデータベースが設定されたら、ClickPipeの作成を続けることができます。
ClickPipeの作成
ClickHouse Cloudアカウントにログインしていることを確認してください。まだアカウントをお持ちでない場合は、こちらからサインアップできます。
- ClickHouse Cloudコンソールで、ClickHouse Cloudサービスに移動します。

- 左側のメニューで「データソース」ボタンを選択し、「ClickPipeを設定」をクリックします。

-
「Postgres CDC」タイルを選択します。
ソースのPostgresデータベース接続の追加
-
前提条件ステップで構成したソースのPostgresデータベースの接続詳細を入力します。
参考接続詳細を追加する前に、クリックパイプのIPアドレスをファイアウォールルールにホワイトリストに追加していることを確認してください。ClickPipesのIPアドレスのリストはこちらで確認できます。 さらなる情報については、このページの先頭にリンクされているソースPostgres設定ガイドを参照してください。
(オプショナル) AWSプライベートリンクの設定
AWSにホストされているソースPostgresデータベースに接続するには、AWSプライベートリンクを使用できます。データ転送をプライベートに保ちたい場合に便利です。 接続を設定するためのセットアップガイドをこちらで確認できます。
(オプショナル) SSHトンネリングの設定
ソースのPostgresデータベースが公開されていない場合、SSHトンネリングの詳細を指定することができます。
-
「SSHトンネリングを使用する」トグルを有効にします。
-
SSH接続詳細を入力します。
-
キーベースの認証を使用するには、「キーのペアを取り消して生成」をクリックして新しいキーのペアを生成し、生成された公開キーをSSHサーバーの
~/.ssh/authorized_keys
にコピーします。 -
「接続を確認」をクリックして接続を確認します。
SSHバスティオンホストのファイアウォールルールにClickPipes IPアドレスをホワイトリストに追加し、ClickPipesがSSHトンネルを確立できるようにしてください。
接続詳細の入力が完了したら、「次へ」をクリックします。
レプリケーション設定の構成
-
前提条件ステップで作成したレプリケーションスロットをドロップダウンリストから選択してください。
高度な設定
必要に応じて、高度な設定を構成できます。各設定の簡単な説明を以下に示します:
- 同期間隔:これは、ClickPipesがソースデータベースを変更のためにポーリングする間隔です。これは、コストに敏感なユーザーにとって重要で、高い値(
3600
以上)に設定することをお勧めします。 - 初期ロードのための並列スレッド数:これは、初期スナップショットを取得するために使用される並列ワーカーの数です。多数のテーブルがある場合、初期スナップショットを取得するために使用される並列ワーカーの数を制御したい場合に便利です。この設定はテーブルごとに適用されます。
- プルバッチサイズ:単一バッチで取得する行の数です。これは最善を尽くす設定であり、すべてのケースで遵守されるわけではありません。
- パーティションごとのスナップショットの行数:これは、初期スナップショット中に各パーティションで取得される行の数です。テーブルに多くの行がある場合、各パーティションで取得される行の数を制御したい場合に便利です。
- 並列でのスナップショットテーブル数:これは、初期スナップショット中に並列で取得されるテーブルの数です。多数のテーブルがある場合、並列で取得するテーブルの数を制御したい場合に便利です。
テーブルの構成
-
ここで、ClickPipeの宛先データベースを選択できます。既存のデータベースを選択するか、新しいデータベースを作成できます。
-
ソースのPostgresデータベースからレプリケートしたいテーブルを選択できます。テーブルを選択する際、宛先のClickHouseデータベース内でテーブルの名前を変更したり、特定のカラムを除外したりすることもできます。
危険ClickHouseでのOrdering KeyをPostgresの主キーと異なるように定義している場合は、考慮事項をすべてお読みください!
権限を確認し、ClickPipeを開始
-
権限のドロップダウンから「フルアクセス」ロールを選択し、「セットアップを完了」をクリックします。
次は何ですか?
PostgresからClickHouseにデータを移動した後の次の明白な質問は、ClickHouseでデータをクエリし、モデル化して最大限に活用する方法です。PostgreSQLからClickHouseへの移行方法に関する段階的アプローチについては、移行ガイドを参照してください。移行ガイドに加えて、重複排除戦略(CDC使用)やOrdering Keysに関するページを確認して、重複を処理し、CDCを使用する際にOrdering Keysをカスタマイズする方法を理解してください。
最後に、一般的な問題とその解決方法に関する詳細は、"ClickPipes for Postgres FAQ"ページを参照してください。