Sqoop ट्यूटोरियल: अपाचे Sqoop क्या है? Archiटेकचर और उदाहरण
Hadoop में SQOOP क्या है?
अपाचे SQOOP (SQL-to-Hadoop) एक ऐसा टूल है जिसे रिलेशनल डेटाबेस, एंटरप्राइज़ डेटा वेयरहाउस और NoSQL सिस्टम जैसे स्ट्रक्चर्ड डेटा स्टोर से HDFS में डेटा के बल्क एक्सपोर्ट और इम्पोर्ट को सपोर्ट करने के लिए डिज़ाइन किया गया है। यह एक कनेक्टर आर्किटेक्चर पर आधारित डेटा माइग्रेशन टूल है जो नए बाहरी सिस्टम को कनेक्टिविटी प्रदान करने के लिए प्लगइन्स को सपोर्ट करता है।
Hadoop Sqoop का एक उदाहरण उपयोग मामला एक उद्यम है जो एक उत्पादन लेनदेन RDBMS से दिन के डेटा को लोड करने के लिए एक रात्रिकालीन Sqoop आयात चलाता है। करंड आगे के विश्लेषण के लिए डेटा वेयरहाउस।
इस Apache Sqoop ट्यूटोरियल में आगे, हम Apache Sqoop आर्किटेक्चर के बारे में जानेंगे।
स्कूप Archiटेक्चर
सभी विद्यमान डेटाबेस प्रबंधन तंत्र के साथ डिजाइन किए गए हैं एसक्यूएल मानक को ध्यान में रखते हुए। हालाँकि, प्रत्येक DBMS कुछ हद तक बोली के संबंध में भिन्न होता है। इसलिए, जब सिस्टम में डेटा ट्रांसफर की बात आती है तो यह अंतर चुनौतियाँ पैदा करता है। स्कूप कनेक्टर ऐसे घटक हैं जो इन चुनौतियों को दूर करने में मदद करते हैं।
Sqoop Hadoop और बाह्य भंडारण प्रणाली के बीच डेटा स्थानांतरण Sqoop के कनेक्टर्स की मदद से संभव हो पाया है।
Sqoop में कई लोकप्रिय रिलेशनल डेटाबेस के साथ काम करने के लिए कनेक्टर हैं, जिनमें शामिल हैं MySQL, PostgreSQL, Oracle, SQL सर्वर, और DB2। इनमें से प्रत्येक कनेक्टर जानता है कि अपने संबंधित DBMS के साथ कैसे इंटरैक्ट करना है। किसी भी डेटाबेस से कनेक्ट करने के लिए एक सामान्य JDBC कनेक्टर भी है जो इसका समर्थन करता है Java'का JDBC प्रोटोकॉल। इसके अलावा, Sqoop बिग डेटा अनुकूलित प्रदान करता है MySQL और PostgreSQL कनेक्टर जो कुशलतापूर्वक बल्क ट्रांसफर करने के लिए डेटाबेस-विशिष्ट API का उपयोग करते हैं।

