टेबल, विभाजन और बाल्टी हाइव डेटा मॉडलिंग के हिस्से हैं।
विभाजन क्या है?
हाइव विभाजन विभाजन कुंजियों के आधार पर तालिकाओं को विभिन्न भागों में विभाजित करके तालिकाओं को व्यवस्थित करने का एक तरीका है।
विभाजन तब सहायक होता है जब तालिका में एक या अधिक विभाजन कुंजियाँ हों। तालिका में डेटा कैसे संग्रहीत किया जाता है, यह निर्धारित करने के लिए विभाजन कुंजी बुनियादी तत्व हैं।
उदाहरण के लिए : -
"ग्राहक के पास कुछ ई-कॉमर्स डेटा हैं जो भारत के परिचालन से संबंधित हैं, जिसमें प्रत्येक राज्य (38 राज्यों) के संचालन का उल्लेख है। यदि हम राज्य स्तंभ को विभाजन कुंजी के रूप में लेते हैं और समग्र रूप से उस भारत डेटा पर विभाजन करते हैं, तो हम सक्षम हो सकते हैं। विभाजन की संख्या (38 विभाजन) प्राप्त करने के लिए जो भारत में मौजूद राज्यों (38) के बराबर है। ऐसे कि प्रत्येक राज्य के आंकड़ों को विभाजन सारणी में अलग-अलग देखा जा सकता है।
विभाजन के लिए नमूना कोड स्निपेट
- सभी राज्यों की तालिका का निर्माण
create table all states(state string, District string,Enrolments string)row format delimitedfields terminated by ',';
- सभी तालिका में डेटा लोड हो रहा है
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
- विभाजन तालिका का निर्माण
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
-
विभाजन के लिए हमें यह संपत्ति निर्धारित करनी होगी
set hive.exec.dynamic.partition.mode=nonstrict
- विभाजन तालिका में डेटा लोड हो रहा है
INSERT OVERWRITE TABLE state_part PARTITION(state)SELECT district,enrolments,state from allstates;
- विभाजन कुंजी के रूप में राज्य के आधार पर विभाजन तालिका का वास्तविक प्रसंस्करण और गठन
- राज्य नाम के रूप में फ़ाइल नाम के साथ एचडीएफएस स्टोरेज में 38 विभाजन आउटपुट होने जा रहे हैं। हम इस चरण में इसकी जांच करेंगे
निम्नलिखित स्क्रीन शॉट्स आपको उपर्युक्त कोड के निष्पादन को दिखाएंगे
उपरोक्त कोड से, हम निम्नलिखित बातें करते हैं
- तालिका का निर्माण सभी राज्यों में 3 कॉलम नाम जैसे राज्य, जिला और नामांकन के साथ होता है
- सभी राज्यों में तालिका में डेटा लोड हो रहा है
- विभाजन कुंजी के रूप में राज्य के साथ विभाजन तालिका का निर्माण
- इस चरण में विभाजन मोड को गैर-सख्त के रूप में सेट करना (यह मोड डायनामिक पार्टीशन मोड को सक्रिय करेगा)
- विभाजन tablestate_part में डेटा लोड हो रहा है
- विभाजन कुंजी के रूप में राज्य के आधार पर विभाजन तालिका का वास्तविक प्रसंस्करण और गठन
- राज्य के नाम के रूप में फ़ाइल नाम के साथ एचडीएफएस भंडारण में 38 विभाजन आउटपुट हैं। हम इस चरण में इसकी जांच करेंगे। इस चरण में, हम एचडीएफएस में 38 विभाजन आउटपुट देख रहे हैं
बाल्टी क्या है?
हाइव में बाल्टी का उपयोग हाइव टेबल-डेटा को कई फाइलों या निर्देशिकाओं में अलग करने में किया जाता है। इसका उपयोग कुशल क्वेरी के लिए किया जाता है।
- उस विभाजन में मौजूद डेटा को बकेट में और विभाजित किया जा सकता है
- विभाजन उस विशेष कॉलम के हैश के आधार पर किया जाता है जिसे हमने तालिका में चुना था।
- बाल्टी प्रत्येक रिकॉर्ड को पढ़ने और इसे बाल्टी में रखने के लिए बैक एंड पर हैशिंग एल्गोरिदम के कुछ रूप का उपयोग करती है
- हाइव में, हमें set.hive.enforce.bucketing = true का उपयोग करके बाल्टी को सक्षम करना होगा ;
चरण 1) नीचे दिखाए अनुसार बाल्टी बनाना।
ऊपर स्क्रीन शॉट से
- हम पहले_नाम, नौकरी_दि, विभाग, वेतन और देश जैसे स्तंभ नामों के साथ नमूना_बकेट बना रहे हैं
- हम 4 बाल्टी बना रहे हैं।
- डेटा को अपने आप लोड होने के बाद, डेटा को 4 बाल्टी में रखें
चरण 2) तालिका नमूना बाल्टी में डेटा लोड हो रहा है
यह मानते हुए कि "कर्मचारी तालिका" पहले से ही हाइव सिस्टम में बनाई गई है। इस चरण में, हम कर्मचारियों के टेबल से टेबल नमूना बाल्टी में डेटा को लोड करते हुए देखेंगे।
इससे पहले कि हम कर्मचारियों के डेटा को बकेट में स्थानांतरित करना शुरू करें, सुनिश्चित करें कि इसमें कॉलम नाम जैसे कि first_name, job_id, विभाग, वेतन और देश शामिल हैं।
यहां हम कर्मचारियों की टेबल से नमूना बाल्टी में डेटा लोड कर रहे हैं।
चरण 3) चरण 1 में बनाए गए 4 बाल्टियों को प्रदर्शित करना
उपरोक्त स्क्रीनशॉट से, हम देख सकते हैं कि कर्मचारियों की तालिका से डेटा चरण 1 में बनाई गई 4 बाल्टियों में स्थानांतरित किया गया है।