हाइव पार्टीशन और बकेट उदाहरण के साथ

टेबल्स, पार्टीशन और बकेट हाइव डेटा मॉडलिंग के भाग हैं।

विभाजन क्या है?

हाइव पार्टीशन, विभाजन कुंजियों के आधार पर तालिकाओं को अलग-अलग भागों में विभाजित करके तालिकाओं को व्यवस्थित करने का एक तरीका है।

विभाजन तब उपयोगी होता है जब तालिका में एक या अधिक विभाजन कुंजियाँ होती हैं। विभाजन कुंजियाँ यह निर्धारित करने के लिए बुनियादी तत्व हैं कि तालिका में डेटा कैसे संग्रहीत किया जाता है।

उदाहरण के लिए:

"क्लाइंट के पास कुछ ई-कॉमर्स डेटा है जो भारत के संचालन से संबंधित है जिसमें प्रत्येक राज्य (38 राज्य) के संचालन का उल्लेख समग्र रूप से किया गया है। यदि हम राज्य कॉलम को विभाजन कुंजी के रूप में लेते हैं और उस भारत डेटा पर समग्र रूप से विभाजन करते हैं, तो हम विभाजनों की संख्या (38 विभाजन) प्राप्त करने में सक्षम हो सकते हैं जो भारत में मौजूद राज्यों (38) की संख्या के बराबर है। इस तरह से प्रत्येक राज्य के डेटा को विभाजन तालिकाओं में अलग से देखा जा सकता है।

नमूना Code विभाजनों के लिए स्निपेट

  1. सभी राज्यों की तालिका का निर्माण
create table all states(state string, District string,Enrolments string)

row format delimited

fields terminated by ',';
  1. बनाई गई तालिका में सभी अवस्थाओं में डेटा लोड करना
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
  1. विभाजन तालिका का निर्माण
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
  1. विभाजन के लिए हमें यह गुण सेट करना होगा
    set hive.exec.dynamic.partition.mode=nonstrict
  2. विभाजन तालिका में डेटा लोड करना
INSERT OVERWRITE TABLE state_part PARTITION(state)
SELECT district,enrolments,state from  allstates;
  1. विभाजन कुंजी के रूप में राज्य के आधार पर विभाजन तालिकाओं का वास्तविक प्रसंस्करण और निर्माण
  2. HDFS स्टोरेज में 38 पार्टीशन आउटपुट होंगे, जिनका फ़ाइल नाम स्टेट नाम के रूप में होगा। हम इस चरण में इसकी जाँच करेंगे

निम्नलिखित स्क्रीन शॉट आपको उपर्युक्त कोड का निष्पादन दिखाएंगे

हाइव विभाजन

हाइव विभाजन

हाइव विभाजन

हाइव विभाजन

उपरोक्त कोड से हम निम्नलिखित कार्य करते हैं

  1. सभी राज्यों के लिए 3 कॉलम नामों जैसे राज्य, जिला और नामांकन के साथ तालिका का निर्माण
  2. सभी अवस्थाओं में तालिका में डेटा लोड करना
  3. विभाजन कुंजी के रूप में राज्य के साथ विभाजन तालिका का निर्माण
  4. इस चरण में विभाजन मोड को गैर-सख्त के रूप में सेट करना (यह मोड गतिशील विभाजन मोड को सक्रिय करेगा)
  5. विभाजन तालिका में डेटा लोड करनाstate_part
  6. विभाजन कुंजी के रूप में राज्य के आधार पर विभाजन तालिकाओं का वास्तविक प्रसंस्करण और निर्माण
  7. HDFS स्टोरेज में 38 पार्टीशन आउटपुट होंगे, जिनका फ़ाइल नाम स्टेट नाम होगा। हम इस चरण में इसकी जाँच करेंगे। इस चरण में, हम HDFS में 38 पार्टीशन आउटपुट देख रहे हैं।

बकेट क्या है?

हाइव में बकेट का उपयोग हाइव टेबल-डेटा को कई फाइलों या निर्देशिकाओं में अलग करने में किया जाता है। इसका उपयोग कुशल क्वेरी के लिए किया जाता है।

  • उस विभाजन में मौजूद डेटा को आगे बकेट में विभाजित किया जा सकता है
  • यह विभाजन उन विशेष स्तंभों के हैश के आधार पर किया जाता है जिन्हें हमने तालिका में चुना है।
  • बकेट प्रत्येक रिकॉर्ड को पढ़ने और उसे बकेट में रखने के लिए बैकएंड पर हैशिंग एल्गोरिदम के कुछ रूप का उपयोग करते हैं
  • हाइव में, हमें बकेट को सक्षम करने के लिए इसका उपयोग करना होगा set.hive.enforce.bucketing=सच;

चरण 1) नीचे दिखाए अनुसार बकेट बनाएं।

हाइव बकेट

उपरोक्त स्क्रीन शॉट से

  • हम प्रथम नाम, नौकरी आईडी, विभाग, वेतन और देश जैसे कॉलम नामों के साथ नमूना_बकेट बना रहे हैं
  • हम यहां 4 बकेट बना रहे हैं।
  • एक बार डेटा स्वचालित रूप से लोड हो जाए, तो डेटा को 4 बकेट में रखें

चरण 2) टेबल सैंपल बकेट में डेटा लोड करना

यह मानते हुए कि "कर्मचारी तालिका" पहले से ही हाइव सिस्टम में बनाई गई है। इस चरण में, हम कर्मचारियों की तालिका से डेटा को टेबल सैंपल बकेट में लोड होते देखेंगे।

इससे पहले कि हम कर्मचारियों के डेटा को बकेट में डालना शुरू करें, सुनिश्चित करें कि इसमें प्रथम नाम, नौकरी आईडी, विभाग, वेतन और देश जैसे कॉलम नाम शामिल हों।

यहां हम कर्मचारियों की तालिका से नमूना बकेट में डेटा लोड कर रहे हैं।

हाइव बकेट

चरण 3)चरण 4 में बनाई गई 1 बाल्टियाँ प्रदर्शित की जा रही हैं

हाइव बकेट

उपरोक्त स्क्रीनशॉट से हम देख सकते हैं कि कर्मचारियों की तालिका से डेटा चरण 4 में बनाए गए 1 बकेट में स्थानांतरित किया गया है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: