Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

एडब्ल्यूएस गोंद डेटा कैटलॉग से डेटाबेस की निर्दिष्ट संस्करण तालिका परिभाषा प्राप्त करने के लिए Boto3 का उपयोग कैसे करें?

समस्या का विवरण - डेटाबेस की तालिका परिभाषा को पुनः प्राप्त करने के लिए पायथन में boto3 लाइब्रेरी का उपयोग करें।

उदाहरण - डेटाबेस 'क्यूए-टेस्ट' की तालिका परिभाषा और संस्करण 2 के लिए 'सुरक्षा' के रूप में तालिका को पुनः प्राप्त करें।

इस समस्या को हल करने के लिए दृष्टिकोण/एल्गोरिदम

चरण 1 - अपवादों को संभालने के लिए boto3 और botocore अपवाद आयात करें।

चरण 2 - डेटाबेस_नाम, तालिका_नाम और version_id अनिवार्य पैरामीटर है। यह एक निर्दिष्ट संस्करण के लिए दी गई तालिका की परिभाषा प्राप्त करता है।

चरण 3 - boto3 लाइब्रेरी का उपयोग करके AWS सत्र बनाएं। सुनिश्चित करें कि क्षेत्र_नाम डिफ़ॉल्ट प्रोफ़ाइल में उल्लेख किया गया है। यदि इसका उल्लेख नहीं है, तो स्पष्ट रूप से region_name . पास करें सत्र बनाते समय।

चरण 4 - गोंद के लिए AWS क्लाइंट बनाएं।

चरण 5 - अब get_table_version का उपयोग करें कार्य करें और database_name . पास करें डेटाबेसनाम के रूप में, table_name TableName और version_id . के रूप में संस्करण आईडी पैरामीटर के रूप में। कृपया ध्यान दें कि 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. एडब्ल्यूएस गोंद डेटा कैटलॉग से तालिका को हटाने के लिए Boto3 का उपयोग कैसे करें?

    समस्या का विवरण - अपने खाते में बनाई गई तालिका को हटाने के लिए पायथन में boto3 लाइब्रेरी का उपयोग करें। उदाहरण - आपके खाते में बनाए गए डेटाबेस परीक्षण से एक तालिका सुरक्षा हटाएं। इस समस्या को हल करने के लिए दृष्टिकोण/एल्गोरिदम चरण 1 - अपवादों को संभालने के लिए boto3 और botocore अपवाद आयात करें। च

  1. AWS डेटा कैटलॉग से डेटाबेस को हटाने के लिए Boto3 का उपयोग कैसे करें?

    समस्या का विवरण - अपने खाते में बनाए गए डेटाबेस को हटाने के लिए पायथन में boto3 लाइब्रेरी का उपयोग करें। उदाहरण - आपके खाते में बनाए गए डेटाबेस पोर्टफोलियो को हटा दें। इस समस्या को हल करने के लिए दृष्टिकोण/एल्गोरिदम चरण 1 - अपवादों को संभालने के लिए boto3 और botocore अपवाद आयात करें। चरण 2 - पैरा

  1. एडब्ल्यूएस गोंद डेटा कैटलॉग से क्रॉलर को हटाने के लिए Boto3 का उपयोग कैसे करें?

    समस्या का विवरण - अपने खाते में बनाए गए क्रॉलर को हटाने के लिए पायथन में boto3 लाइब्रेरी का उपयोग करें। उदाहरण - आपके खाते में बनाए गए क्रॉलर पोर्टफोलियो को हटा दें। इस समस्या को हल करने के लिए दृष्टिकोण/एल्गोरिदम चरण 1 - अपवादों को संभालने के लिए boto3 और botocore अपवाद आयात करें। चरण 2 - क्रॉलर