hive - हाइव टेबल को एक डेटाबेस से दूसरे स्थानांतरित करना




hiveql (6)

0.14 के बाद से, आप उसी मेटास्टोर में तालिका को एक डेटाबेस से दूसरे स्थान पर ले जाने के लिए निम्नलिखित कथन का उपयोग कर सकते हैं:

use old_database;
alter table table_a rename to new_database.table_a

उपरोक्त विवरण hdfs पर टेबल डेटा भी ले जाएंगे अगर table_a एक प्रबंधित तालिका है।

मुझे एक हाइव टेबल को एक डाटाबेस से दूसरे स्थान पर ले जाने की आवश्यकता है मैं उसे कैसे कर सकता हूँ?


आप कोशिश कर सकते हैं - सीटीएएस

USE NEW_DB;

CREATE TABLE table
AS
SELECT * FROM OLD_DB.table;

DROP TABLE OLD_DB.table;

जिस डेटाबेस को आप माइग्रेट करना चाहते हैं वह आपको डेटाबेस कनेक्टर के साथ प्रदान कर लेगा। चौकोर और डेटाबेस कनेक्टर की सहायता से, आप इसे माइग्रेट करने में सक्षम हो सकते हैं। अच्छा होगा यदि आप उस डेटाबेस के प्रकार के बारे में अधिक विशिष्ट हैं जो आप डेटा को माइग्रेट करना चाहते हैं


यदि तालिकाओं को विभाजित किया जाता है, तो मूल रूप से आप पुराने तालिका से विभाजित डेटा को नए टेबल पर कॉपी कर सकते हैं और पुराने टेबल हटा सकते हैं।

  1. use new_db;
  2. नए डेटाबेस में नई तालिका बनाएं:

    Create Table table_name;
    
  3. इस आदेश का उपयोग करते हुए पुराने तालिकाओं से नए टेबल में डेटा डालें:

    insert into new_table_name partition (partition_column='value') 
      select col1, col2, col3, col4 from old_db.old_table_name 
      where partition_column='value';
    

https://issues.apache.org/jira/browse/HIVE-2496

कि सुधार अभी भी खुला है मुझे पता है कि इंपैला में संभव है, वर्तमान में हाइव में नहीं है

विकास रुका हुआ लगता है आप उस पृष्ठ पर उस मुद्दे के लिए वोट कर सकते हैं जिससे कुछ ध्यान आकर्षित किया जा सके।


बाहरी तालिका new_db.table जैसे पुराने_निर्धारित स्थान बनाएँ '(hdfs फाइल में फ़ाइल का पथ)';

यदि आपके पास तालिका में विभाजन है तो आपको नया_db.table में विभाजन जोड़ना होगा।