Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để sử dụng Boto3 lấy thông tin chi tiết của tất cả cơ sở dữ liệu từ Danh mục dữ liệu AWS Glue?

Tuyên bố sự cố - Sử dụng thư viện boto3 trong Python để truy xuất định nghĩa của tất cả các cơ sở dữ liệu.

Ví dụ - Truy xuất định nghĩa của tất cả các cơ sở dữ liệu.

Phương pháp tiếp cận / Thuật toán để giải quyết vấn đề này

Bước 1 - Nhập các ngoại lệ boto3 và botocore để xử lý các ngoại lệ.

Bước 2 - Không có tham số.

Bước 3 - Tạo phiên AWS bằng thư viện boto3. Đảm bảo rằng tên miền được đề cập trong hồ sơ mặc định. Nếu nó không được đề cập, thì hãy chuyển rõ ràng region_name trong khi tạo phiên.

Bước 4 - Tạo ứng dụng AWS cho keo dán.

Bước 5 - Bây giờ sử dụng get_databases chức năng.

Bước 6 - Nó trả về định nghĩa của tất cả các cơ sở dữ liệu có trong tài khoản của người dùng.

Bước 7 - Xử lý ngoại lệ chung nếu có sự cố xảy ra trong khi kiểm tra công việc.

Ví dụ

Sử dụng mã sau để truy xuất định nghĩa của tất cả các cơ sở dữ liệu -

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())

Đầu ra

{'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':
'eyJsYXN0RXZhbHVhdGVkS2V5Ijp7IkhBU0hfS0VZIjp7InMiOiJuLjc4MjI1ODQ4NTg0MSJ
9LCJSQU5HRV9LRVkiOnsicyI6InN************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}}