前提条件
- レプリケーション権限を持つユーザーで、ソース PostgreSQL データベースにアクセスできること。ソースに応じて、以下のセットアップガイドに従ってください。
- 移行先として ClickHouse Managed Postgres サービスが必要です。まだ用意していない場合は、クイックスタート を参照してください。
- ローカルマシンに
pg_dumpとpsqlがインストールされていること。どちらも標準の PostgreSQL クライアントツールに含まれています。
移行前の注意事項
- DDL の伝播: 継続的レプリケーション (CDC) は、DML 操作と
ADD COLUMNを取り込みます。DROP COLUMNやALTER COLUMNなど、その他の DDL 変更は伝播されないため、ターゲット側で手動で適用する必要があります。
移行中に問題が発生した場合は、よくあるエラーとその解決策について Managed Postgres 移行のよくある質問 を確認してください。
Step 1: ソースデータベースに接続する
- Initial load + CDC — 既存データをコピーした後、継続的な変更を反映してターゲットを同期し続けます。
- Initial load only — 一回限りのコピーで、継続的なレプリケーションは行いません。
- CDC only — 初期コピーをスキップし、この時点以降の新しい変更だけをレプリケートします。
ステップ2: データベースのスキーマをエクスポートする
pg_dump コマンドが表示されます。これをターミナルで実行します。
pg.sql が作成されます。
Next をクリックします。
ステップ3: スキーマを Managed Postgres サービスにインポートする
psql コマンドが表示されます。これをターミナルで実行してください。
Step 4: インジェスト設定を構成する
| 設定 | デフォルト | 説明 |
|---|---|---|
| 同期間隔 (秒) | 10 | レプリケーションスロットをポーリングする間隔 |
| 初期ロードの並列スレッド数 | 4 | bulk copy フェーズで使用するスレッド数 |
| Pull バッチサイズ | 100,000 | レプリケーションの各バッチで取得する行数 |
| スナップショットのパーティションあたりの行数 | 100000 | 大規模なテーブルスナップショットのパーティションサイズ |
| 並列でスナップショットを作成するテーブル数 | 1 | 同時実行でスナップショットを作成するテーブル数 |