paint-brush
अपाचे पल्सर के साथ स्कीमा चेंज को कैसे प्रबंधित करेंद्वारा@datastax
383 रीडिंग
383 रीडिंग

अपाचे पल्सर के साथ स्कीमा चेंज को कैसे प्रबंधित करें

द्वारा DataStax5m2023/05/30
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

स्कीमा डेटा प्रारूप का खाका प्रदान करते हैं। वे सेवाओं और मिडलवेयर के बीच गोंद हैं। जब खाका बदलता है, तो उसे एक सुंदर घटना की आवश्यकता होती है जो विभिन्न संस्करणों का समर्थन करती है। जानें कि अपाचे पल्सर मैसेजिंग प्लेटफॉर्म विषयों के बीच स्कीमा को प्रबंधित करने का एक सरल, साफ तरीका कैसे प्रदान करता है।
featured image - अपाचे पल्सर के साथ स्कीमा चेंज को कैसे प्रबंधित करें
DataStax HackerNoon profile picture
0-item


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


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


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


यह लेख इस बात पर चर्चा करता है कि पल्सर स्कीमा विकास को कैसे लागू करता है और इसका समर्थन करता है, इस पर गोता लगाने से पहले स्कीमा क्यों विकसित होते हैं।

स्कीमा क्यों विकसित होते हैं

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


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


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


हालांकि, कभी-कभी मौजूदा क्षेत्रों को नई कार्यक्षमता का समर्थन करने के लिए संशोधित करने की आवश्यकता होती है। उदाहरण के लिए, मान लें कि उपयोगकर्ता सटीक आयु बताने में असहज थे, और इसके बजाय, आप 18-24, 25-39,40-49 और 60+ जैसी आयु सीमाओं को कैप्चर करने के लिए एप्लिकेशन को बदलते हैं। आयु स्तंभ को अपने डेटा प्रकार को पूर्णांक से स्ट्रिंग में संशोधित करने की आवश्यकता होगी।


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


इस चुनौती को दूर करने के लिए, डेटा प्लेटफॉर्म इस तरह के परिदृश्यों को संभालने के लिए स्कीमा इवोल्यूशन का समर्थन कर सकते हैं। पल्सर डेटा प्रोसेसिंग के लिए स्कीमा के महत्व को पहचानता है; वास्तव में, यह अंतर्निहित स्कीमा विकास समर्थन को शामिल करके प्रथम श्रेणी के नागरिक की तरह व्यवहार करता है। आइए देखें कि पल्सर यह कैसे करता है।

कैसे पल्सर स्कीमा विकास का समर्थन करता है

पल्सर स्कीमा को `SchemaInfo` नामक डेटा संरचना में परिभाषित करता है। यह एक पल्सर-विशिष्ट डेटा संरचना है, जो स्वयं एक स्कीमा है, जो पल्सर के माध्यम से भेजे गए संदेशों की स्कीमा का वर्णन करता है। प्रत्येक स्कीमाइन्फो एक विषय (संदेश चैनल) से संबंधित है और उस विषय का उपयोग करके निर्मित और उपयोग किए जाने वाले संदेशों का वर्णन करता है।


प्रत्येक `स्कीमाइन्फो` में एक प्रकार होता है जो उपयोग किए जा रहे स्कीमा के प्रकार का विवरण देता है। यह एक पूर्णांक, एक स्ट्रिंग, या एक जटिल स्कीमा जैसे एवरो या प्रोटोबफ से कुछ भी हो सकता है।


समर्थन के लिए स्कीमा विकास , पल्सर किसी विषय के ज्ञात स्कीमा(एस) के साथ इनकमिंग स्कीमा की तुलना करने के लिए स्कीमा अनुकूलता जांच का उपयोग करता है। स्कीमा संगतता जाँच तब होती है जब कोई निर्माता या उपभोक्ता किसी विशेष विषय से जुड़ने का प्रयास करता है। ब्रोकर को कॉन्फ़िगर करते समय रणनीति का चयन किया जाता है, जिसका मान `schemaCompatibilityStrategy` होता है। लक्ष्य मौजूदा स्कीमाइन्फो के साथ कनेक्टिंग क्लाइंट द्वारा प्रदान किए गए `स्कीमाइन्फो` की जांच करना है ताकि यह देखा जा सके कि वे संगत हैं या नहीं।


