मार्केट

बाज़ार डेटा लोड हो रहा है…

विलंबित भाव
लाइव टीवी
राजनीति

गूगल क्लाउड ने SQL सर्वर से PostgreSQL माइग्रेशन की प्रक्रिया समझाई

गूगल क्लाउड ने बताया कि उसकी Database Migration Service SQL सर्वर स्टोर्ड प्रोसीजर को PostgreSQL कोड में कैसे बदलती है, जिसमें मल्टीपल रिजल्ट सेट और कर्सर प्रबंधन की चुनौतियों का समाधान शामिल है।

गूगल क्लाउड ने SQL सर्वर से PostgreSQL माइग्रेशन की प्रक्रिया समझाई
Graphic: Amrit Khabar NewsroomImage rights policy

मुख्य तथ्य

सेवा
Database Migration Service
मुख्य बदलाव
SQL सर्वर प्रोसीजर को PostgreSQL फंक्शन या प्रोसीजर में बदलना
निर्णय मानदंड
रिजल्ट सेट की संख्या और स्केलर रिटर्न वैल्यू
मल्टीपल रिजल्ट सेट
SETOF refcursor लौटाने वाले फंक्शन में बदलना
स्केलर रिटर्न
return_value कर्सर में रखा जाता है
परीक्षण
BEGIN और COMMIT के बीच ट्रांजेक्शन ब्लॉक में

पृष्ठभूमि

गूगल क्लाउड ने विस्तार से बताया है कि उसकी Database Migration Service SQL सर्वर स्टोर्ड प्रोसीजर को PostgreSQL कोड में कैसे परिवर्तित करती है। यह प्रक्रिया बड़े डेटाबेस माइग्रेशन प्रोजेक्ट्स में आम बाधा को दूर करने के लिए डिज़ाइन की गई है, जिसमें मल्टीपल रिजल्ट सेट वाले स्टोर्ड प्रोसीजर शामिल हैं।

सेवा एक स्वचालित निर्णय प्रक्रिया का उपयोग करती है ताकि यह तय किया जा सके कि SQL सर्वर प्रोसीजर को PostgreSQL स्टोर्ड प्रोसीजर या फंक्शन में बदला जाए। यह निर्णय इस बात पर निर्भर करता है कि मूल रूटीन कितने रिजल्ट सेट लौटाता है और क्या वह स्केलर रिटर्न वैल्यू का भी उपयोग करता है।

गूगल क्लाउड के मॉडल के अनुसार, एक रिजल्ट सेट या केवल स्केलर रिटर्न वैल्यू वाली प्रोसीजर को PostgreSQL स्टोर्ड प्रोसीजर में बदला जाता है। वे रूटीन जो मल्टीपल रिजल्ट सेट लौटाते हैं, या रिजल्ट सेट के साथ स्केलर रिटर्न वैल्यू को जोड़ते हैं, उन्हें फंक्शन में बदला जाता है जो SETOF refcursor लौटाते हैं।

वर्तमान स्थिति

यह मुद्दा दोनों डेटाबेस सिस्टम के बीच गहरे अंतर को दर्शाता है। SQL सर्वर एक ही निष्पादन पथ से कई टेबुलर परिणाम स्ट्रीम कर सकता है, जबकि PostgreSQL स्पष्ट कर्सर प्रबंधन के माध्यम से कई डेटासेट को संभालता है।

गूगल क्लाउड ने इस प्रक्रिया को एक हेल्थकेयर रिपोर्टिंग उदाहरण के साथ समझाया। उस परिदृश्य में, एक मास्टर प्रोसीजर मरीज का विवरण प्राप्त करता है, लैब परिणामों के लिए एक चाइल्ड प्रोसीजर को कॉल करता है, डॉक्टर विज़िट के लिए दूसरे को कॉल करता है, और चार रिजल्ट सेट के साथ एक स्टेटस इंटीजर लौटा सकता है जो बताता है कि मरीज मिला या नहीं।

PostgreSQL अनुवाद में, एक सरल चाइल्ड प्रोसीजर जो एक रिजल्ट सेट लौटाता है, वह INOUT refcursor पैरामीटर के साथ एक मानक प्रोसीजर बन जाता है। अधिक जटिल रूटीन फंक्शन बन जाते हैं जो क्रम में कर्सर खोलते हैं और प्रत्येक को अलग-अलग लौटाते हैं।

