उत्पादन पर हमारा डेटाबेस आकार में कुछ सौ गीगाबाइट है। विकास और परीक्षण के लिए, हमें इस डेटाबेस के स्नैपशॉट बनाने की आवश्यकता है जो कार्यात्मक रूप से समतुल्य हैं, लेकिन जो आकार में केवल 10 या 20 गिग्स हैं।
चुनौती यह है कि हमारी व्यावसायिक संस्थाओं का डेटा कई तालिकाओं में बिखरा हुआ है। हम कुछ प्रकार के फ़िल्टर्ड स्नैपशॉट बनाना चाहते हैं ताकि डंप में केवल कुछ निकाय शामिल हों। इस तरह हम हर महीने देव और परीक्षण के लिए ताजा स्नैपशॉट प्राप्त कर सकते हैं।
उदाहरण के लिए, मान लें कि हमारे पास ऐसी संस्थाएँ हैं जिनके कई-कई रिश्ते हैं:
- कंपनी के पास एन डिवीजन हैं
- डिवीजन में एन कर्मचारी हैं
- कर्मचारी के पास एन अटेंडेंस रिकॉर्ड है
वहाँ शायद 1000 कंपनियों, 2500 डिवीजनों, 175000 कर्मचारियों, और लाखों की उपस्थिति रिकॉर्ड है। हम कहते हैं, पहले 100 कंपनियों और उसके सभी घटक डिवीजनों, कर्मचारियों और उपस्थिति रिकॉर्ड को खींचने के लिए एक प्रतिकृति तरीका है ।
हम वर्तमान में स्कीमा के लिए pg_dump का उपयोग करते हैं, और फिर pg_dump को --disable-triggers और --data के साथ चलाते हैं ताकि सभी डेटा को छोटी तालिकाओं से बाहर निकाला जा सके। हम डेटा के हिस्से को बाहर निकालने के लिए कस्टम स्क्रिप्ट लिखना नहीं चाहते हैं क्योंकि हमारे पास तेजी से विकास चक्र है और चिंतित हैं कि कस्टम स्क्रिप्ट नाजुक और तारीख से बाहर होने की संभावना है।
हम ऐसा कैसे कर सकते हैं? क्या तृतीय-पक्ष उपकरण हैं जो डेटाबेस से तार्किक विभाजन को बाहर निकालने में मदद कर सकते हैं? इन उपकरणों को क्या कहा जाता है?
किसी भी सामान्य सलाह की भी सराहना की!