पल्सर आठ विभिन्न प्रकारों का समर्थन करता है स्कीमा संगतता रणनीतियाँ , जिसे आप परिवर्तन की आवश्यकताओं के आधार पर सेट कर सकते हैं। ये रणनीतियाँ नियमों के साथ भी आती हैं जो बताती हैं कि क्या बदलाव किए जा सकते हैं और संकेत मिलते हैं कि किन ग्राहकों को पहले अपडेट करना है। (प्रत्येक अनुकूलता रणनीति की गहन व्याख्या के लिए ऊपर लिंक किए गए दस्तावेज़ देखें)।


पहले के उदाहरणों पर लौटते हुए, आइए पल्सर की अनुकूलता रणनीति का उपयोग करके स्कीमा परिवर्तनों को लागू करें। सबसे पहले, प्रारंभिक उपयोगकर्ता स्कीमा (पते के बिना) से शुरू करें।


यह आपके स्कीमा का V1 होगा। इसलिए, जब आप पहली बार पल्सर निर्माता या उपभोक्ता को लागू करते हैं, तो इस संस्करण के लिए `स्कीमाइन्फो` संग्रहीत किया जाएगा, और निर्माता और उपभोक्ता उम्मीद के मुताबिक काम करेंगे।


अगला, आप अपने उपयोगकर्ता स्कीमा में नए पता फ़ील्ड जोड़ना चाहते हैं। पहला कदम स्कीमा संगतता रणनीतियों से परामर्श करना है और यह निर्धारित करना है कि इस बदलाव के लिए कौन सा सबसे अच्छा है। दस्तावेज़ीकरण में "अनुमत परिवर्तन" कॉलम का उपयोग करके, आप किसी भी रणनीति की तलाश कर रहे हैं जो नए क्षेत्रों को जोड़ने की अनुमति देता है। यह आपको BACKWARD, BACKWARD_TRANSITIVE, FORWARD और FORWARD_TRANSITIVE देता है।


बैकवर्ड का उपयोग तब किया जाना चाहिए जब इस बात की कोई गारंटी न हो कि पुराने संस्करण का उपयोग करने वाले उपभोक्ता नए स्कीमा को समझ सकते हैं। फॉरवर्ड का उपयोग तब किया जाता है जब नवीनतम स्कीमा संस्करण वाले उपभोक्ता पुराने संस्करणों में डेटा पढ़ने में सक्षम नहीं हो सकते हैं। यदि आप नए स्कीमा का उपयोग करने के लिए पहले सभी उपभोक्ताओं को अपडेट करना चाहते हैं, तो बैकवर्ड रणनीति का उपयोग करें। अन्यथा, आगे सबसे अच्छा है।


बड़ी तस्वीर को देखते हुए, पल्सर किसी विषय की स्कीमा को विकसित करने के पूरे कार्य को संदर्भित करता है स्कीमा सत्यापन . यह एक निर्माता या उपभोक्ता का संयोजन है जो `स्कीमाइन्फो` प्रदान करता है, विषय के लिए चुनी गई अनुकूलता रणनीति, और ब्रोकर तय करता है कि क्या करना है।

निष्कर्ष

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


पल्सर की अंतर्निहित स्कीमा विकास अवधारणाएँ इन परिवर्तनों से निपटने में मदद करती हैं। स्कीमा संगतता रणनीतियों का उपयोग करके, यह नियमों को परिभाषित कर सकता है कि स्कीमा के विभिन्न संगत संस्करण कितने भिन्न हैं। पल्सर स्कीमा सत्यापन प्रक्रिया के संयोजन के साथ इसका उपयोग करता है जो तब इन नियमों का उपयोग यह निर्धारित करने के लिए करता है कि किसी विशेष विषय से कनेक्ट होने पर उपभोक्ता द्वारा कौन से स्कीमा का उपयोग किया जा सकता है।


यहाँ भी प्रकाशित हुआ।