नए NoSQL डेटा स्टोर पर ध्यान केंद्रित करने के बावजूद, रिलेशनल और SQL-आधारित डेटाबेस अभी भी जीवित हैं और अच्छी तरह से हैं। वास्तव में, हमारे साथ काम करने वाले लगभग हर ग्राहक के पास अपने वातावरण में उनके MongoDB, Redis, या Elasticsearch के साथ कुछ MySQL, PostgreSQL या MS SQL सर्वर होते हैं। किसी रिलेशनल डेटाबेस से डेटा को दूसरे डेटास्टोर में माइग्रेशन के रूप में दोहराने के सबसे आसान तरीके पर अनुरोध प्राप्त करना हमारे लिए असामान्य नहीं है, या बस उनके रिलेशनल डेटा में पूर्ण टेक्स्ट सर्च या विज़ुअलाइज़ेशन जैसी सुविधाओं को जोड़ने के लिए। सौभाग्य से, Elasticsearch इसे बहुत आसान बनाता है।
हमने हाल ही में संबंधपरक डेटाबेस को इलास्टिक्स खोज से जोड़ने पर एक विस्तृत श्वेत पत्र लिखा है जो प्रक्रिया और उन निर्णयों का वर्णन करता है जिन्हें करने की आवश्यकता है, लेकिन यदि आप एक त्वरित परिचय और अवलोकन चाहते हैं, तो नीचे पढ़ें।
सही टूलसेट चुनना
वेब पर बहुत सारे माइग्रेशन/प्रतिकृति टूल उपलब्ध हैं, और इस परिदृश्य में अपना कोड लिखना भी एक बड़ा प्रयास नहीं होगा, लेकिन अब तक हमने लॉगस्टैश और जेडीबीसी इनपुट प्लगइन को सबसे अच्छा समाधान पाया है।पी>
लॉगस्टैश एक स्विस आर्मी नाइफ स्टाइल इंजेस्टर, ट्रांसफॉर्मर और डेटा का शिपर है। इसके अलावा, यह देखते हुए कि यह इलास्टिक स्टैक का हिस्सा है, इलास्टिक्स खोज में डेटा को आसानी से शिप करने की इसकी क्षमता किसी से पीछे नहीं है। यह Elasticsearch भाग में शिपिंग का ख्याल रखता है, लेकिन अपने रिलेशनल डेटाबेस से डेटा हथियाने के बारे में क्या?
Logstash ऑफ़र के कई इनपुट में से एक JDBC इनपुट है। JDBC एक मानक है जो परिभाषित करता है कि जावा एप्लिकेशन किसी डेटाबेस तक कैसे पहुंच सकते हैं। जब तक एक डेटाबेस के लिए एक jdbc- अनुरूप ड्राइवर उपलब्ध है, तब तक JDBC लॉगस्टैश इनपुट इसका उपयोग मानक SQL क्वेरी का उपयोग करके डेटा निकालने के लिए कर सकता है। रिलेशनल डेटाबेस के बीच मुफ्त JDBC ड्राइवरों के लिए व्यापक समर्थन और यहां तक कि कुछ गैर-रिलेशनल डेटाबेस के लिए समर्थन को देखते हुए, यह अन्य डेटाबेस को Elasticsearch के साथ जोड़ने का एक आसान रास्ता है।
कनेक्शन बनाना
जब तक आपके पास एक jdbc संगत डेटाबेस और एक संगत ड्राइवर है, तब तक कॉन्फ़िगरेशन जानकारी के कुछ टुकड़ों के साथ लॉगस्टैश को कॉन्फ़िगर करने जितना आसान है:
- JDBC कॉन्फ़िगरेशन जानकारी
- आपके रिलेशनल डेटाबेस के लिए क्रेडेंशियल और कनेक्शन जानकारी
- आपके रिलेशनल डेटाबेस के लिए एक SQL क्वेरी या स्टेटमेंट जो आपके इच्छित डेटा को एक्सट्रेक्ट करता है
- आपके Elasticsearch डेटाबेस के लिए क्रेडेंशियल और कनेक्शन जानकारी
उस जानकारी को देखते हुए, Elasticsearch में डेटा को केवल फेरबदल करना बेहद आसान है।
महत्वपूर्ण प्रश्न पूछना
जब आपके रिलेशनल डेटा को Elasticsearch में दोहराने या माइग्रेट करने की बात आती है, तो बिंदु A से बिंदु B तक डेटा प्राप्त करना केवल आधी लड़ाई है। एक बड़ा और अधिक विचारोत्तेजक प्रश्न यह है कि आप उस डेटा को Elasticsearch में एक बार कैसे मॉडल करना चाहते हैं। Elasticsearch में संबंधपरक डेटा के साथ समस्या, स्पष्ट रूप से संबंध है।
हालांकि इलास्टिक्स खोज सबसे पहले और सबसे महत्वपूर्ण खोज इंजन है, डेटा मॉडल अनिवार्य रूप से एक दस्तावेज़ स्टोर है जिसमें दस्तावेज़ों के बीच संबंधों के लिए केवल न्यूनतम समर्थन होता है। उसके कारण, आपको इस बारे में कुछ निर्णय लेने होंगे कि आप अपने डेटा को Elasticsearch में कैसे मॉडल करना चाहते हैं।
आम तौर पर प्रस्तुत किए जाने वाले तीन मानक विकल्प हैं:
- डेटा को असामान्य बनाएं: मूल रूप से सभी संबंधों को हटा दें और अपनी तालिकाओं में डेटा के प्रत्येक संयोजन के लिए एक अद्वितीय दस्तावेज़ बनाएं
- दस्तावेजों में सरणी: Elasticsearch प्रत्येक दस्तावेज़ के भीतर वस्तुओं की एक सरणी बनाने की क्षमता का समर्थन करता है और यहां तक कि एक विशेष "नेस्टेड" डेटा प्रकार भी प्रदान करता है जो कुछ प्रश्नों को उस सरणी के प्रत्येक सदस्य को एक अलग दस्तावेज़ के रूप में मूल्यांकन करने की अनुमति देता है
- माता-पिता के बच्चों के संबंध: अंतिम विकल्प, और एक सच्चे रिलेशनल डेटाबेस के सबसे करीब इलास्टिक्स खोज में माता-पिता का संबंध है, जो आपको यह निर्दिष्ट करने की अनुमति देता है कि कुछ दस्तावेज़ अन्य दस्तावेज़ों के बच्चे हैं।
हालांकि Elasticsearch आपको डेटा से निपटने के लिए कुछ विकल्प देता है, यह वास्तव में आप पर निर्भर करता है कि कौन सा तरीका सबसे अच्छा काम करता है और आपकी आवश्यकताओं को पूरा करता है।
एक अन्य महत्वपूर्ण निर्णय यह है कि कितना डेटा और कितनी बार इलास्टिक्स खोज में दोहराया जाए। यदि आप माइग्रेट कर रहे हैं, तो उत्तर आसान है, क्योंकि यह सब कुछ का एकमुश्त डंप है। हालाँकि, यदि आप Elasticsearch को द्वितीयक रिपोर्टिंग डेटास्टोर के रूप में उपयोग करना चाहते हैं, तो आपके पास अतिरिक्त विकल्प हैं कि आप कितना डेटा कॉपी करते हैं और किस ताल पर। आप नियमित शेड्यूल पर पूर्ण स्नैपशॉट कॉपी कर सकते हैं, या कुछ कॉलम पर फ़िल्टर करने के लिए लॉगस्टैश जेडीबीसी इनपुट फ़िल्टर में कुछ सुविधाओं का उपयोग कर सकते हैं और केवल उपलब्ध होने पर ही नया डेटा भेज सकते हैं। एक बार फिर, यह सब आपके डेटा पर निर्भर करेगा और आप इसका उपयोग किस लिए कर रहे हैं।
निर्णय और अधिक विवरण
लब्बोलुआब यह है कि आपके डेटास्टोर को जोड़ने के लिए उपकरण और प्रक्रियाएं अब उपलब्ध हैं और वास्तव में आपके डेटा के साथ व्यवहार में लाना बहुत आसान है। इलास्टिक्स खोज में आपके डेटा को कैसे मॉडल किया जाता है, आप इसे कैसे क्वेरी कर सकते हैं, और आप इसकी कल्पना कैसे कर सकते हैं, इसके संबंध में कुछ ट्रेडऑफ़ होंगे। उदाहरण के लिए, अपने रिलेशनल डेटा को असामान्य करने का चयन करने से परिणामी डेटा सेट के आकार पर प्रभाव पड़ेगा, आप कुछ एकत्रीकरण कैसे करेंगे, और आपके लिए कौन से विज़ुअलाइज़ेशन उपलब्ध हैं।
प्रक्रिया को स्पष्ट करने के लिए और उन निर्णयों को कैसे करें, हमने एक श्वेत पत्र लिखा है:रिलेशनल डेटाबेस को इलास्टिक्स खोज से जोड़ना, जो एक नमूना डेटा सेट के लिए इलास्टिक्स खोज प्रतिकृति के संबंध में स्थापित करने के लिए मानक प्रक्रिया की रूपरेखा तैयार करता है, जो विभिन्न मॉडलिंग को प्रभावित करता है। निर्णय परिणामी डेटा पर होते हैं, और अंत में आपके लिए सबसे अच्छा चुनने के तरीके पर कुछ दिशानिर्देश होते हैं।
हमें उम्मीद है यह आपको उपयोगी लगेगा! हमेशा की तरह, आप [email protected] पर संपर्क करके हमसे अधिक जानकारी प्राप्त कर सकते हैं।