इसके अलावा, बड़े डेटा में Sqoop में डेटा स्टोर के लिए विभिन्न तृतीय-पक्ष कनेक्टर हैं, जो एंटरप्राइज़ से लेकर हैं डेटा वेयरहाउस (नेटेज़ा, टेराडाटा और सहित) Oracle) को NoSQL स्टोर (जैसे कि काउचबेस) में जोड़ा जा सकता है। हालाँकि, ये कनेक्टर Sqoop बंडल के साथ नहीं आते हैं; उन्हें अलग से डाउनलोड करने की आवश्यकता होती है और उन्हें मौजूदा Sqoop इंस्टॉलेशन में आसानी से जोड़ा जा सकता है।
हमें स्कूप की आवश्यकता क्यों है?
Hadoop का उपयोग करके विश्लेषणात्मक प्रसंस्करण के लिए विभिन्न स्रोतों से Hadoop क्लस्टर में बड़ी मात्रा में डेटा लोड करना आवश्यक है। विषम स्रोतों से Hadoop में भारी मात्रा में डेटा लोड करने और फिर उसे संसाधित करने की यह प्रक्रिया चुनौतियों के एक निश्चित सेट के साथ आती है। डेटा लोड के लिए सही दृष्टिकोण का चयन करने से पहले डेटा की स्थिरता बनाए रखना और सुनिश्चित करना तथा संसाधनों का कुशल उपयोग सुनिश्चित करना कुछ ऐसे कारक हैं जिन पर विचार किया जाना चाहिए।
प्रमुख मुद्दों:
1. स्क्रिप्ट का उपयोग करके डेटा लोड करें
डेटा लोड करने के लिए स्क्रिप्ट का उपयोग करने का पारंपरिक तरीका Hadoop में बड़े पैमाने पर डेटा लोड करने के लिए उपयुक्त नहीं है; यह तरीका अकुशल और बहुत समय लेने वाला है।
2. मैप-रिड्यूस एप्लीकेशन के माध्यम से बाहरी डेटा तक सीधी पहुंच
मैप-रिड्यूस अनुप्रयोगों के लिए बाहरी सिस्टम पर मौजूद डेटा तक सीधी पहुँच प्रदान करना (Hadoop में लोड किए बिना) इन अनुप्रयोगों को जटिल बनाता है। इसलिए, यह दृष्टिकोण व्यवहार्य नहीं है।
3. विशाल डेटा के साथ काम करने की क्षमता के अलावा, Hadoop कई अलग-अलग रूपों में डेटा के साथ काम कर सकता है। इसलिए, इस तरह के विषम डेटा को Hadoop में लोड करने के लिए, विभिन्न उपकरण विकसित किए गए हैं। स्कूप और नालिका दो ऐसे डेटा लोडिंग उपकरण हैं।
उदाहरणों के साथ इस Sqoop ट्यूटोरियल में आगे, हम Sqoop, Flume और HDFS के बीच अंतर के बारे में जानेंगे।
Hadoop में Sqoop बनाम Flume बनाम HDFS
| स्कूप | नालिका | एचडीएफएस |
|---|---|---|
| Sqoop का उपयोग RDBMS जैसे संरचित डेटा स्रोतों से डेटा आयात करने के लिए किया जाता है। | फ़्लूम का उपयोग बल्क स्ट्रीमिंग डेटा को HDFS में स्थानांतरित करने के लिए किया जाता है। | एचडीएफएस एक वितरित फ़ाइल सिस्टम है जिसका उपयोग हाडोप पारिस्थितिकी तंत्र द्वारा डेटा संग्रहीत करने के लिए किया जाता है। |
| Sqoop में कनेक्टर आधारित आर्किटेक्चर है। कनेक्टर जानते हैं कि संबंधित डेटा स्रोत से कैसे जुड़ना है और डेटा कैसे प्राप्त करना है। | फ़्लूम में एजेंट-आधारित आर्किटेक्चर है। यहाँ, एक कोड लिखा जाता है (जिसे 'एजेंट' कहा जाता है) जो डेटा लाने का काम करता है। | एचडीएफएस में एक वितरित वास्तुकला है जहां डेटा कई डेटा नोड्स में वितरित किया जाता है। |
| HDFS Sqoop का उपयोग करके डेटा आयात करने का एक गंतव्य है। | डेटा शून्य या अधिक चैनलों के माध्यम से HDFS में प्रवाहित होता है। | एचडीएफएस डेटा भंडारण के लिए एक अंतिम गंतव्य है। |
| Sqoop डेटा लोड इवेंट-संचालित नहीं है। | फ़्लूम डेटा लोड किसी घटना द्वारा संचालित हो सकता है। | एचडीएफएस केवल किसी भी माध्यम से उपलब्ध कराए गए डेटा को संग्रहीत करता है। |
| संरचित डेटा स्रोतों से डेटा आयात करने के लिए, केवल Sqoop कमांड का उपयोग करना होगा, क्योंकि इसके कनेक्टर जानते हैं कि संरचित डेटा स्रोतों के साथ कैसे इंटरैक्ट करना है और उनसे डेटा कैसे प्राप्त करना है। | स्ट्रीमिंग डेटा जैसे कि ट्विटर पर जनरेट किए गए ट्वीट या वेब सर्वर की लॉग फ़ाइलों को लोड करने के लिए, फ़्लूम का उपयोग किया जाना चाहिए। फ़्लूम एजेंट स्ट्रीमिंग डेटा लाने के लिए बनाए गए हैं। | HDFS में डेटा संग्रहीत करने के लिए अपने स्वयं के अंतर्निहित शेल कमांड हैं। HDFS स्ट्रीमिंग डेटा आयात नहीं कर सकता |
