সমস্যা বিবরণ − Python-এ boto3 লাইব্রেরি ব্যবহার করে সকল ডেটাবেসের ডেফিনিশন পুনরুদ্ধার করা।
উদাহরণ − সকল ডেটাবেসের ডেফিনিশন পুনরুদ্ধার করা।
সমাধানের পদ্ধতি/অ্যালগরিদম
ধাপ ১ − boto3 এবং botocore এক্সসেপশন ইম্পোর্ট করে এক্সসেপশন হ্যান্ডল করা।
ধাপ ২ − কোনো প্যারামিটার নেই।
ধাপ ৩ − boto3 লাইব্রেরি ব্যবহার করে AWS সেশন তৈরি করা। নিশ্চিত করুন region_name ডিফল্ট প্রোফাইলে ذکر করা আছে। না থাকলে সেশন তৈরি করার সময় স্পষ্টভাবে region_name পাস করুন।
ধাপ ৪ − Glue-এর জন্য AWS ক্লায়েন্ট তৈরি করা।
ধাপ ৫ − এখন get_databases ফাংশন ব্যবহার করা।
ধাপ ৬ − এটি ইউজারের অ্যাকাউন্টে থাকা সকল ডেটাবেসের ডেফিনিশন রিটার্ন করে।
ধাপ ৭ − জব চেক করার সময় যদি কিছু ভুল হয় তবে জেনেরিক এক্সসেপশন হ্যান্ডল করা।
উদাহরণ
সকল ডেটাবেসের ডেফিনিশন পুনরুদ্ধার করতে নিচের কোড ব্যবহার করুন −
import boto3 from botocore.exceptions import ClientError def retrieves_all_database_details(): session = boto3.session.Session() glue_client = session.client('glue') try: response = glue_client.get_databases() return response except ClientError as e: raise Exception("boto3 client error in retrieves_all_database_details: " + e.__str__()) except Exception as e: raise Exception("Unexpected error in retrieves_all_database_details: " + e.__str__()) print(retrieves_all_database_details())আউটপুট
{'DatabaseList': [ {'Name': 'QA-test', 'CreateTime': datetime.datetime(2020, 11, 18, 14, 24, 46, tzinfo=tzlocal())}, {'Name': 'custdb', 'CreateTime': datetime.datetime(2020, 8, 31, 20, 30, 9, tzinfo=tzlocal())}, {'Name': 'default', 'Description': 'Default Hive database', 'LocationUri': 'hdfs://ip-************.ec2.internal:****/user/hive/warehouse', 'CreateTime': datetime.datetime(2018, 5, 25, 16, 4, 54, tzinfo=tzlocal())},'NextToken': 'eyJsYXN0RXZhbHVhdGVkS2V5Ijp7IkhBU0hfS0VZIjp7InMiOiJuLjc4MjI1ODQ4NTg0MSJ9LCJSQU5HRV9LRVkiOnsic3I6InN************Mjk3NywibmFub3MiOjIyNTA***********NvbnRleHQiOmZhbHNlfQ==', 'ResponseMetadata': {'RequestId': 'fa0a2069-***********-a0617', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sun, 28 Feb 2021 12:49:37 GMT', 'content-type': 'application/x-amz-json-1.1', 'contentlength': '25749', 'connection': 'keep-alive', 'x-amzn-requestid': 'fa0a2069-************a0617'}, 'RetryAttempts': 0}}