SQL सर्वर प्रोसीजर वर्गीकरण
श्रेणी विवरण
कोई रिजल्ट सेट नहींप्रोसीजर में कोई टेबुलर आउटपुट नहीं
एक रिजल्ट सेटएक टेबुलर आउटपुट
मल्टीपल या डायनामिक रिजल्ट सेटएक से अधिक या परिवर्तनशील संख्या में रिजल्ट सेट
गूगल क्लाउड के अनुसार, सेवा प्रत्येक SQL सर्वर प्रोसीजर को तीन श्रेणियों में वर्गीकृत करती है।

प्रभाव

इस डिज़ाइन का एक हिस्सा स्केलर रिटर्न वैल्यू को संभालना है। रिटर्न वैल्यू को रिजल्ट फ्लो के बाहर रखने के बजाय, अनुवादित PostgreSQL फंक्शन निष्पादन के अंत में return_value नामक एक समर्पित कर्सर खोलता है और स्केलर इंटीजर को वहां रखता है।

यह बदलाव एप्लिकेशन और टेस्टिंग टीमों के लिए माइग्रेटेड रूटीन से आउटपुट लेने के तरीके को प्रभावित करता है। एकल निष्पादन प्रतिक्रिया से सीधे पंक्तियों को पढ़ने के बजाय, कॉलिंग लेयर को कर्सर संदर्भ प्राप्त होते हैं और उसे प्रत्येक डेटासेट को अलग से और क्रम में प्राप्त करना होता है।

PostgreSQL में इन अनुवादित ऑब्जेक्ट्स का परीक्षण एक स्पष्ट ट्रांजेक्शन ब्लॉक के अंदर होना चाहिए। चूंकि PostgreSQL कर्सर ट्रांजेक्शन जीवनचक्र से बंधे होते हैं, निष्पादन और डेटा पुनर्प्राप्ति BEGIN और COMMIT के बीच होनी चाहिए।

भविष्य की संभावनाएँ

विश्लेषणात्मक परिदृश्य: नीचे दी गई संभावनाएं निश्चित भविष्यवाणी नहीं हैं।

गूगल क्लाउड ने स्टोर्ड प्रोसीजर को वर्गीकृत करने के लिए उपयोग की जाने वाली आंतरिक विश्लेषण प्रक्रिया का भी वर्णन किया। सेवा पहले प्रोसीजर बॉडी को सीधे रिजल्ट सेट के लिए स्कैन करती है, स्पष्ट SELECT स्टेटमेंट की तलाश करती है जो टेबुलर आउटपुट उत्पन्न करते हैं।

यदि किसी प्रोसीजर में कंडीशनल SELECT या EXEC स्टेटमेंट होते हैं, तो रिजल्ट सेट की संख्या रन के बीच भिन्न हो सकती है, इसलिए रूटीन को निश्चित के बजाय गतिशील रिजल्ट काउंट वाला माना जाता है। नेस्टेड प्रोसीजर कॉल के लिए, सेवा कॉल के बीच एक निर्देशित ग्राफ बनाती है और डेप्थ-फर्स्ट सर्च का उपयोग करके रिजल्ट-सेट काउंट को पदानुक्रम में वापस प्रचारित करती है।

यह ग्राफ-आधारित विधि यह निर्धारित करने के लिए है कि क्या किसी शीर्ष-स्तरीय प्रोसीजर में कोई रिजल्ट सेट नहीं है, एक रिजल्ट सेट है, या चाइल्ड रूटीन के बाद कई या गतिशील रिजल्ट सेट हैं। यदि संगठन बड़े पैमाने पर लीगेसी SQL सर्वर सिस्टम को स्थानांतरित करते हैं, तो उन्हें न केवल सिंटैक्स बल्कि निष्पादन व्यवहार को भी बदलना पड़ सकता है, और मैन्युअल पुनर्लेखन अव्यावहारिक हो सकता है।

स्रोत: itbrief.co.nz

इस समाचार को साझा करें