समस्या विवरण - Python में boto3 लाइब्रेरी का उपयोग करके अपने अकाउंट में बने डेटाबेस को डिलीट करें।
उदाहरण - अपने अकाउंट में बने डेटाबेस 'Portfolio' को डिलीट करें।
इस समस्या को हल करने का दृष्टिकोण/एल्गोरिदम
चरण 1 - अपवादों को संभालने के लिए boto3 और botocore एक्सेप्शन्स आयात करें।
चरण 2 - पैरामीटर database_name पास करें जिसे AWS Glue कैटलॉग से डिलीट किया जाना चाहिए।
चरण 3 - boto3 लाइब्रेरी का उपयोग करके AWS सत्र बनाएं। सुनिश्चित करें कि region_name डिफ़ॉल्ट प्रोफ़ाइल में उल्लिखित है। यदि नहीं बताया गया है, तो सत्र बनाते समय region_name को स्पष्ट रूप से पास करें।
चरण 4 - Glue के लिए AWS क्लाइंट बनाएं।
चरण 5 - अब delete_database फंक्शन का उपयोग करें और database_name को Name पैरामीटर के रूप में पास करें।
चरण 6 - यह डेटाबेस को डिलीट करेगा और रिस्पॉन्स मेटाडेटा लौटाएगा।
चरण 7 - जॉब चेक करते समय यदि कुछ गलत हुआ तो सामान्य अपवाद को संभालें।
नोट: इस ऑपरेशन के पूरा होने पर, यूज़र डिलीट किए गए डेटाबेस से संबंधित टेबल्स (और उन टेबल्स से संबंधित सभी टेबल संस्करण और पार्टीशन) और यूज़र-डिफाइंड फंक्शन्स (स्टोर्ड प्रोसीजर्स) तक नहीं पहुंच पाएगा। AWS Glue इन "अनाथ" संसाधनों को समय पर, सेवा के विवेक पर एसिंक्रोनसली डिलीट करता है।
उदाहरण
AWS Glue डेटा कैटलॉग से डेटाबेस डिलीट करने के लिए निम्न कोड का उपयोग करें -
import boto3 from botocore.exceptions import ClientError def delete_a_database(database_name): session = boto3.session.Session() glue_client = session.client('glue') try: response = glue_client.delete_database(Name=database_name) return response except ClientError as e: raise Exception("boto3 client error in delete_a_database: " + e.__str__()) except Exception as e: raise Exception("Unexpected error in delete_a_database: " + e.__str__()) print(delete_a_database("Portfolio"))आउटपुट
{'ResponseMetadata': {'RequestId': '067b667f-0a74d4f30a5b', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sat, 27 Feb 2021 14:54:30 GMT', 'content-type': 'application/x-amz-json-1.1', 'contentlength': '2', 'connection': 'keep-alive', 'x-amzn-requestid': '067b667f0a10-4f99-91be-0a74d4f30a5b'}, 'RetryAttempts': 0}}