How to use Boto3 to get the details of a job that is bookmarked in AWS Glue Data Catalog?

Boto3PythonServer Side ProgrammingProgramming

Example − Retrieve the details of bookmarked job ‘book-job’ in AWS Glue Data Catalog.

Problem Statement − Use boto3 library in Python to retrieve the details of a bookmarked job in AWS Glue Data Catalog.

Approach/Algorithm to solve this problem

Step 1 − Import boto3 and botocore exceptions to handle exceptions.

Step 2bookmarked_job_name is the mandatory parameter. It should have job_name that is already bookmarked, otherwise it will throw EntityNotFoundException.

Step 3 − Create an AWS session using boto3 library. Make sure region_name is mentioned in default profile. If it is not mentioned, then explicitly pass the region_name while creating the session.

Step 4 − Create an AWS client for glue.

Step 5 − Now use get_job_bookmark function and pass bookmarked_job_name as JobName parameter.

Step 6 − It returns the details related to bookmark entry. Note that if job_name is not bookmarked, it will throw an exception as EntityNotFound.

Step 7 − Handle the generic exception if something went wrong while checking the job.

Example

Use the following code to retrieve the details of a bookmarked job in AWS Glue Data Catalog −

import boto3
from botocore.exceptions import ClientError

def retrieves_details_of_bookmarked_job(bookmarked_job_name)
   session = boto3.session.Session()
   glue_client = session.client('glue')
   try:
      response = glue_client.get_job_bookmark(JobName=bookmarked_job_name)
      return response
   except ClientError as e:
      raise Exception("boto3 client error in retrieves_details_of_bookmarked_job: " + e.__str__())
   except Exception as e:
      raise Exception("Unexpected error in retrieves_details_of_bookmarked_job: " + e.__str__())
print(retrieves_details_of_bookmarked_job("book-job"))

Output

{'JobBookmarkEntry': {'JobName': 'book-job', 'Version': 8, 'Run': 2,
'Attempt': 2, 'PreviousRunId':
'jr_dee547c2f78422e34136aa12c85de010b823787833eee04fbf34bc9b8cb4f7b9',
'RunId':
'jr_a035fe15daa31e9a751f02876c26e5d11a829f2689803a9e9643bd61f70273e4',
'JobBookmark':
'{"gdf":{"jsonClass":"HadoopDataSourceJobBookmarkState","timestamps":{"R
UN":"1","HIGH_BAND":"900000","CURR_LATEST_PARTITION":"0","CURR_LATEST_PA
RTITIONS":"","CURR_RUN_START_TIME":"2020-10-
30T13:03:43.730Z","INCLUDE_LIST":""}}}'}, 'ResponseMetadata':
{'RequestId': 'bacf1497-***************996f05b3c1', 'HTTPStatusCode':
200, 'HTTPHeaders': {'date': 'Sun, 28 Feb 2021 13:00:19 GMT', 'contenttype': 'application/x-amz-json-1.1', 'content-length': '535',
'connection': 'keep-alive', 'x-amzn-requestid': 'bacf1497-
******************996f05b3c1'}, 'RetryAttempts': 0}}
raja
Published on 23-Mar-2021 06:35:23
Advertisements