Hadoop इकोसिस्टम के शीर्ष पर एक ETL और डेटा वेयरहाउसिंग टूल के रूप में हाइव, डेटा मॉडलिंग, डेटा हेरफेर, डेटा प्रोसेसिंग और डेटा क्वेरी जैसी कार्यक्षमता प्रदान करता है। हाइव में डेटा एक्सट्रैक्शन का अर्थ है हाइव में टेबल का निर्माण और संरचित और अर्ध संरचित डेटा लोड करने के साथ-साथ आवश्यकताओं के आधार पर डेटा को क्वेरी करना।
बैच प्रसंस्करण के लिए, हम एक कस्टम मानचित्र का उपयोग करके कस्टम परिभाषित स्क्रिप्ट लिखने जा रहे हैं और स्क्रिप्टिंग भाषा का उपयोग करके स्क्रिप्ट को कम कर सकते हैं। यह SQL को पर्यावरण और आसान क्वेरी के लिए समर्थन प्रदान करता है।
इस ट्यूटोरियल में, आप सीखेंगे-
- हाइव का उपयोग करके संरचित डेटा के साथ काम करना
- हाइव (XML, JSON) का उपयोग करके सेमी स्ट्रक्चर्ड डेटा के साथ काम करना
- रियल टाइम प्रोजेक्ट्स में हाइव - कब और कहां इस्तेमाल करें
हाइव का उपयोग करके संरचित डेटा के साथ काम करना
संरचित डेटा का मतलब है कि डेटा पंक्तियों और स्तंभों के उचित प्रारूप में है। यह उचित पंक्तियों और स्तंभों के साथ RDBMS डेटा की तरह है।
यहां हम हाइव में टेक्स्ट फ़ाइलों में मौजूद संरचित डेटा को लोड करने जा रहे हैं
चरण 1) इस चरण में हम डेटा नाम के साथ कर्मचारियों के आईडी, नाम, आयु, पता, वेतन और विभाग जैसे स्तंभ नामों के साथ तालिका "कर्मचारी_गुरु" बना रहे हैं।
उपरोक्त स्क्रीनशॉट से, हम निम्नलिखित देख सकते हैं,
- तालिका का निर्माण "कर्मचारी_गुरु"
- Employees.txt से तालिका "कर्मचारी_गुरु" में डेटा लोड कर रहा है
चरण 2) इस चरण में हम "चयन करें" कमांड का उपयोग करके इस तालिका में संग्रहीत सामग्री प्रदर्शित कर रहे हैं। हम निम्नलिखित स्क्रीन शॉट में तालिका सामग्री देख सकते हैं।
- सैंपल कोड स्निपेट
किए जाने वाले प्रश्न
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) का उपयोग करके सेमी स्ट्रक्चर्ड डेटा के साथ काम करना
Hive ETL उपकरण के रूप में कार्य करके Hadoop पारिस्थितिकी तंत्र में ETL कार्य करता है। कुछ प्रकार के अनुप्रयोगों में मानचित्र को कम करना मुश्किल हो सकता है, हाइव जटिलता को कम कर सकता है और डेटा वेयरहाउसिंग क्षेत्र के संदर्भ में आईटी अनुप्रयोगों के लिए सबसे अच्छा समाधान प्रदान करता है।
XML और JSON जैसे अर्ध संरचित डेटा को हाइव का उपयोग करके कम जटिलता के साथ संसाधित किया जा सकता है। पहले हम देखेंगे कि हम XML के लिए हाइव का उपयोग कैसे कर सकते हैं।
XML को HIVE TABLE
इसमें, हम XML डेटा को हाइव टेबल में लोड करने जा रहे हैं, और हम XML टैग के अंदर संग्रहीत मूल्यों को प्राप्त करेंगे।
चरण 1) स्ट्रिंग डेटा प्रकार के साथ तार के साथ तालिका "xmlsample_guru" का निर्माण।
उपरोक्त स्क्रीनशॉट से, हम निम्नलिखित देख सकते हैं
- तालिका का निर्माण "xmlsample_guru"
- तालिका "xmlsample_guru" में test.xml से डेटा लोड कर रहा है
चरण 2) एक्सपीथ () विधि का उपयोग करके हम एक्सएमएल टैग के अंदर संग्रहीत डेटा प्राप्त कर पाएंगे।
उपरोक्त स्क्रीनशॉट से, हम निम्नलिखित देख सकते हैं
- XPATH () पद्धति का उपयोग करके हम / साम्राज्य / esal / और / emp / ename / के तहत संग्रहीत मूल्यों को प्राप्त कर रहे हैं
- XML टैग के अंदर मौजूद मान। इस चरण में, हम "xmlsample_guru" तालिका में XML टैग के तहत संग्रहीत वास्तविक मान प्रदर्शित कर रहे हैं
चरण 3) इस चरण में, हम "xmlsample_guru।"
उपरोक्त स्क्रीनशॉट से, हम निम्नलिखित देख सकते हैं
- टैग के साथ प्रदर्शित वास्तविक XML डेटा
- यदि हम सिंगल टैग का निरीक्षण करते हैं, तो यह "एनाम" के साथ पैरेंट टैग के रूप में "एनैम" और "एलाल" के साथ चाइल्ड टैग के रूप में है।
सांकेतिक टुकड़ा:
किए जाने वाले प्रश्न
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;
JSON (जावास्क्रिप्ट ऑब्जेक्ट संकेतन)
Twitter और वेबसाइटों का डेटा JSON प्रारूप में संग्रहीत किया जाता है। जब भी हम ऑनलाइन सर्वर से डेटा लाने की कोशिश करते हैं तो यह JSON फाइल लौटाएगा। डेटा स्टोर के रूप में हाइव का उपयोग करके हम स्कीमा बनाकर HSON तालिकाओं में JSON डेटा लोड करने में सक्षम हो सकते हैं।
JSON को HIVE TABLE
इसमें, हम JSON डेटा को Hive तालिकाओं में लोड करने जा रहे हैं, और हम JSON स्कीमा में संग्रहीत मान प्राप्त करेंगे।
चरण 1) इस चरण में, हम JSON तालिका का नाम "json_guru" बनाने जा रहे हैं। एक बार वास्तविक स्कीमा की सामग्री को लोड करना और प्रदर्शित करना।
उपरोक्त स्क्रीनशॉट से, हम निम्नलिखित देख सकते हैं
- तालिका "json_guru" का निर्माण
- तालिका "json_guru" में test.json से डेटा लोड हो रहा है
- JSON_guru टेबल में संग्रहीत JSON फ़ाइल का वास्तविक स्कीमा प्रदर्शित करना
चरण 2) get_json_object () विधि का उपयोग करके हम JSON पदानुक्रम में संग्रहीत डेटा मान प्राप्त करने में सक्षम हो सकते हैं
उपरोक्त स्क्रीन शॉट से हम निम्नलिखित देख सकते हैं
- Get_json_object (str, '$। Ecode) का उपयोग करके यह टेबल json_guru से एकोड मान प्राप्त कर सकता है। इसी तरह get_json_object (str, '$। Ename), get_json_object (str,' $। Sali) का उपयोग करते हुए यह टेबल json_guru से लार के समान मान लाएगा।
- 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 को HIVE TABLE
इसमें, हम कॉम्प्लेक्स JSON डेटा को हाइव टेबल में लोड करने जा रहे हैं, और हम JSON स्कीमा में संग्रहीत मान प्राप्त करेंगे
चरण 1) एकल स्तंभ फ़ील्ड के साथ complexjson_guru बनाना
उपरोक्त स्क्रीनशॉट से, हम निम्नलिखित देख सकते हैं
- स्ट्रिंग डेटा प्रकार के रूप में एकल स्तंभ फ़ील्ड के साथ तालिका complexjson_guru पर निर्माण
- Emp.json complex JSON फ़ाइल से complexjson_guru में डेटा लोड कर रहा है
चरण 2) get_json_object का उपयोग करके हम JSON फ़ाइल पदानुक्रम के अंदर संग्रहीत वास्तविक सामग्री को पुनः प्राप्त कर सकते हैं।
निम्नलिखित स्क्रीनशॉट से, हम complexjson_guru में संग्रहीत डेटा का आउटपुट देख सकते हैं।
चरण 3) इस चरण में, "सेलेक्ट" कमांड का उपयोग करके हम वास्तव में टेबल "कॉम्प्लेक्सजेनगुरु" के अंदर जमा किए गए जटिल 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 Ecosystem पर Hive का उपयोग कब और कहां करना है:
कब
- Hadoop पारिस्थितिकी तंत्र पर मजबूत और शक्तिशाली सांख्यिकीय कार्यों के साथ काम करते समय
- जब संरचित और अर्ध संरचित डाटा प्रोसेसिंग के साथ काम करना
- Hadoop के साथ डेटा वेयरहाउस टूल के रूप में
- HBASE के साथ वास्तविक समय डेटा अंतर्ग्रहण, हाइव का उपयोग किया जा सकता है
कहा पे
- ETL और डेटा वेयरहाउसिंग टूल के आसानी से उपयोग के लिए
- SQL प्रकार वातावरण प्रदान करने के लिए और HIVEQL का उपयोग कर SQL की तरह क्वेरी करने के लिए
- विशिष्ट क्लाइंट आवश्यकताओं के लिए कस्टम निर्दिष्ट मानचित्र और रिड्यूसर लिपियों का उपयोग और तैनाती के लिए
- अगला