メインコンテンツまでスキップ
メインコンテンツまでスキップ

PostgresからClickHouseへのデータ取り込み (CDCを使用)

Beta feature. Learn more.
参考

現在、ClickPipesを通じてPostgresからClickHouse Cloudへのデータ取り込みは、パブリックベータ版です。

ClickPipesを使用して、ソースのPostgresデータベースからClickHouse Cloudにデータを取り込むことができます。ソースのPostgresデータベースは、オンプレミスまたはクラウドにホストされている可能性があり、Amazon RDS、Google Cloud SQL、Azure Database for Postgres、Supabaseなどを含みます。

前提条件

始めるには、まずPostgresデータベースが正しく設定されていることを確認する必要があります。ソースPostgresインスタンスによっては、次のいずれかのガイドに従うことができます:

  1. Amazon RDS Postgres

  2. Supabase Postgres

  3. Google Cloud SQL Postgres

  4. Azure Flexible Server for Postgres

  5. Neon Postgres

  6. Crunchy Bridge Postgres

  7. Generic Postgres Source、他のPostgresプロバイダーを使用している場合やセルフホステッドインスタンスを使用している場合

危険

PgBouncer、RDS Proxy、Supabase PoolerなどのPostgresプロキシは、CDCベースのレプリケーションには対応していません。ClickPipesの設定には、必ず実際のPostgresデータベースの接続詳細を追加するようにしてください。

ソースのPostgresデータベースが設定できたら、ClickPipeの作成を続けることができます。

ClickPipeの作成

ClickHouse Cloudアカウントにログインしていることを確認してください。アカウントをまだお持ちでない場合は、ここにサインアップできます。

  1. ClickHouse Cloudコンソールで、ClickHouse Cloudサービスに移動します。
ClickPipes service
  1. 左側のメニューでData Sourcesボタンを選択し、「ClickPipeをセットアップする」をクリックします。
Select imports
  1. Postgres CDCタイルを選択します。

    Select Postgres

ソースPostgresデータベース接続の追加

  1. 前提条件で設定したソースPostgresデータベースの接続詳細を入力します。

    参考

    接続詳細を追加する前に、ClickPipesのIPアドレスをファイアウォールのルールにホワイトリスト登録していることを確認してください。ClickPipesのIPアドレスのリストはこちらにあります。 より詳しい情報は、このページの一番上にリンクされているソースPostgres設定ガイドを参照してください。

    Fill in connection details

(オプション) SSHトンネルの設定

ソースのPostgresデータベースが公開されていない場合は、SSHトンネルの詳細を指定できます。

  1. 「SSHトンネリングを使用する」トグルを有効にします。

  2. SSH接続の詳細を入力します。

    SSH tunneling
  3. キーベースの認証を使用するには、「キー ペアを取り消して生成」をクリックして新しいキー ペアを生成し、生成された公開キーをSSHサーバーの~/.ssh/authorized_keysにコピーします。

  4. 「接続を確認」をクリックして接続を確認します。

注記

ClickPipesがSSHトンネルを確立できるように、SSHバスティオンホストに対してClickPipes IPアドレスをファイアウォールのルールにホワイトリスト登録することを忘れないでください。

接続詳細が入力できたら、「次へ」をクリックします。

レプリケーション設定の構成

  1. 前提条件のステップで作成したレプリケーションスロットをドロップダウンリストから選択します。

    Select replication slot

高度な設定

必要に応じて高度な設定を構成できます。各設定の簡単な説明は以下の通りです:

  • 同期間隔: これはClickPipesがソースデータベースを変更内容についてポーリングする間隔です。コストに敏感なユーザーには、これを高めの値(3600以上)に保つことをお勧めします。
  • 初期読み込み用の並列スレッド数: 初期スナップショットを取得するために使用される並列作業者の数です。多数のテーブルがある場合や初期スナップショットを取得するための並列作業者の数を制御したい場合に便利です。この設定はテーブルごとに適用されます。
  • プルバッチサイズ: 単一バッチで取得する行の数です。これは最善を尽くした設定であり、すべてのケースで遵守されるわけではありません。
  • 各パーティションのスナップショット行数: 初期スナップショット中に各パーティションで取得される行の数です。テーブルに多数の行がある場合に、各パーティションで取得される行の数を制御するのに便利です。
  • 並列スナップショットのテーブル数: 初期スナップショット中に並列で取得されるテーブルの数です。多数のテーブルがある場合に、並列で取得されるテーブルの数を制御するのに便利です。

テーブルの構成

  1. ここでは、ClickPipeの宛先データベースを選択できます。既存のデータベースを選択するか、新しいデータベースを作成できます。

    Select destination database
  2. ソースPostgresデータベースからレプリケートしたいテーブルを選択できます。テーブルを選択する際に、宛先ClickHouseデータベースでのテーブル名の変更や特定のカラムの除外を選択することもできます。

    危険

    ClickHouseでのOrdering KeyをPostgresの主キーとは異なる形で定義している場合は、すべての考慮事項を読むことを忘れないでください!

権限を確認してClickPipeを開始

  1. 権限のドロップダウンから「フルアクセス」ロールを選択し、「セットアップを完了」をクリックします。

    Review permissions

次は何ですか?

PostgresからClickHouseにデータを移行した後の次の明確な質問は、ClickHouseでデータをどのようにモデル化してそれを最大限に活用するかです。ClickHouseでのデータモデルの作成を支援するために、ClickHouse Data Modeling Tips for Postgres usersをご参照ください。

また、一般的な問題やその解決方法に関する詳細は、ClickPipes for Postgres FAQをご参照ください。

参考

こちらは特に重要です。ClickHouseはPostgresと異なり、いくつかの驚きに直面するかもしれません。このガイドは潜在的な落とし穴に対処し、ClickHouseを最大限に活用できるようにします。