Hadoop में SQOOP क्या है?
अपाचे SQOOP (SQL-to-Hadoop) एक उपकरण है, जो संबंधपरक डेटाबेस, एंटरप्राइज़ डेटा वेयरहाउस और NoSQL सिस्टम जैसे संरचित डेटा स्टोर से HDFS में डेटा के थोक निर्यात और आयात को समर्थन देने के लिए डिज़ाइन किया गया है। यह कनेक्टर आर्किटेक्चर पर आधारित एक डेटा माइग्रेशन टूल है जो नए बाहरी सिस्टम को कनेक्टिविटी प्रदान करने के लिए प्लगइन्स का समर्थन करता है।
Hadoop Sqoop का एक उदाहरण उपयोग मामला एक उद्यम है जो उत्पादन विश्लेषण के लिए RDBMS से दिन के डेटा को लोड करने के लिए रात के Sqoop आयात को चलाता है ताकि आगे के विश्लेषण के लिए एक Hive डेटा वेयरहाउस में बनाया जा सके।
इस अपाचे Sqoop ट्यूटोरियल में आगे, हम Apache Sqoop आर्किटेक्चर के बारे में जानेंगे।
Sqoop वास्तुकला
सभी मौजूदा डेटाबेस मैनेजमेंट सिस्टम SQL मानक को ध्यान में रखकर बनाए गए हैं। हालाँकि, प्रत्येक DBMS कुछ हद तक बोली के संबंध में भिन्न है। इसलिए, यह अंतर तब चुनौती देता है जब यह सिस्टम में डेटा ट्रांसफर की बात आती है। Sqoop Connectors ऐसे घटक हैं जो इन चुनौतियों से पार पाने में मदद करते हैं।
Sqoop Hadoop और बाहरी स्टोरेज सिस्टम के बीच डेटा ट्रांसफर Sqoop के कनेक्टर्स की मदद से संभव हो पाता है।
Sqoop में MySQL, PostgreSQL, Oracle, SQL Server और DB2 सहित लोकप्रिय रिलेशनल डेटाबेसों की एक श्रृंखला के साथ काम करने के लिए कनेक्टर हैं। इन कनेक्टर्स में से प्रत्येक अपने संबंधित डीबीएमएस के साथ बातचीत करना जानता है। जावा के JDBC प्रोटोकॉल का समर्थन करने वाले किसी भी डेटाबेस से जुड़ने के लिए एक सामान्य JDBC कनेक्टर भी है। इसके अलावा, Sqoop Big data कुशलतापूर्वक बल्क ट्रांसफ़र करने के लिए डेटाबेस-विशिष्ट API का उपयोग करने वाले MySQL और PostgreSQL कनेक्टर प्रदान करता है।
इसके अलावा, बड़े डेटा में Sqoop में डेटा स्टोर के लिए विभिन्न थर्ड-पार्टी कनेक्टर हैं, एंटरप्राइज़ डेटा वेयरहाउस (Netezza, Teradata और Oracle सहित) से लेकर NoSQL स्टोर्स (जैसे Couchbase) तक। हालाँकि, ये कनेक्टर Sqoop बंडल के साथ नहीं आते हैं; जिन्हें अलग से डाउनलोड करने की आवश्यकता है और उन्हें मौजूदा Sqoop स्थापना में आसानी से जोड़ा जा सकता है।
हमें सैकूप की आवश्यकता क्यों है?
Hadoop का उपयोग करने वाले विश्लेषणात्मक प्रसंस्करण को Hadoop समूहों में विविध स्रोतों से भारी मात्रा में डेटा लोड करने की आवश्यकता होती है। विषम स्रोतों से भारी मात्रा में डेटा लोड की यह प्रक्रिया और फिर इसे संसाधित करना, चुनौतियों का एक निश्चित सेट के साथ आता है। डेटा संगति बनाए रखना और सुनिश्चित करना और संसाधनों का कुशल उपयोग सुनिश्चित करना, डेटा लोड के लिए सही दृष्टिकोण का चयन करने से पहले विचार करने के लिए कुछ कारक हैं।
प्रमुख मुद्दों:
1. लिपियों का उपयोग कर डेटा लोड
डेटा को लोड करने के लिए स्क्रिप्ट का उपयोग करने का पारंपरिक दृष्टिकोण हडोप में बल्क डेटा लोड के लिए उपयुक्त नहीं है; यह दृष्टिकोण अक्षम और बहुत समय लेने वाला है।
2. मैप-रिड्यूस एप्लिकेशन के माध्यम से बाहरी डेटा तक सीधी पहुंच
मानचित्र-कम अनुप्रयोगों के लिए बाहरी सिस्टम (बिना लोडिंग के Hadoop में) में रहने वाले डेटा तक सीधे पहुंच प्रदान करना इन अनुप्रयोगों को जटिल बनाता है। इसलिए, यह दृष्टिकोण संभव नहीं है।
3. भारी डेटा के साथ काम करने की क्षमता होने के अलावा, Hadoop कई अलग-अलग रूपों में डेटा के साथ काम कर सकता है। इसलिए, ऐसे विषम डेटा को Hadoop में लोड करने के लिए, अलग-अलग टूल विकसित किए गए हैं। Sqoop and Flume दो ऐसे डेटा लोडिंग टूल हैं।
उदाहरणों के साथ इस Sqoop ट्यूटोरियल में, हम Sqoop, Flume और HDFS के बीच अंतर के बारे में जानेंगे।
Hadoop में Sqoop vs Flume vs HDFS
सकप | फुलाना | HDFS |
---|---|---|
Sqoop का उपयोग संरचित डेटा स्रोतों जैसे RDBMS से डेटा आयात करने के लिए किया जाता है। | फ्लूम का उपयोग बल्क स्ट्रीमिंग डेटा को एचडीएफएस में स्थानांतरित करने के लिए किया जाता है। | एचडीएफएस एक वितरित फ़ाइल प्रणाली है जिसका उपयोग डेटा को संग्रहीत करने के लिए Hadoop पारिस्थितिकी तंत्र द्वारा किया जाता है। |
Sqoop में एक कनेक्टर आधारित वास्तुकला है। कनेक्टर्स जानते हैं कि संबंधित डेटा स्रोत से कैसे कनेक्ट करें और डेटा प्राप्त करें। | फ्लुम में एक एजेंट-आधारित वास्तुकला है। यहां, एक कोड लिखा जाता है (जिसे 'एजेंट' कहा जाता है) जो डेटा लाने का ध्यान रखता है। | HDFS में एक वितरित आर्किटेक्चर है जहां डेटा को कई डेटा नोड्स में वितरित किया जाता है। |
HDFS Sqoop का उपयोग कर डेटा आयात के लिए एक गंतव्य है। | डेटा शून्य या अधिक चैनलों के माध्यम से एचडीएफएस में प्रवाह करता है। | एचडीएफएस डेटा भंडारण के लिए एक अंतिम गंतव्य है। |
Sqoop डेटा लोड ईवेंट-चालित नहीं है। | फ़्लुम डेटा लोड को एक घटना द्वारा संचालित किया जा सकता है। | एचडीएफएस केवल इसके लिए उपलब्ध कराए गए डेटा को संग्रहीत करता है। |
संरचित डेटा स्रोतों से डेटा आयात करने के लिए, किसी को केवल Sqoop आदेशों का उपयोग करना पड़ता है, क्योंकि इसके कनेक्टर को पता है कि संरचित डेटा स्रोतों के साथ कैसे संपर्क करें और उनसे डेटा प्राप्त करें। | स्ट्रीमिंग डेटा जैसे कि ट्विटर पर उत्पन्न ट्वीट्स या वेब सर्वर की लॉग फ़ाइलों को लोड करने के लिए, फ्लूम का उपयोग किया जाना चाहिए। फ्लूम एजेंट स्ट्रीमिंग डेटा लाने के लिए बनाए गए हैं। | इसमें डेटा संग्रहीत करने के लिए HDFS की अपनी अंतर्निहित शेल कमांड हैं। HDFS स्ट्रीमिंग डेटा आयात नहीं कर सकता |