2013-06-10 16 views
5

कहता है, मैंने फ़ाइल myFile.csv (एचडीएफएस में स्थित) से बाहरी तालिका "myTable" बनाया है।एचडीएफएस परिवर्तनों के साथ हाइव बाहरी तालिका को अपडेट करना

myFile.csv हर दिन बदल जाता है, तो मुझे दिन में एक बार "myTable" अपडेट करने में दिलचस्पी है।

क्या कोई HiveQL क्वेरी है जो हर दिन तालिका को अद्यतन करने के लिए कहती है?

धन्यवाद।

पीएस

मैं जानना चाहता हूं कि यह निर्देशिकाओं के साथ समान तरीके से काम करता है: मान लें, मैं एचडीएफएस निर्देशिका "myDir" से हाइव विभाजन बनाता हूं, जब "myDir" में 10 फाइलें होती हैं। अगले दिन "myDIr" में 20 फाइलें हैं (10 फाइलें जोड़े गए थे)। क्या मुझे हाइव विभाजन अपडेट करना चाहिए?

उत्तर

6

मूल रूप से हाइव में दो प्रकार की टेबल हैं।

जब भी आप कोई टेबल डेटा बनाते हैं तो आंतरिक गोदाम में प्रतिलिपि बनाई गई है, एक हाइव वेयरहाउस द्वारा प्रबंधित प्रबंधित तालिका है। आप can not have latest data in the query output

अन्य बाहरी तालिका है जिसमें will not copy its data to internal warehouse हाइव है।

तो जब भी आप टेबल पर क्वेरी आग लगते हैं तो यह फ़ाइल से डेटा पुनर्प्राप्त करता है।

तो आप क्वेरी आउटपुट में नवीनतम डेटा भी प्राप्त कर सकते हैं।

That is one of the goals of external table.

तुम भी तालिका ड्रॉप कर सकते हैं और डेटा खो नहीं है।

+0

हमारे उत्तर के लिए धन्यवाद! – sunny

+0

मैं जानना चाहता हूं कि यह निर्देशिकाओं के साथ समान तरीके से काम करता है: कहता है, मैं एचडीएफएस निर्देशिका "myDir" से हाइव विभाजन बनाता हूं, जब "myDir" में 10 फाइलें होती हैं। अगले दिन "myDIr" में 20 फाइलें हैं (10 फाइलें जोड़े गए थे)। क्या मुझे हाइव विभाजन अपडेट करना चाहिए? – sunny

+0

हाँ यह काम करना चाहिए –

4

यदि आप अपनी तालिका बनाने के लिए LOCATION '/path/to/myFile.csv' खंड जोड़ते हैं, तो आपको हाइव में कुछ भी अपडेट नहीं करना चाहिए। यह क्वेरी में फ़ाइल के नवीनतम संस्करण का हमेशा उपयोग करेगा।

संबंधित मुद्दे