ভূমিকা
AWS Glue জব (Job) বুকমার্ক (Job Bookmark) ব্যবহার করে ইনক্রিমেন্টাল ডেটা প্রসেসিং করে (শুধু নতুন/পরিবর্তিত ডেটা প্রসেস করে)। কখনও কখনও বুকমার্ক রিসেট করতে হয় (উদাহরণ: ফুল রি-প্রসেসিং জন্য)। এই নিবন্ধে reset_job_bookmark API ব্যবহার করে বুকমার্ক রিসেট করার পদ্ধতি দেখানো হয়েছে।
সমস্যা বিবরণ
পাইথনে boto3 লাইব্রেরি ব্যবহার করে একটি জবের বুকমার্ক রিসেট করা।
অ্যালগরিদম / ধাপসমূহ
- boto3 এবং botocore.exceptions ইম্পোর্ট করুন।
- ফাংশনটি job_name প্যারামিটার নেবে।
- AWS সেশন এবং Glue ক্লায়েন্ট তৈরি করুন।
glue_client.reset_job_bookmark(JobName=job_name)কল করুন।- রেসপন্সে
JobBookmarkEntryডিকশনারি থাকবে (জব নাম, ভার্সন, রান, অ্যাটেম্পট, বুকমার্ক ডেটা)। - এক্সেপশন হ্যান্ডল করুন।
উদাহরণ কোড
import boto3
from botocore.exceptions import ClientError
def reset_bookmark_of_a_job(job_name):
session = boto3.session.Session()
glue_client = session.client('glue')
try:
response = glue_client.reset_job_bookmark(JobName=job_name)
return response
except ClientError as e:
raise Exception("boto3 client error in reset_bookmark_of_a_job: " + e.__str__())
except Exception as e:
raise Exception("Unexpected error in reset_bookmark_of_a_job: " + e.__str__())
print(reset_bookmark_of_a_job("test_job"))
আউটপুট
{'JobBookmarkEntry': {'JobName': 'test-job', 'Version': 3, 'Run': 3, 'Attempt': 0, 'JobBookmark': ''}, 'ResponseMetadata': {'RequestId': '03d40d90-******************f', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sat, 27 Mar 2021 10:14:58 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '104', 'connection': 'keep-alive', 'x-amzn-requestid': '03d40d90-***************************f'}, 'RetryAttempts': 0}}
ব্যাখ্যা
JobBookmarkEntryএ রিসেট হওয়া বুকমার্কের ডিটেইলস থাকে।JobBookmarkফিল্ড খালি স্ট্রিং হয়ে যায় (রিসেট হয়েছে)।Version,Run,Attemptমেটাডেটা থাকলে।বুকমার্ক রিসেট করার পর পরবর্তী জব রান শুরু থেকে ডেটা প্রসেস করবে।
সতর্কতা
জব রানিং অবস্থায় থাকলে বুকমার্ক রিসেট করা যাবে না (এরর দেবে)। জব বন্ধ থাকতে হবে।