সমস্যা বিবরণ − Python-এ boto3 লাইব্রেরি ব্যবহার করে আপনার অ্যাকাউন্টে তৈরি একটি ডেটাবেস ডিলিট করা।
উদাহরণ − আপনার অ্যাকাউন্টে তৈরি 'Portfolio' ডেটাবেস ডিলিট করা।
সমাধানের পদ্ধতি/অ্যালগরিদম
ধাপ ১ − boto3 এবং botocore এক্সসেপশন ইম্পোর্ট করে এক্সসেপশন হ্যান্ডল করা।
ধাপ ২ − database_name প্যারামিটার পাস করা যা AWS Glue Catalog থেকে ডিলিট করা উচিত।
ধাপ ৩ − boto3 লাইব্রেরি ব্যবহার করে AWS সেশন তৈরি করা। নিশ্চিত করুন region_name ডিফল্ট প্রোফাইলে ذکر করা আছে। না থাকলে সেশন তৈরি করার সময় স্পষ্টভাবে region_name পাস করুন।
ধাপ ৪ − Glue-এর জন্য AWS ক্লায়েন্ট তৈরি করা।
ধাপ ৫ − এখন delete_database ফাংশন ব্যবহার করুন এবং database_name কে Name প্যারামিটার হিসেবে পাস করুন।
ধাপ ৬ − এটি ডেটাবেস ডিলিট করবে এবং রেসপন্স মেটাডেটা রিটার্ন করবে।
ধাপ ৭ − জব চেক করার সময় যদি কিছু ভুল হয় তবে জেনেরিক এক্সসেপশন হ্যান্ডল করা।
নোট: এই অপারেশন সম্পন্ন হলে, ইউজার ডিলিট করা ডেটাবেসের টেবিলগুলো (এবং সেই টেবিল들에 স 했고 পर्टিশন ও ভার্সন) এবং ইউজার-ডিফাইনড ফাংশন (স্টোরড প্রসিডিউর) অ্যাক্সেস করতে পারবে না। AWS Glue এই "অনাথ" রিসোর্সগুলো পরিষেবার বিবেচনায় সময়মতো অ্যাসিঙ্ক্রোনাসভাবে ডিলিট করে।
উদাহরণ
AWS Glue Data Catalog থেকে একটি ডেটাবেস ডিলিট করতে নিচের কোড ব্যবহার করুন −
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}}