आपको जवाब देने के लिए प्रश्न:
बाहरी तालिकाओं के लिए, हाइव तालिका के निर्माण के दौरान निर्दिष्ट स्थान में डेटा संग्रहीत करता है (आमतौर पर गोदाम निर्देशिका में नहीं)। यदि बाहरी तालिका को गिरा दिया जाता है, तो तालिका मेटाडेटा हटा दी जाती है, लेकिन डेटा नहीं।
आंतरिक तालिकाओं के लिए, हाइव अपने गोदाम निर्देशिका में डेटा संग्रहीत करता है। यदि तालिका को गिरा दिया जाता है तो दोनों तालिका मेटाडेटा और डेटा हटा दिया जाएगा।
आपके सन्दर्भ के लिए,
आंतरिक और बाहरी तालिकाओं के बीच अंतर:
बाहरी तालिकाओं के लिए -
एचडीएफएस सर्वर पर बाह्य तालिका स्टोर की गई फाइलें लेकिन तालिकाएँ स्रोत फ़ाइल से पूरी तरह से जुड़ी नहीं हैं।
यदि आप किसी बाहरी तालिका को हटाते हैं, तो फ़ाइल अभी भी HDFS सर्वर पर बनी रहती है।
एक उदाहरण के रूप में यदि आप HIVE -QL का उपयोग करके HIVE में "table_test" नामक एक बाहरी तालिका बनाते हैं और तालिका को "फ़ाइल" से लिंक करते हैं , तो HIVE से "table_test" को हटाने से HDFS से "फ़ाइल" नहीं हटेगी ।
बाहरी टेबल फाइलें उन लोगों के लिए सुलभ हैं जिनके पास एचडीएफएस फ़ाइल संरचना तक पहुंच है और इसलिए एचडीएफएस फ़ाइल / फ़ोल्डर स्तर पर सुरक्षा को प्रबंधित करने की आवश्यकता है।
मेटा डेटा को मास्टर नोड पर बनाए रखा जाता है, और HIVE से एक बाहरी तालिका को हटाकर केवल मेटाडेटा को हटाता है डेटा / फ़ाइल नहीं।
आंतरिक तालिकाओं के लिए-
- में सेटिंग के आधार पर एक निर्देशिका में संग्रहीत
hive.metastore.warehouse.dir
,
डिफ़ॉल्ट आंतरिक तालिकाओं द्वारा जमा हो जाती है निम्न निर्देशिका में "/ उपयोगकर्ता / छत्ता / गोदाम" आप कॉन्फ़िग फ़ाइल में स्थान अपडेट करके इसे बदल सकते हैं।
- तालिका को हटाने से क्रमशः मास्टर-नोड और एचडीएफएस से मेटाडेटा और डेटा हटा दिया जाता है।
- आंतरिक तालिका फ़ाइल सुरक्षा को केवल HIVE के माध्यम से नियंत्रित किया जाता है। सुरक्षा को HIVE के भीतर प्रबंधित करने की आवश्यकता है, शायद स्कीमा स्तर पर (संगठन पर निर्भर करता है)।
हाइव में आंतरिक या बाहरी टेबल हो सकते हैं, यह एक विकल्प है जो प्रभावित करता है कि डेटा कैसे लोड, नियंत्रित और प्रबंधित किया जाता है।
जब बाहरी तालिकाओं का उपयोग करें:
- डेटा भी हाइव का इस्तेमाल किया बाहर है । उदाहरण के लिए, डेटा फ़ाइलों को एक मौजूदा प्रोग्राम द्वारा पढ़ा और संसाधित किया जाता है जो फ़ाइलों को लॉक नहीं करता है।
- DROP TABLE के बाद भी डेटा को अंतर्निहित स्थान पर रहना होगा। यह तब लागू हो सकता है जब आप किसी एकल डेटा सेट पर या कई स्कीमा के माध्यम से पुनरावृत्ति कर रहे हों।
- हाइव के पास डेटा और नियंत्रण सेटिंग्स, निर्देशिकाएं आदि नहीं होनी चाहिए । आपके पास एक और कार्यक्रम या प्रक्रिया हो सकती है जो उन चीजों को करेगी।
- आप मौजूदा तालिका (AS SELECT) के आधार पर तालिका नहीं बना रहे हैं।
जब आंतरिक तालिका का उपयोग करें:
- डेटा अस्थायी है ।
- आप चाहते हैं कि हाइव तालिका और डेटा के जीवन-चक्र को पूरी तरह से प्रबंधित करे ।
स्रोत:
एचडीआईनाइट: हाइव इंटरनल और एक्सटर्नल टेबल इंट्रो
Hadoop- HIVE में आंतरिक और बाहरी टेबल