ClickPipes の Data sources を使用して PostgreSQL データを移行する
ClickHouse Cloud では、外部 PostgreSQL データベースを Managed Postgres サービスへ移行するための ClickPipes を提供しています。この組み込み統合により、ソースデータベースへの接続、スキーマのエクスポート、Managed Postgres へのインポート、継続的レプリケーションの設定を、効率的かつシームレスに行えます。
前提条件
- レプリケーション権限を持つユーザーで、ソース PostgreSQL データベースにアクセスできること。ソースに応じたセットアップガイドに従ってください。
- 移行先として ClickHouse Managed Postgres サービスがあること。まだない場合は、quickstart を参照してください。
- ローカルマシンに
pg_dumpとpsqlがインストールされていること。どちらも標準の PostgreSQL クライアントツールに含まれています。
移行前の注意点
- DDL の反映: 継続的レプリケーション (CDC) では、DML 操作と
ADD COLUMNは取り込まれます。一方、DROP COLUMNやALTER COLUMNなどのその他の DDL 変更は反映されないため、ターゲット側で手動適用する必要があります。
移行中に問題が発生した場合は、一般的なエラーとその対処法について Managed Postgres Migrations FAQ を確認してください。
ステップ 1: ソースデータベースに接続する
ClickHouse Cloud コンソールを開き、Managed Postgres サービスを選択します。

左側のサイドバーで、Data sourcesをクリックします。

Start import をクリックします。

ソース PostgreSQL データベースの接続情報 (ホスト、ポート、ユーザー名、パスワード、データベース名) を入力します。ソース側で必要な場合は、TLS を有効にします。
ソースデータベースへのプライベート接続が必要な場合は、SSH トンネリングを選択し、必要な SSH 情報を入力します。これにより、一般公開されていないデータベースにも移行処理から安全に接続できます。
インジェスト方法を選択します。
- 初期ロード + CDC — 既存データをコピーした後、継続的な変更に合わせてターゲットを同期し続けます。
- 初期ロードのみ — 一回限りのコピーで、継続的なレプリケーションは行いません。
- CDC のみ — 初回コピーをスキップし、この時点以降の新しい変更のみをレプリケートします。

Next をクリックします。
ステップ 2: データベースのスキーマをエクスポートする
ウィザードには、ソース接続情報が事前入力された pg_dump コマンドが表示されます。これをターミナルで実行してください。

これにより、現在のディレクトリに pg.sql が作成されます。

Next をクリックします。
ステップ 3: スキーマを Managed Postgres サービスにインポートする
ドロップダウンから宛先データベースを選択するか、Create a new database をクリックして新しく作成します。
ウィザードに、スキーマダンプを Managed Postgres サービスに適用するための psql コマンドが表示されます。これをターミナルで実行します。


「次へ」をクリックします。
Step 4: インジェスト設定を構成する
論理レプリケーションに使用するパブリケーションを指定します。空欄のままにすると、パブリケーションが自動的に作成されます。
スループットを調整するには、高度なレプリケーション設定 を展開します:
| 設定 | デフォルト | 説明 |
|---|---|---|
| 同期間隔 (秒) | 10 | レプリケーションスロットをポーリングする頻度 |
| 初期ロードの並列スレッド数 | 4 | 一括コピーフェーズで使用するスレッド数 |
| 取得バッチサイズ | 100,000 | レプリケーションの各バッチで取得する行数 |
| スナップショットのパーティションごとの行数 | 100000 | 大規模テーブルのスナップショットにおけるパーティションサイズ |
| 並列でスナップショットするテーブル数 | 1 | 同時にスナップショットするテーブル数 |

Next をクリックします。
ステップ 5: テーブルを選択
レプリケートするテーブルを選択します。テーブルはスキーマごとにグループ化されています。個別のテーブルを選択するか、スキーマを展開してその配下のテーブルをすべて選択します。

Create migration をクリックします。
移行を監視する
移行を作成すると、Data sources に Running ステータスで表示されます。

移行をクリックして詳細ビューを開きます。Tables タブには、処理済み行数、パーティション数、パーティションあたりの平均時間など、各テーブルの初期ロードの進行状況が表示されます。Metrics タブには、CDC の開始後にレプリケーションラグとスループットが表示されます。

移行後のタスク
初期ロードが完了し、CDC (変更データキャプチャ) を使用している場合はレプリケーションラグがほぼゼロになったら、次の作業を実施します。
行数を確認します。 トラフィックを切り替える前に、ソース側とターゲット側の両方で重要なテーブルを抜き取り確認します。
移行元への書き込みを停止します。 アプリケーションからの書き込みを一時停止します。切り替え時に読み取り専用モードを適用するには:
レプリケーションが追いついていることを確認します。 ソースとターゲットで最新の行を比較します:
シーケンスをリセットします。 各テーブルの現在の最大値に合わせてシーケンスを調整します:
アプリケーショントラフィックを切り替えます。 読み取り先と書き込み先を Managed Postgres サービスに切り替え、エラー、制約違反、レプリケーションの健全性を監視します。
クリーンアップします。 切り替えを実施し、新しいサービスが正常であることを確認したら、Data sources から移行を削除します。CDC を使用した場合は、リソースを解放するためにソース側のレプリケーションスロットを削除します。