কম্পিউটার

AWS গ্লু ডেটা ক্যাটালগ থেকে একটি ডাটাবেসের নির্দিষ্ট সংস্করণ টেবিল সংজ্ঞা পেতে Boto3 কীভাবে ব্যবহার করবেন?


সমস্যা বিবৃতি − ডাটাবেসের টেবিল সংজ্ঞা পুনরুদ্ধার করতে পাইথনে boto3 লাইব্রেরি ব্যবহার করুন।

উদাহরণ − সংস্করণ 2-এর জন্য একটি ডাটাবেস 'QA-পরীক্ষা' এবং টেবিলের 'সুরক্ষা' হিসাবে টেবিলের সংজ্ঞা পুনরুদ্ধার করুন৷

এই সমস্যা সমাধানের জন্য পদ্ধতি/অ্যালগরিদম

ধাপ 1 − ব্যতিক্রমগুলি পরিচালনা করতে boto3 এবং botocore ব্যতিক্রমগুলি আমদানি করুন৷

ধাপ 2ডাটাবেস_নাম, টেবিল_নাম এবং version_id বাধ্যতামূলক পরামিতি। এটি একটি নির্দিষ্ট সংস্করণের জন্য প্রদত্ত টেবিলের সংজ্ঞা নিয়ে আসে৷

ধাপ 3 - boto3 লাইব্রেরি ব্যবহার করে একটি AWS সেশন তৈরি করুন। অঞ্চলের_নাম নিশ্চিত করুন ডিফল্ট প্রোফাইলে উল্লেখ করা আছে। যদি এটি উল্লেখ না থাকে, তাহলে স্পষ্টভাবে অঞ্চল_নাম পাস করুন সেশন তৈরি করার সময়।

পদক্ষেপ 4৷ − আঠার জন্য একটি AWS ক্লায়েন্ট তৈরি করুন৷

ধাপ 5 − এখন get_table_version ব্যবহার করুন ফাংশন এবং ডাটাবেস_নাম পাস করুন DatabaseName হিসাবে, table_name TableName এবং version_id হিসাবে VersionId প্যারামিটার হিসাবে। অনুগ্রহ করে মনে রাখবেন version_id হল স্ট্রিং তাই পূর্ণসংখ্যার মান উল্টানো কমায় স্ট্রিং হিসাবে পাস করা উচিত।

ধাপ 6 - এটি একটি নির্দিষ্ট সংস্করণের জন্য একটি প্রদত্ত টেবিলের সংজ্ঞা প্রদান করে৷

পদক্ষেপ 7 − কাজ চেক করার সময় যদি কিছু ভুল হয়ে থাকে তাহলে জেনেরিক ব্যতিক্রম হ্যান্ডেল করুন।

উদাহরণ

একটি নির্দিষ্ট সংস্করণ −

-এর জন্য টেবিল সংজ্ঞা পুনরুদ্ধার করতে নিম্নলিখিত কোডটি ব্যবহার করুন
import boto3
from botocore.exceptions import ClientError

def retrieves_table_version_details(database_name, table_name, version_id)
   session = boto3.session.Session()
   glue_client = session.client('glue')
   try:
      response = glue_client.get_table_version(DatabaseName = database_name, TableName = table_name, VersionId = version_id)
      return response
   except ClientError as e:
      raise Exception("boto3 client error in retrieves_table_version_details: " + e.__str__())
   except Exception as e:
      raise Exception("Unexpected error in retrieves_table_version_details: " + e.__str__())
print(retrieves_table_version_details('QA-test', 'security', '2'))

আউটপুট

