WalShadow は、PostgreSQL の先行書き込みログ (WAL) から直接読み取る、ClickHouse Managed Postgres 向けのネイティブなレプリケーションエンジンです。低レイテンシかつ高スループットのワークロード向けに最適化されており、Postgres から ClickHouse へのレプリケーションラグをサブ秒に抑えます。開発はオープンな形で ClickHouse/walshadow にて進められています。
WalShadow は、Sync to ClickHouse で利用できる2つのレプリケーション方式のうちの1つです。もう一方の ClickPipes は、完全マネージド型のデータパイプラインです。レイテンシとレプリケーションのオーバーヘッドを最小限に抑えたい場合は WalShadow を選択してください。
お使いのサービスで WalShadow が利用可能になると、概要 ページに プライベートプレビュー バナーが表示されます。Configure WalShadow をクリックして開始してください。
作業を進める前に、Postgres サービスが ClickHouse からアクセス可能であることを確認してください。
WalShadow は宛先の ClickHouse サービスに直接接続するため、データベースとテーブルを作成する権限を持つ ClickHouse ユーザーとパスワードが必要です。1
レプリケーションエンジンを選択する
レプリケーションエンジンとして WalShadow を選択し、Next をクリックします。
2
レプリケーションサービスを設定する
レプリケーションの設定を入力します:
- ClickHouse サービス: 既存の ClickHouse サービスを選択するか、新規に作成します
- Postgres database: レプリケーション元となるソースデータベースを選択するか、新規に作成します
- レプリケーション方式: 次のいずれかを選択します:
- 初期ロード + CDC: 既存データを取り込み、その後もテーブルを新しい変更に追従させます (推奨)
- 初期ロード only: 既存データを一回限り取り込み、その後の更新は行いません
- CDC only: 初期取り込みは行わず、以降の新しい変更のみをキャプチャします
3
レプリケーションするテーブルを選択する
宛先データベースを選択し、レプリケーションするテーブルを指定します:
- Destination database: 既存の ClickHouse データベースを選択するか、新規に作成します
- Tables: 各スキーマを展開して個別のテーブルを選択するか、Select all tables を切り替えます。テーブルごとに Destination table name をカスタマイズしたり、Column settings を調整したりできます。
- ClickHouse ユーザー および ClickHouse password:
WalShadowは宛先の ClickHouse サービスに直接接続するため、移行先データベースおよびテーブルを作成する権限を持つ認証情報が必要です。
4
WalShadow を監視する
レプリケーションを開始すると、Sync to ClickHouse ページに
WalShadow が表示されます。パイプラインのプロビジョニングと初期ロードの準備が行われている間、ステータスは Creating になります。プロビジョニングが完了すると、ステータスは Running に変わります。このページには、レプリケーションのリアルタイムなメトリクスが表示されます:- Status: パイプラインの現在の状態 (例:
Running) - Rows synced: ClickHouse にレプリケーションされた行の総数
- Backfills pending: 初期ロード待ちのテーブル数
- Lag: 未適用の WAL データ量
- Lag time: 宛先が Postgres からどれだけ遅れているか
- Uptime: パイプラインの稼働時間
- Last updated: メトリクスが最後に報告された時刻
注意事項
WalShadow はプライベートプレビュー中のため、以下の点にご注意ください:
- 現時点では、Postgres サービスごとに
WalShadowは 1 つのみです。 - 操作とより詳細なメトリクスはロードマップに含まれています。