9 ポイント 投稿者 GN⁺ 2024-11-04 | 1件のコメント | WhatsAppで共有
  • PostgreSQLデータベース間でデータを移動・変換する最も簡単な方法を提供
  • リアルタイムストリーミング:PostgreSQLの論理レプリケーションを使用して、データ変更をほぼリアルタイムでストリーミング
  • バルクコピー:並列処理対応のバルクコピーにより、初期データ同期を高速に実行
  • 強力な変換:正規表現ベースの変換を適用し、機密データをマスキングし、列の値に応じてフィルタリング
  • 柔軟なルーティング:テーブル間でデータをシームレスにルーティングし、異なる名前のテーブルや同一テーブルへ、カスタム列マッピングを通じてルーティング
  • 変換ルールの例
    • メールアドレスのマスキング:メール列をマスク文字に変換。
    • 電話番号のフォーマット:正規表現を使って電話番号の形式を変換。
  • テーブルルーティングと列マッピング
    • 柔軟なテーブルルーティング:ユーザーテーブルを顧客テーブルにルーティングし、IDとユーザー名を顧客IDと顧客名にマッピング。
    • 複数テーブルのルーティング:注文テーブルを取引テーブルにルーティングし、IDと合計金額を取引IDと金額にマッピング。
  • 一般的なユースケース
    • PostgreSQL DB間でのリアルタイムデータレプリケーション
    • データ変換を含むETLパイプラインの構築
    • データの再ルーティング、マスキング、フィルタリング
    • ダウンタイムなしでのデータベース移行の実行
    • PostgreSQLでのイベントストリーミング
  • 動作方式
    • pg_floはPostgreSQLの論理レプリケーションシステムを活用して、データ変更をキャプチャしストリーミングする。
    • メッセージブローカーとしてNATSを使用し、WALからの読み取りをレプリケーターおよびワーカープロセスから分離することで、柔軟性と拡張性を提供する。
    • 変換とフィルタリングは、データが宛先に到達する前に適用される。

1件のコメント

 
GN⁺ 2024-11-04
Hacker Newsのコメント
  • pg_floプロジェクトは非常に興味深く見え、特にS3へのアーカイブと低価格なツール版が魅力的

    • Debeziumのようなツールは、大規模データ(TBs)ではなく小規模データ(GBs)で作業できるため、ローカルテストが容易
    • KafkaとDebeziumを使うのは短期的な取り組みであり、その手間を評価中
    • チームで評価中の別のソリューションとしてpeerdbがある
  • PostgreSQLの論理レプリケーションを使って、メインデータベースからデータを整理し、S3へアーカイブするプロジェクトを進めている

    • 一部のテーブルは読み取り処理のために補助Postgresインスタンスで利用可能である必要があり、その際にレプリケーションが必要
    • メインデータベースでの2種類の削除処理が問題になっている
      • 1つ目の削除はデータ整理のためのもので、レプリケートされたデータベースには反映されたくない
      • 2つ目の削除はロールバックのためのもので、データ状態を変更するためレプリケートされるべき
    • これら2種類の削除処理を区別して、ロールバック削除だけをレプリケートできる方法があるのか気になっている
  • Postgres CDCソリューションを調査中で、pg_floが役立つか気になっている

    • 障害モードについて説明してもらえるのか気になっている
    • たとえば、NATSサーバー(またはワーカー/レプリケータ)ノードが落ちたらどうなるのか知りたい
    • PostgresからElasticSearch/ClickHouseへデータを移すのがどれほど難しいのか気になっている
  • Debeziumの代替になってほしい

    • Debeziumは最初にCDC全体の状態をKafkaへコピーする必要があり、Kafkaの保持期間を無期限に設定しなければならないが、これは多くのKafkaサービスシステムでは許可されていない
  • pglogicalはPostgres内部で実行できるが、pg_floは拡張ではなく外部サービスのように見える

    • これは実際には利点かもしれない
    • Azure Postgres、Supabase、NeonなどのPostgres as a serviceインスタンスと一緒にpg_floを使えるのか気になっている
    • ベンダー未承認の拡張をインストールする必要なくWALを読めるのか気になっている
  • このツールを試してみるのがとても楽しみ

    • ネットワーク接続の切断や不安定性の途中でもコピーを処理できるのか気になっている
  • Sequinと比べてどう違うのか気になっている

    • CDCイベントベースのワークフローを可能にしつつ、必要に応じてイベントストリームを任意に再生できるツールを探している
  • 似たようなツールを探していたので、完璧なタイミング

    • さまざまな変換を通じて大量コピー(例: 夜間)を実行し、継続的にストリーミングしない形がサポートされるのか気になっている
  • S3にバックアップするよりレプリケーションを使うほうがよいのか気になっている

  • とてもクールなツール