{'TableVersion': {'Table': {'Name': 'security', 'DatabaseName': 'QAtest', 'Owner': 'owner', 'CreateTime': datetime.datetime(2020, 9, 10,
22, 27, 24, tzinfo=tzlocal()), 'UpdateTime': datetime.datetime(2021, 3,
1, 11, 43, 49, tzinfo=tzlocal()), 'LastAccessTime':
datetime.datetime(2020, 9, 10, 22, 27, 24, tzinfo=tzlocal()),
'Retention': 0, 'StorageDescriptor': {'Columns': [{'Name':
'assettypecode', 'Type': 'string'}, {'Name': 'industrysector', 'Type':
'varchar'}, {'Name': 'securitycode', 'Type': 'char'}, {'Name':
'contractsize', 'Type': 'string'}, {'Name': 'conversionperiodenddate',
'Type': 'string'}, {'Name': 'conversionperiodstartdate', 'Type':
'string'}, {'Name': 'expirationdate', 'Type': 'string'}, {'Name':
'issuercountrycode', 'Type': 'string'}, {'Name': 'issuercountrydesc',
'Type': 'string'}, {'Name': 'originalissuedate', 'Type': 'string'},
{'Name': 'securitynamelong', 'Type': 'string'}, {'Name':
'issueshortname', 'Type': 'string'}, {'Name': 'gicssector', 'Type':
'string'}, {'Name': 'maturitydate', 'Type': 'string'}, {'Name':
'optioncode', 'Type': 'string'}, {'Name': 'optiontypename', 'Type':
'string'}, {'Name': 'paramount', 'Type': 'string'}, {'Name':
'priceindex', 'Type': 'string'}, {'Name': 'countrycoderisk', 'Type':
'string'}, {'Name': 'countrydescrisk', 'Type': 'string'}, {'Name':
'countrycode', 'Type': 'string'}], 'Location': 's3://test/security/',
'InputFormat':
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat',
'OutputFormat':
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat',
'Compressed': False, 'NumberOfBuckets': -1, 'SerdeInfo':
{'SerializationLibrary':
'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe',
'Parameters': {'serialization.format': '1'}}, 'BucketColumns': [],
'SortColumns': [], 'Parameters': {'CrawlerSchemaDeserializerVersion':
'1.0', 'CrawlerSchemaSerializerVersion': '1.0', 'UPDATED_BY_CRAWLER':
'security', 'averageRecordSize': '181', 'classification': 'parquet',
'compressionType': 'none', 'objectCount': '5', 'recordCount': '154800',
'sizeKey': '20337230', 'typeOfData': 'file'}, 'StoredAsSubDirectories':
False}, 'PartitionKeys': [], 'TableType': 'EXTERNAL_TABLE',
'Parameters': {'CrawlerSchemaDeserializerVersion': '1.0',
'CrawlerSchemaSerializerVersion': '1.0', 'UPDATED_BY_CRAWLER':
'security', 'averageRecordSize': '181', 'classification': 'parquet',
'compressionType': 'none', 'objectCount': '5', 'recordCount': '154800',
'sizeKey': '20337230', 'typeOfData': 'file'}, 'CreatedBy':
'arn:aws:sts::*********:assumed-role/glue-role/AWS-Crawler'},
'VersionId': '2'}, 'ResponseMetadata': {'RequestId': '431db171-
*******************0', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date':
'Mon, 01 Mar 2021 06:15:30 GMT', 'content-type': 'application/x-amzjson-1.1', 'content-length': '3916', 'connection': 'keep-alive', 'xamzn-requestid': '431db171-*****************0'}, 'RetryAttempts': 0}}

  1. AWS গ্লু ডেটা ক্যাটালগ থেকে টেবিলের একটি নির্দিষ্ট সংস্করণ মুছতে Boto3 কীভাবে ব্যবহার করবেন?

  2. AWS গ্লু ডেটা ক্যাটালগ থেকে একটি টেবিল মুছতে Boto3 কীভাবে ব্যবহার করবেন?

  3. AWS ডেটা ক্যাটালগ থেকে একটি ডাটাবেস মুছতে Boto3 কীভাবে ব্যবহার করবেন?

  4. AWS গ্লু ডেটা ক্যাটালগ থেকে একটি ক্রলার মুছতে Boto3 কীভাবে ব্যবহার করবেন?