কম্পিউটার টিউটোরিয়াল

Boto3 ব্যবহার করে AWS Glue Data Catalog-এ বুকমার্ক করা জবের ডিটেইলস পাওয়া


উদাহরণ − AWS Glue Data Catalog-এ বুকমার্ক করা জব 'book-job'-এর ডিটেইলস পুনরুদ্ধার করা।

সমস্যা বিবরণ − Python-এ boto3 লাইব্রেরি ব্যবহার করে AWS Glue Data Catalog-এ একটি বুকমার্ক করা জবের ডিটেইলস পুনরুদ্ধার করা।

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

ধাপ ১ − boto3 এবং botocore এক্সসেপশন ইম্পোর্ট করে এক্সসেপশন হ্যান্ডল করা।

ধাপ ২ − bookmarked_job_name হলো বাধ্যতামূলক প্যারামিটার। এতে অবশ্যই ইতিমধ্যে বুকমার্ক করা job_name থাকতে হবে, অন্যথায় EntityNotFoundException থ্রো করবে।

ধাপ ৩ − boto3 লাইব্রেরি ব্যবহার করে AWS সেশন তৈরি করা। নিশ্চিত করুন region_name ডিফল্ট প্রোফাইলে ذکر করা আছে। না থাকলে সেশন তৈরি করার সময় স্পষ্টভাবে region_name পাস করুন।

ধাপ ৪ − Glue-এর জন্য AWS ক্লায়েন্ট তৈরি করা।

ধাপ ৫ − এখন get_job_bookmark ফাংশন ব্যবহার করুন এবং bookmarked_job_name কে JobName প্যারামিটার হিসেবে পাস করুন।

ধাপ ৬ − এটি বুকমার্ক এন্ট্রির সাথে সম্পর্কিত ডিটেইলস রিটার্ন করে। মনে রাখবেন যদি job_name বুকমার্ক করা না থাকে, তবে এটি EntityNotFound এক্সসেপশন থ্রো করবে।

ধাপ ৭ − জব চেক করার সময় যদি কিছু ভুল হয় তবে জেনেরিক এক্সসেপশন হ্যান্ডল করা।

উদাহরণ

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

আউটপুট

{'JobBookmarkEntry': {'JobName': 'book-job', 'Version': 8, 'Run': 2, 'Attempt': 2, 'PreviousRunId': 'jr_dee547c2f78422e34136aa12c85de010b823787833eee04fbf34bc9b8cb4f7b9', 'RunId': 'jr_a035fe15daa31e9a751f02876c26e5d11a829f2689803a9e9643bd61f70273e4', 'JobBookmark': '{"gdf":{"jsonClass":"HadoopDataSourceJobBookmarkState","timestamps":{"RUN":"1","HIGH_BAND":"900000","CURR_LATEST_PARTITION":"0","CURR_LATEST_PARTITIONS":"","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}}

  1. Boto3 ব্যবহার করে AWS Glue Data Catalog থেকে একটি কানেকশনের ডিটেইলস পাওয়া

  2. Boto3 ব্যবহার করে AWS Glue Data Catalog-এ থাকা সব ক্লাসিফায়ারের ডিটেইলস পাওয়া

  3. Boto3 ব্যবহার করে AWS Glue Data Catalog থেকে একটি ক্লাসিফায়ারের ডিটেইলস পাওয়া

  4. Boto3 ব্যবহার করে একসাথে একাধিক Glue Job-এর ডিটেইলস পাওয়া