इम्पाला - एक डेटाबेस ड्रॉप

DROP DATABASE Statementइम्पाला का प्रयोग इम्पाला के एक डेटाबेस को हटाने के लिए किया जाता है। डेटाबेस को हटाने से पहले, इसमें से सभी तालिकाओं को हटाने की सिफारिश की जाती है।

वाक्य - विन्यास

निम्नलिखित का सिंटैक्स है DROP DATABASE बयान।

DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT | 
CASCADE] [LOCATION hdfs_path];

यहाँ, IF EXISTSएक वैकल्पिक क्लाज है। यदि हम इस क्लॉज का उपयोग तब करते हैं जब किसी दिए गए नाम वाला डेटाबेस मौजूद होता है, तो उसे हटा दिया जाएगा। और अगर दिए गए नाम के साथ कोई मौजूदा डेटाबेस नहीं है, तो कोई ऑपरेशन नहीं किया जाता है।

उदाहरण

निम्नलिखित का एक उदाहरण है DROP DATABASEबयान। मान लें कि आपके पास नाम के साथ इम्पाला में एक डेटाबेस हैsample_database

और, यदि आप डेटाबेस का उपयोग करते हुए सूची को सत्यापित करते हैं SHOW DATABASES बयान, आप इसमें नाम देखेंगे।

[quickstart.cloudera:21000] > SHOW DATABASES;

Query: show DATABASES
+-----------------------+ 
| name                  | 
+-----------------------+ 
| _impala_builtins      | 
| default               | 
| my_db                 | 
| sample_database       | 
+-----------------------+ 
Fetched 4 row(s) in 0.11s

अब, आप इस डेटाबेस का उपयोग करके हटा सकते हैं DROP DATABASE Statement जैसा की नीचे दिखाया गया।

< DROP DATABASE IF EXISTS sample_database;

यह निर्दिष्ट डेटाबेस को हटा देगा और आपको निम्न आउटपुट देगा।

Query: drop DATABASE IF EXISTS sample_database;

सत्यापन

आप यह सत्यापित कर सकते हैं कि दिए गए डेटाबेस को हटा दिया गया है या नहीं SHOW DATABASESबयान। यहाँ आप देख सकते हैं कि नामित डेटाबेसsample_database डेटाबेस की सूची से हटा दिया गया है।

[quickstart.cloudera:21000] > SHOW DATABASES;

Query: show DATABASES 
+----------------------+ 
| name                 | 
+----------------------+ 
| _impala_builtins     | 
| default              | 
| my_db                | 
+----------------------+ 
Fetched 3 row(s) in 0.10s 
[quickstart.cloudera:21000] >

झरना

सामान्य तौर पर, डेटाबेस को हटाने के लिए, आपको मैन्युअल रूप से इसमें सभी तालिकाओं को हटाने की आवश्यकता होती है। यदि आप कैस्केड का उपयोग करते हैं, तो इम्पाला हटाने से पहले निर्दिष्ट डेटाबेस के भीतर तालिकाओं को हटा देता है।

उदाहरण

मान लीजिए कि इम्पाला नाम का एक डेटाबेस है sample, और इसमें दो तालिकाएँ हैं, अर्थात् student तथा test। यदि आप इस डेटाबेस को सीधे निकालने का प्रयास करते हैं, तो आपको नीचे दिखाए अनुसार एक त्रुटि मिलेगी।

[quickstart.cloudera:21000] > DROP database sample;
Query: drop database sample 
ERROR: 
ImpalaRuntimeException: Error making 'dropDatabase' RPC to Hive Metastore: 
CAUSED BY: InvalidOperationException: Database sample is not empty. One or more 
tables exist.

का उपयोग करते हुए cascade, आप नीचे दिखाए गए अनुसार सीधे इस डेटाबेस को हटा सकते हैं (इसकी सामग्री को मैन्युअल रूप से हटाए बिना)।

[quickstart.cloudera:21000] > DROP database sample cascade; 
Query: drop database sample cascade

Note - आप "नहीं हटा सकते हैं"current database”इम्पाला में। इसलिए, डेटाबेस को हटाने से पहले, आपको यह सुनिश्चित करने की आवश्यकता है कि वर्तमान संदर्भ उस डेटाबेस के अलावा सेट किया गया है जिसे आप हटाने जा रहे हैं।

Hue Browser का उपयोग करके डेटाबेस को हटाना

इम्पाला क्वेरी संपादक खोलें और टाइप करें DELETE DATABASEइसमें स्टेटमेंट और नीचे दिखाए गए बटन पर क्लिक करें। मान लीजिए कि तीन डेटाबेस हैं, अर्थात्,my_db, my_database, तथा sample_databaseडिफ़ॉल्ट डेटाबेस के साथ। यहां हम my_database नाम के डेटाबेस को हटा रहे हैं।

क्वेरी निष्पादित करने के बाद, कर्सर को ड्रॉपडाउन मेनू के शीर्ष पर ले जाएं। फिर, आपको एक ताज़ा प्रतीक मिलेगा जैसा कि नीचे दिए गए स्क्रीनशॉट में दिखाया गया है। यदि आप रिफ्रेश सिंबल पर क्लिक करते हैं, तो डेटाबेस की सूची रिफ्रेश हो जाएगी और हाल ही में किए गए परिवर्तन उस पर लागू हो जाएंगे।

सत्यापन

पर क्लिक करें drop down शीर्षक के अंतर्गत DATABASEसंपादक के बाईं ओर। वहां, आप सिस्टम में डेटाबेस की एक सूची देख सकते हैं। यहां आप नए बनाए गए डेटाबेस का निरीक्षण कर सकते हैंmy_db जैसा की नीचे दिखाया गया।

यदि आप ध्यान से देखते हैं, तो आप केवल एक डेटाबेस देख सकते हैं, my_db सूची में डिफ़ॉल्ट डेटाबेस के साथ।