9 poin oleh GN⁺ 2024-11-04 | 1 komentar | Bagikan ke WhatsApp
  • Menyediakan cara termudah untuk memindahkan dan mentransformasikan data antar database PostgreSQL
  • Streaming real-time: Mengalirkan perubahan data hampir secara real-time menggunakan replikasi logis PostgreSQL
  • Penyalinan massal: Melakukan sinkronisasi data awal dengan cepat melalui penyalinan massal yang dapat diproses secara paralel
  • Transformasi yang kuat: Menerapkan transformasi berbasis regular expression, menyamarkan data sensitif, dan memfilter berdasarkan nilai kolom
  • Routing yang fleksibel: Mengarahkan data antar tabel dengan mulus, termasuk ke tabel dengan nama berbeda atau ke tabel yang sama melalui pemetaan kolom kustom
  • Contoh aturan transformasi
    • Menyamarkan alamat email: Mengubah kolom email menjadi karakter penyamaran.
    • Memformat nomor telepon: Mengubah format nomor telepon menggunakan regular expression.
  • Routing tabel dan pemetaan kolom
    • Routing tabel yang fleksibel: Mengarahkan tabel pengguna ke tabel pelanggan, sambil memetakan ID dan nama pengguna ke ID pelanggan dan nama pelanggan.
    • Routing multi-tabel: Mengarahkan tabel pesanan ke tabel transaksi, sambil memetakan ID dan jumlah total ke ID transaksi dan nilai transaksi.
  • Kasus penggunaan umum
    • Replikasi data real-time antar DB PostgreSQL
    • Menyusun pipeline ETL dengan transformasi data
    • Pengalihan ulang data, masking, dan filtering
    • Menjalankan migrasi database tanpa downtime
    • Event streaming dari PostgreSQL
  • Cara kerjanya
    • pg_flo memanfaatkan sistem replikasi logis PostgreSQL untuk menangkap dan mengalirkan perubahan data.
    • Menggunakan NATS sebagai message broker untuk memisahkan pembacaan dari WAL dari proses replikator dan worker, sehingga memberikan fleksibilitas dan skalabilitas.
    • Transformasi dan filtering diterapkan sebelum data mencapai tujuan.

1 komentar

 
GN⁺ 2024-11-04
Komentar Hacker News
  • Proyek pg_flo terlihat sangat menarik, terutama arsip ke S3 dan versi alat yang lebih murah terasa menarik

    • Alat seperti Debezium bisa digunakan dengan data skala kecil (GB) alih-alih data besar (TB), sehingga memudahkan pengujian lokal
    • Menggunakan Kafka dan Debezium adalah upaya jangka pendek, dan tingkat kerepotannya sedang dievaluasi
    • Solusi lain yang sedang dievaluasi oleh tim adalah peerdb
  • Sedang mengerjakan proyek yang menggunakan replikasi logis PostgreSQL untuk merapikan data dari database utama dan mengarsipkannya ke S3

    • Beberapa tabel perlu tetap tersedia di instance Postgres sekunder untuk beban baca, sehingga replikasi diperlukan
    • Ada dua jenis operasi penghapusan di database utama yang menjadi masalah
      • Penghapusan pertama untuk pembersihan data, dan diharapkan tidak tercermin di database hasil replikasi
      • Penghapusan kedua untuk rollback, dan karena mengubah status data, penghapusan ini harus direplikasi
    • Ingin tahu apakah ada cara untuk membedakan dua jenis penghapusan ini sehingga hanya penghapusan rollback yang direplikasi
  • Sedang meneliti solusi Postgres CDC dan ingin tahu apakah pg_flo bisa membantu

    • Ingin tahu apakah Anda bisa menjelaskan mode kegagalannya
    • Misalnya, ingin tahu apa yang terjadi jika node server NATS (atau worker/replicator) mati
    • Ingin tahu seberapa sulit memindahkan data dari Postgres ke ElasticSearch/ClickHouse
  • Berharap ini bisa menjadi alternatif Debezium

    • Debezium pada awalnya harus menyalin seluruh status CDC ke Kafka, dan waktu retensi Kafka harus diatur tak terbatas, yang tidak diizinkan di banyak sistem layanan Kafka
  • pglogical bisa berjalan di dalam Postgres, tetapi pg_flo tampaknya merupakan layanan eksternal, bukan ekstensi

    • Ini justru bisa menjadi keunggulan
    • Ingin tahu apakah pg_flo dapat digunakan dengan instance Postgres as a service seperti Azure Postgres, Supabase, dan Neon
    • Ingin tahu apakah WAL bisa dibaca tanpa perlu memasang ekstensi yang tidak disetujui vendor
  • Sangat antusias untuk mencoba alat ini

    • Ingin tahu apakah alat ini bisa menangani penyalinan di tengah koneksi jaringan yang terputus/tidak stabil
  • Ingin tahu apa bedanya dibandingkan Sequin

    • Sedang mencari alat yang memungkinkan workflow berbasis event CDC sambil tetap dapat memutar ulang event stream secara fleksibel sesuai kebutuhan
  • Sudah lama mencari alat serupa, dan waktunya terasa pas sekali

    • Ingin tahu apakah alat ini mendukung penyalinan massal (misalnya pada malam hari) dengan berbagai transformasi, tanpa harus melakukan streaming terus-menerus
  • Ingin tahu apakah menggunakan replikasi lebih baik daripada melakukan backup ke S3

  • Alat yang sangat keren