Skip to main content
ClickHouse Cloud では、外部の PostgreSQL データベースを Managed Postgres サービスに移行するための ClickPipes をご利用いただけるようになりました。この組み込みインテグレーションにより、ソースデータベースへの接続、スキーマのエクスポート、Managed Postgres へのインポート、継続的なレプリケーションの設定をスムーズに行えます。

前提条件

移行前の注意事項

  • DDL の伝播: 継続的レプリケーション (CDC) は、DML 操作と ADD COLUMN を取り込みます。DROP COLUMN や ALTER COLUMN など、その他の DDL 変更は伝播されないため、ターゲット側で手動で適用する必要があります。
移行中に問題が発生した場合は、よくあるエラーとその解決策について Managed Postgres 移行のよくある質問 を確認してください。

Step 1: ソースデータベースに接続する

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

自動スキーマ移行

このオプションを選択すると、ClickPipe の作成後、Setup フェーズ中にソースデータベースのスキーマが自動的に取得され、Managed Postgres サービスに適用されます。 この機能では、後でウィザードで選択するテーブルにかかわらずソースデータベース内のすべてのデータベースオブジェクトを取得するため、空の宛先データベースが前提となります。宛先データベースに既存のデータがある場合や、より細かく設定したい場合は、代わりに手動モードを選択する必要があります。 ドロップダウンから宛先データベースを選択するか、新しいデータベースを作成をクリックして作成します。

監視

ClickPipes の詳細ビューで、スキーマ移行の進行状況を確認できます。ログにはスキーマ移行のステータスが表示され、発生したエラーも表示されます。 このモードには、次の制限があります。

手動スキーマ移行

移行先データベースにすでにデータが存在する場合や、自動モードで想定されるクリーンな状態ではなく、よりカスタマイズしたセットアップを行う場合は、ここで手動モードを選択できます。

データベーススキーマをエクスポートする

ウィザードには、ソースへの接続情報があらかじめ入力された pg_dump コマンドが表示されます。これをターミナルで実行します。
これにより、pg.sql が現在のディレクトリに作成されます。 Next をクリックします。

Managed Postgres サービスにスキーマをインポートする

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

Step 4: インジェスト設定を構成する

論理レプリケーションに使用するパブリケーションを指定します。空欄のままにすると、パブリケーションは自動的に作成されます。 スループットを調整するには、高度なレプリケーション設定を展開します。 Next をクリックします。

ステップ5: テーブルを選択

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

移行を監視する

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

トラフィックの切り替え

初期ロードが完了し、CDC (変更データキャプチャ) を使用している場合はレプリケーションラグがほぼゼロになった時点で、ソースの Postgres データベースから Managed Postgres サービスへトラフィックを切り替えられます。移行の詳細ビューを開き、移行後の手順 タブを選択してください。このガイド付きウィザードでは、移行を安全に完了するために必要な 6 つのステップを順に案内します。次のステップへ進むには、その前のステップを完了しておく必要があります。

ステップ1: ソース Postgres データベースを読み取り専用モードに設定する

カットオーバー中に差異が生じないよう、ソース側でアプリケーションからの書き込みを停止します。ウィザードには、ソースデータベース名があらかじめ入力された ALTER DATABASE コマンドが表示されるので、これをソースデータベース上で実行してください。
次に、既存の接続をすべて切断し、read-only 設定が反映され、転送中の書き込みが残らない状態にします。
Postgres の provider によっては、この手順が異なる場合があります。managed service では ALTER DATABASE や backend の強制終了が制限されていることがあり、代わりに独自の Console、パラメータグループ、あるいは書き込み privileges の剥奪によって読み取り専用モードを提供している場合があります。ソースを読み取り専用にする同等の方法については、ご利用の provider のドキュメントを参照してください。
続行するには Mark as completed をクリックします。

ステップ2: 行数を検証する

検証対象とするレプリケートテーブルを選択します。ClickPipes は選択された各テーブルの行数をソースとターゲットの両方でカウントし、比較します。大規模なテーブルでは、概算の行数が返される場合があります。すべてのテーブルを検証する場合は Select all tables を使用し、個別に指定する場合は対象のテーブルを検索してトグルで選択したうえで、Count rows をクリックします。

ステップ3: パイプを一時停止する

シーケンスをリセットしてトラフィックを切り替える前にレプリケーションを停止するため、ClickPipe を一時停止します。Pause ClickPipe をクリックし、パイプが一時停止するまで待ってから次に進んでください。

ステップ4: シーケンスをリセットする

以降の挿入が正しい値から続くように、宛先側でシーケンスをリセットします。Reset sequences をクリックすると、各シーケンスが対象テーブル内の現在の最大値に合わせて調整されます。

ステップ 5: トラフィックを切り替える

アプリケーションのデータベース URL を Managed Postgres の接続文字列に変更し、読み取りと書き込みを Managed Postgres サービスに向けます。ウィザードでは接続情報が複数のフォーマット (url、psql、env、yaml、jdbc) で提供されるため、ご利用のスタックに合ったものをコピーしてください。アプリケーションの更新が完了したら、Mark as completed をクリックします。

ステップ6: クリーンアップ

カットオーバーが完了し、新しいサービスが正常に稼働していることを確認したら、移行を削除してソース側のリソースを解放します。ウィザードには、スロット名があらかじめ入力された pg_drop_replication_slot コマンドが表示されます。これをソース側で実行して、レプリケーションスロットを削除してください:
続いて Delete ClickPipe migration をクリックし、データソース から移行を削除します。

次のステップ

最終更新日 2026年9月28日