9 पॉइंट द्वारा GN⁺ 2024-11-04 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • PostgreSQL डेटाबेसों के बीच डेटा को स्थानांतरित और ट्रांसफॉर्म करने का सबसे आसान तरीका प्रदान करता है
  • रियल टाइम स्ट्रीमिंग: PostgreSQL logical replication का उपयोग करके डेटा बदलावों को लगभग रियल टाइम में स्ट्रीम करता है
  • बल्क कॉपी: parallel processing सक्षम bulk copy के साथ शुरुआती डेटा synchronization तेज़ी से करता है
  • शक्तिशाली ट्रांसफॉर्मेशन: regular expression आधारित ट्रांसफॉर्मेशन लागू करता है, संवेदनशील डेटा को mask करता है, और कॉलम वैल्यू के आधार पर filter करता है
  • लचीली राउटिंग: टेबलों के बीच डेटा को सहज रूप से route करता है, और अलग नाम वाली टेबलों या उसी टेबल में custom column mapping के जरिए route करता है
  • ट्रांसफॉर्मेशन नियमों के उदाहरण
    • ईमेल पता masking: email कॉलम को masking characters में बदलना।
    • फ़ोन नंबर formatting: regular expression का उपयोग करके फ़ोन नंबर का फ़ॉर्मैट बदलना।
  • टेबल राउटिंग और कॉलम मैपिंग
    • लचीली टेबल राउटिंग: user table को customer table में route करना, और ID व username को customer ID व customer name से map करना।
    • मल्टी-टेबल राउटिंग: orders table को transactions table में route करना, और ID व total amount को transaction ID व amount से map करना।
  • सामान्य उपयोग के मामले
    • PostgreSQL DBs के बीच रियल टाइम डेटा replication
    • डेटा ट्रांसफॉर्मेशन सहित ETL pipeline बनाना
    • डेटा re-routing, masking, filtering
    • बिना downtime के database migration चलाना
    • PostgreSQL में event streaming
  • यह कैसे काम करता है
    • pg_flo, PostgreSQL के logical replication system का उपयोग करके डेटा बदलावों को capture और stream करता है।
    • NATS को message broker के रूप में उपयोग करके WAL से reads को replicator और worker processes से अलग करता है, जिससे flexibility और scalability मिलती है।
    • ट्रांसफॉर्मेशन और filtering, डेटा के destination तक पहुंचने से पहले लागू किए जाते हैं।

1 टिप्पणियां

 
GN⁺ 2024-11-04
Hacker News टिप्पणियाँ
  • pg_flo प्रोजेक्ट काफ़ी दिलचस्प लग रहा है, खासकर S3 में archive और इसका सस्ता tool version आकर्षक है

    • Debezium जैसे tools बड़े डेटा (TBs) की बजाय छोटे डेटा (GBs) के साथ काम कर सकते हैं, इसलिए local testing आसान होती है
    • Kafka और Debezium का उपयोग करना अल्पकालिक प्रयास है, और इसकी झंझट का आकलन किया जा रहा है
    • टीम जिन अन्य solutions का मूल्यांकन कर रही है, उनमें peerdb भी शामिल है
  • PostgreSQL logical replication का उपयोग करके main database से डेटा साफ़ करने और उसे S3 में archive करने वाले एक प्रोजेक्ट पर काम चल रहा है

    • कुछ tables को read workloads के लिए secondary Postgres instance पर उपलब्ध होना चाहिए, और इसके लिए replication ज़रूरी है
    • main database में दो तरह के delete operations समस्या पैदा कर रहे हैं
      • पहला delete डेटा cleanup के लिए है, और इसे replicated database में reflect नहीं होना चाहिए
      • दूसरा delete rollback के लिए है, और चूँकि यह डेटा की state बदलता है, इसलिए इसे replicate होना चाहिए
    • यह जानना चाहूँगा कि क्या इन दो delete operations में फ़र्क करके सिर्फ rollback deletes को replicate करने का कोई तरीका है
  • Postgres CDC solutions की जाँच कर रहा हूँ, और जानना चाहता हूँ कि क्या pg_flo मददगार हो सकता है

    • क्या आप failure modes के बारे में बता सकते हैं?
    • उदाहरण के लिए, अगर NATS server (या worker/replicator) node बंद हो जाए तो क्या होता है?
    • Postgres से ElasticSearch/ClickHouse में डेटा ले जाना कितना कठिन है, यह भी जानना चाहता हूँ
  • उम्मीद है कि यह Debezium का एक विकल्प बन सकता है

    • Debezium में शुरुआत में पूरी CDC state को Kafka में copy करना पड़ता है, और Kafka retention time को infinite पर सेट करना पड़ता है, जो कई Kafka service systems में allowed नहीं होता
  • pglogical, Postgres के अंदर चल सकता है, लेकिन pg_flo extension नहीं बल्कि एक external service लगता है

    • यह वास्तव में एक फ़ायदा भी हो सकता है
    • जानना चाहूँगा कि क्या pg_flo को Azure Postgres, Supabase, Neon जैसी Postgres as a service instances के साथ इस्तेमाल किया जा सकता है
    • क्या vendor-approved न होने वाले extensions install किए बिना WAL पढ़ना संभव है?
  • इस tool को आज़माने के लिए बहुत उत्साहित हूँ

    • जानना चाहूँगा कि क्या यह network disconnection/instability के बीच copy को संभाल सकता है
  • Sequin की तुलना में यह कैसे अलग है?

    • मैं ऐसा tool ढूँढ रहा हूँ जो CDC event-based workflows को संभव बनाए, और साथ ही ज़रूरत पड़ने पर event stream को मनचाहे तरीके से replay भी कर सके
  • मैं इसी तरह का tool ढूँढ रहा था, और timing बिल्कुल सही है

    • क्या यह bulk copies (जैसे रात में) को अलग-अलग transformations के साथ support करता है, बिना लगातार streaming किए?
  • क्या S3 में backup करने की तुलना में replication का उपयोग करना बेहतर होगा?

  • यह बहुत शानदार tool है