Snowflake、PostgresのCDCをIcebergに直接プッシュし、レプリケーションを「時計仕掛け」に変える

How We Pushed CDC into Postgres

Snowflake、PostgresのCDCをIcebergに直接プッシュし、レプリケーションを「時計仕掛け」に変える

SnowflakeがPostgresサービス向けに開発したデータミラーリング機能は、変更データキャプチャ(CDC)をPostgres内部からIcebergテーブルへ直接プッシュする。従来の外部ツールによるプル型のレプリケーションが抱えるスナップショットと変更の競合やアップサートの非効率性を排除し、トランザクション境界を保ったまま高スループットで低遅延な同期を実現する。ライブビューにより未適用の変更を即座にクエリ可能で、セットアップは一度きり、その後は自動で動き続ける。

「ボタンを押せば、PostgresのテーブルがSnowflakeに現れる」
  1. bastawhiz

    ClickhouseはPeerdbの買収でこれを本当にうまくやった。何テラバイトものデータベースで使ったが、基本的にそれについて考えることはほとんどなかった。唯一注意しなければならなかったのは、一度にあまり多くをレプリケートしようとすることだった(PostgresやClickhouseクラスターの物理的な計算/IO容量のため)。

  2. gopalv

    これは基本的にVerticaが長い間得意としていた技で、同じ行に対してWOSとROSのフォーマットを持ち、それらの間でアンチキャッシュを行うというものだった。DezebiumとDelta Lakeを使えば、かなり長い間同様のシステムを構築できたかもしれないが、速く実行するとコンパクションに失敗するだろう。Oracle GoldenGate 12cが2014年頃にこの技を、安価なレプリカとしてMySQLを使ってやっているのを見たことがある。しかし、それらはすべてスキーマ更新に対してある方向で脆弱だ。これに最も近い、バッテリー同梱の同等品はAurora -> Redshiftブリッジ[1]だ。

    [1] - https://aws.amazon.com/rds/aurora/zero-etl/

  3. jauntywundrkind

    pg_lakeはオープンソースだが、CDC機能が欠けていることに注意が必要だ。閉じられたhttps://github.com/snowflake-eng/sfpg-extension-pg_lake_repl... へのコメントやリンクがいくつかある。

  4. hasyimibhar

    Postgresとウェアハウスソリューションの両方を1つの屋根の下で提供する異なる企業が、同じ問題にどう取り組むかを見るのは興味深い。

    - ClickHouseは従来のCDC(ClickPipes)に焦点を当て、それを猛烈に速くするだけだ。

    - Databricksは統合ストレージアーキテクチャ(LTAP)を活用してデータのコピーを避ける(キャッシュにはまだコピーがあると主張できるが)。

    - SnowflakeはデータミラーリングCDCを拡張機能として使い、Postgres上で直接実行する。

    私はまだ、Postgresプロバイダーがデータを直接Icebergにミラーリングさせてくれ、自分のステートレスなクエリエンジンを接続できるようにしてくれるのを待っている。

  5. whateveracct

    Snowflakeは本当に素晴らしい製品だ。ここ数年使ってきて楽しい経験だった。

この日のほかの記事

2026-08-10