- มอบวิธีที่ง่ายที่สุดในการย้ายและแปลงข้อมูลระหว่างฐานข้อมูล PostgreSQL
- การสตรีมแบบเรียลไทม์: สตรีมการเปลี่ยนแปลงข้อมูลแบบเกือบเรียลไทม์ด้วยการทำ logical replication ของ PostgreSQL
- การคัดลอกข้อมูลจำนวนมาก: ทำการซิงก์ข้อมูลเริ่มต้นได้อย่างรวดเร็วด้วยการคัดลอกข้อมูลจำนวนมากแบบประมวลผลขนาน
- การแปลงข้อมูลที่ทรงพลัง: ใช้การแปลงตาม regular expression, ปกปิดข้อมูลสำคัญ และกรองตามค่าของคอลัมน์
- การกำหนดเส้นทางที่ยืดหยุ่น: กำหนดเส้นทางข้อมูลระหว่างตารางได้อย่างราบรื่น รวมถึงส่งไปยังตารางชื่ออื่นหรือไปยังตารางเดิมด้วยการแมปคอลัมน์แบบกำหนดเอง
- ตัวอย่างกฎการแปลง
- การปกปิดอีเมล: แปลงคอลัมน์อีเมลเป็นอักขระสำหรับการปกปิดข้อมูล
- การจัดรูปแบบหมายเลขโทรศัพท์: ใช้ regular expression เพื่อแปลงรูปแบบหมายเลขโทรศัพท์
- การกำหนดเส้นทางตารางและการแมปคอลัมน์
- การกำหนดเส้นทางตารางแบบยืดหยุ่น: กำหนดเส้นทางตารางผู้ใช้ไปยังตารางลูกค้า พร้อมแมป ID และชื่อผู้ใช้เป็นรหัสลูกค้าและชื่อลูกค้า
- การกำหนดเส้นทางหลายตาราง: กำหนดเส้นทางตารางคำสั่งซื้อไปยังตารางธุรกรรม พร้อมแมป ID และยอดรวมเป็นรหัสธุรกรรมและจำนวนเงิน
- กรณีใช้งานทั่วไป
- การทำสำเนาข้อมูลแบบเรียลไทม์ระหว่าง PostgreSQL DB
- การสร้าง ETL pipeline ที่มีการแปลงข้อมูล
- การกำหนดเส้นทางข้อมูลใหม่ การปกปิดข้อมูล และการกรอง
- การทำ database migration โดยไม่มี downtime
- การสตรีมเหตุการณ์จาก PostgreSQL
- วิธีการทำงาน
- pg_flo ใช้ระบบ logical replication ของ PostgreSQL เพื่อจับและสตรีมการเปลี่ยนแปลงของข้อมูล
- ใช้ NATS เป็น message broker เพื่อแยกการอ่านจาก WAL ออกจากกระบวนการ replicator และ worker ทำให้มีความยืดหยุ่นและขยายระบบได้
- การแปลงและการกรองจะถูกใช้ก่อนที่ข้อมูลจะไปถึงปลายทาง
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
โปรเจกต์ pg_flo ดูน่าสนใจมาก โดยเฉพาะการทำ archive ไปยัง S3 และเวอร์ชันเครื่องมือราคาประหยัดที่น่าสนใจ
กำลังทำโปรเจกต์ที่ใช้ PostgreSQL logical replication เพื่อจัดระเบียบข้อมูลจากฐานข้อมูลหลักและ archive ไปยัง S3
กำลังศึกษาว่า Postgres CDC solution ต่าง ๆ ทำงานอย่างไร และสงสัยว่า pg_flo จะช่วยได้หรือไม่
หวังว่าจะเป็นทางเลือกแทน Debezium ได้
pglogical สามารถรันภายใน Postgres ได้ แต่ pg_flo ดูเหมือนจะเป็น external service ไม่ใช่ extension
ตื่นเต้นมากที่จะได้ลองใช้เครื่องมือนี้
อยากรู้ว่าแตกต่างจาก Sequin อย่างไร
กำลังมองหาเครื่องมือคล้าย ๆ แบบนี้อยู่พอดี จังหวะเหมาะมาก
อยากรู้ว่าการใช้ replication จะดีกว่าการสำรองข้อมูลไปยัง S3 หรือไม่
เป็นเครื่องมือที่เจ๋งมาก