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

Làm cách nào để sử dụng Boto3 để xóa một phiên bản cụ thể của bảng khỏi danh mục Dữ liệu Keo AWS?

Tuyên bố sự cố - Sử dụng thư viện boto3 bằng Python để xóa một bảng có phiên bản cụ thể, được tạo trong tài khoản của bạn.

Ví dụ - Xóa bảng ‘bảo mật’ phiên bản 1 khỏi cơ sở dữ liệu ‘kiểm tra’ được tạo trong tài khoản của bạn.

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 - Chuyển tham số database_name, table_name và version_id sẽ bị xóa khỏi AWS Glue Catalog.

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 chức năng delete_table_version và chuyển database_name làm tham số DatabaseName, table_name làm tham số TableName và version_id làm tham số VersionId. Hãy nhớ rằng VersionId là một chuỗi vì vậy nó phải được chuyển vào trong ‘’ và người dùng không thể xóa phiên bản mới nhất của bảng. Chỉ có thể xóa phiên bản cũ của bảng nếu người dùng muốn xóa phiên bản mới nhất, sau đó thả bảng bằng chức năng delete_table .

Bước 6 - Nó sẽ xóa phiên bản cụ thể cũ của bảng và trả về siêu dữ liệu phản hồi.

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 để xóa một phiên bản cụ thể của bảng khỏi cơ sở dữ liệu AWS Glue -

import boto3
from botocore.exceptions import ClientError

def delete_a_table_version_from_database(database_name, table_name, version_id:str):
   session = boto3.session.Session()
   glue_client = session.client('glue')
   try:
      response = glue_client.delelte_table_version(DatabaseName= database_name, Name = table_name, VersionId = version_id)

   return response
      except ClientError as e:
         raise Exception( "boto3 client error in delete_a_table_version_from_database: " + e.__str__())
   except Exception as e:
      raise Exception( "Unexpected error in delete_a_table_version_from_database: " + e.__str__())
print(delete_a_table_version_from_database("test","security","1"))

Đầu ra

{'ResponseMetadata': {'RequestId': '7aa7c3cb…………….-…….8a238c',
'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sun, 21 Feb 2021
04:58:04 GMT', 'content-type': 'application/x-amz-json-1.1', 'contentlength': '2', 'connection': 'keep-alive', 'x-amzn-requestid': '7aa7c3cbf611-494e-b923-8610318a238c'}, 'RetryAttempts': 0}}