हाइव ETL: JSON, XML, टेक्स्ट डेटा उदाहरण लोड करना
हाइव एक ETL और डेटा वेयरहाउसिंग टूल के रूप में Hadoop इकोसिस्टम डेटा मॉडलिंग, डेटा हेरफेर, डेटा प्रोसेसिंग और डेटा क्वेरी जैसी कार्यक्षमताएं प्रदान करता है। हाइव में डेटा एक्सट्रैक्शन का मतलब है हाइव में टेबल बनाना और संरचित और अर्ध संरचित डेटा लोड करना और साथ ही ज़रूरतों के आधार पर डेटा क्वेरी करना।
बैच प्रोसेसिंग के लिए, हम कस्टम मैप का उपयोग करके कस्टम परिभाषित स्क्रिप्ट लिखने जा रहे हैं और स्क्रिप्टिंग भाषा का उपयोग करके स्क्रिप्ट को कम करने जा रहे हैं। यह प्रदान करता है एसक्यूएल जैसे वातावरण और आसान क्वेरी के लिए समर्थन।
हाइव का उपयोग करके संरचित डेटा के साथ कार्य करना
संरचित डेटा का मतलब है कि डेटा पंक्तियों और स्तंभों के उचित प्रारूप में है। यह कुछ इस तरह है आरडीबीएमएस उचित पंक्तियों और स्तंभों के साथ डेटा.
यहां हम हाइव में टेक्स्ट फ़ाइलों में मौजूद संरचित डेटा लोड करने जा रहे हैं
चरण 1) इस चरण में हम डेटा प्रकारों के साथ कर्मचारियों की आईडी, नाम, आयु, पता, वेतन और विभाग जैसे स्तंभ नामों के साथ “employees_guru” तालिका बना रहे हैं।
उपरोक्त स्क्रीनशॉट से हम निम्नलिखित देख सकते हैं,
- “employees_guru” तालिका का निर्माण
- कर्मचारी.txt से डेटा को तालिका “employees_guru” में लोड किया जा रहा है
चरण 2) इस चरण में हम “Select” कमांड का उपयोग करके इस तालिका में संग्रहीत सामग्री प्रदर्शित कर रहे हैं। हम निम्न स्क्रीन शॉट में तालिका सामग्री देख सकते हैं।
– नमूना कोड स्निपेट
निष्पादित किए जाने वाले प्रश्न
1) Create table employees_guru(Id INT, Name STRING, Age INT, Address STRING, Salary FLOAT, Department STRING) > Row format delimited > Fields terminated by ','; 2) load data local inpath '/home/hduser/Employees.txt' into TABLE employees_guru; 3) select * from employees_guru;
हाइव (XML, JSON) का उपयोग करके अर्ध संरचित डेटा के साथ कार्य करना
हाइव Hadoop पारिस्थितिकी तंत्र में ETL कार्यक्षमताओं का प्रदर्शन करता है ईटीएल उपकरणकुछ प्रकार के अनुप्रयोगों में मैप रिड्यूस करना कठिन हो सकता है, हाइव जटिलता को कम कर सकता है और डेटा वेयरहाउसिंग क्षेत्र के संदर्भ में आईटी अनुप्रयोगों के लिए सबसे अच्छा समाधान प्रदान करता है।
सेमी स्ट्रक्चर्ड डेटा जैसे XML और JSON को हाइव का उपयोग करके कम जटिलता के साथ प्रोसेस किया जा सकता है। सबसे पहले हम देखेंगे कि हम हाइव का उपयोग किस प्रकार कर सकते हैं एक्सएमएल.
XML से हाइव टेबल
इसमें, हम XML डेटा को हाइव तालिकाओं में लोड करेंगे, और हम XML टैग के अंदर संग्रहीत मान प्राप्त करेंगे।
चरण 1) स्ट्रिंग डेटा प्रकार के साथ str कॉलम के साथ तालिका “xmlsample_guru” का निर्माण।
उपरोक्त स्क्रीनशॉट से हम निम्नलिखित देख सकते हैं
- तालिका “xmlsample_guru” का निर्माण
- test.xml से डेटा को “xmlsample_guru” तालिका में लोड करना
चरण 2) का प्रयोग एक्सपाथ () विधि का उपयोग करके हम XML टैग के अंदर संग्रहीत डेटा प्राप्त करने में सक्षम होंगे।
उपरोक्त स्क्रीनशॉट से हम निम्नलिखित देख सकते हैं
- XPATH() विधि का उपयोग करके हम /emp/esal/ और /emp/ename/ के अंतर्गत संग्रहीत मान प्राप्त कर रहे हैं
- XML टैग के अंदर मौजूद मान। इस चरण में, हम टेबल “xmlsample_guru” में XML टैग के अंतर्गत संग्रहीत वास्तविक मान प्रदर्शित कर रहे हैं
चरण 3) इस चरण में, हम तालिका “xmlsample_guru” का कच्चा XML प्राप्त करेंगे और प्रदर्शित करेंगे।
उपरोक्त स्क्रीनशॉट से हम निम्नलिखित देख सकते हैं
- टैग के साथ प्रदर्शित वास्तविक XML डेटा
- यदि हम एकल टैग देखें, तो यह पैरेंट टैग के रूप में “emp” तथा चाइल्ड टैग के रूप में “ename” और “esal” के साथ है।
सांकेतिक टुकड़ा:
निष्पादित किए जाने वाले प्रश्न
1) create table xmlsample_guru(str string); 2) load data local inpath '/home/hduser/test.xml' overwrite into table xmlsample_guru; 3) select xpath(str,'emp/ename/text()'), xpath(str,'emp/esal/text()') from xmlsample_guru;
जेएसओएन (Javaस्क्रिप्ट ऑब्जेक्ट नोटेशन)
ट्विटर और वेबसाइट का डेटा JSON प्रारूप में संग्रहीत किया जाता है। जब भी हम ऑनलाइन सर्वर से डेटा प्राप्त करने का प्रयास करते हैं तो यह JSON फ़ाइलें लौटाता है। डेटा स्टोर के रूप में हाइव का उपयोग करके हम स्कीमा बनाकर JSON डेटा को हाइव टेबल में लोड कर सकते हैं।
JSON से हाइव टेबल
इसमें, हम JSON डेटा को हाइव तालिकाओं में लोड करने जा रहे हैं, और हम JSON स्कीमा में संग्रहीत मान प्राप्त करेंगे।
चरण 1) इस चरण में, हम JSON टेबल नाम “json_guru” बनाने जा रहे हैं। एक बार बनाने के बाद वास्तविक स्कीमा की सामग्री को लोड और प्रदर्शित करना।
उपरोक्त स्क्रीनशॉट से हम निम्नलिखित देख सकते हैं
- तालिका “json_guru” का निर्माण
- test.json से डेटा को “json_guru” तालिका में लोड किया जा रहा है
- json_guru तालिकाओं में संग्रहीत JSON फ़ाइल का वास्तविक स्कीमा प्रदर्शित करना
चरण 2) get_json_object() विधि का उपयोग करके हम JSON पदानुक्रम में संग्रहीत डेटा मान प्राप्त करने में सक्षम हो सकते हैं
उपरोक्त स्क्रीन शॉट से हम निम्नलिखित देख सकते हैं
- get_json_object (str,'$.ecode) का उपयोग करके यह टेबल json_guru से ecode मान प्राप्त कर सकता है। इसी तरह get_json_object (str,'$.ename) ,get_json_object (str,'$.Sali) का उपयोग करके यह टेबल json_guru से ename sal मान प्राप्त करेगा
- json_guru में JSON पदानुक्रम के अंदर संग्रहीत मान
सांकेतिक टुकड़ा
निष्पादित किए जाने वाले प्रश्न
1) create table json_guru(str string); 2) load data inpath 'home/hduser/test.json' into table json_guru; 3) select * from json1; 4) select get_json_object(str,'$.ecode') as ecode, get_json_object(str,'$.ename') as ename ,get_json_object(str,'$.sal') as salary from json_guru;
जटिल JSON से हाइव टेबल तक
इसमें, हम जटिल JSON डेटा को हाइव तालिकाओं में लोड करने जा रहे हैं, और हम JSON स्कीमा में संग्रहीत मान प्राप्त करेंगे
चरण 1) एकल स्तंभ फ़ील्ड के साथ complexjson_guru बनाना
उपरोक्त स्क्रीनशॉट से हम निम्नलिखित देख सकते हैं
- स्ट्रिंग डेटा प्रकार के रूप में एकल स्तंभ फ़ील्ड के साथ complexjson_guru तालिका पर निर्माण
- emp.json जटिल JSON फ़ाइल से complexjson_guru में डेटा लोड करना
चरण 2) get_json_object का उपयोग करके हम JSON फ़ाइल पदानुक्रम के अंदर संग्रहीत वास्तविक सामग्री को पुनः प्राप्त कर सकते हैं।
निम्नलिखित स्क्रीनशॉट से, हम complexjson_guru में संग्रहीत डेटा का आउटपुट देख सकते हैं।
चरण 3) इस चरण में, “Select” कमांड का उपयोग करके हम वास्तव में तालिका “complexjson_guru” के अंदर संग्रहीत जटिल JSON डेटा को देखने में सक्षम हैं
-नमूना कोड स्निपेट,
निष्पादित किए जाने वाले प्रश्न
1) create table complexjson_guru(json string); 2) load data inpath 'home/hduser/emp.json' into table complexjson_guru; 3) select get_json_object(json,'$.ecode') as ecode ,get_json_object(json,'$.b') as code, get_json_object(json,'$.c') from complexjson_guru; 4) select * from complexjson_guru;
वास्तविक समय परियोजनाओं में हाइव - कब और कहाँ उपयोग करें
हाडोप इकोसिस्टम पर हाइव का उपयोग कब और कहाँ करें:
.
- Hadoop पारिस्थितिकी तंत्र पर मजबूत और शक्तिशाली सांख्यिकीय कार्यों के साथ काम करते समय
- संरचित और अर्ध संरचित डेटा प्रसंस्करण के साथ काम करते समय
- Hadoop के साथ डेटा वेयरहाउस टूल के रूप में
- HBASE, Hive के साथ वास्तविक समय डेटा अंतर्ग्रहण का उपयोग किया जा सकता है
कहा पे
- ETL और डेटा वेयरहाउसिंग टूल के आसान उपयोग के लिए
- SQL प्रकार का वातावरण प्रदान करना तथा HIVEQL का उपयोग करके SQL जैसी क्वेरी करना
- विशिष्ट क्लाइंट आवश्यकताओं के लिए कस्टम निर्दिष्ट मैप और रिड्यूसर स्क्रिप्ट का उपयोग और परिनियोजन करना