ভূমিকা
AWS Glue ডেটা ক্যাটালগে ইউজার-ডিফাইন্ড ফাংশন (UDF) সংরক্ষণ করা যায়। get_user_defined_functions API ব্যবহার করে এক বা একাধিক ডেটাবেস থেকে প্যাটার্ন ম্যাচ করে ফাংশন ডেফিনিশনগুলো পাওয়া যায়।
সমস্যা বিবরণ
পাইথনে boto3 লাইব্রেরি ব্যবহার করে একটি বা একাধিক ডেটাবেস থেকে ইউজার-ডিফাইন্ড ফাংশন ডেফিনিশনের বিবরণ পাওয়া।
অ্যালগরিদম / ধাপসমূহ
- boto3 এবং botocore.exceptions ইম্পোর্ট করুন।
- ফাংশনটি দুটি ঐচ্ছিক প্যারামিটার নেবে: database_name এবং regular_pattern।
- দুইটাও না দিলে → অ্যাকাউন্টের সব ফাংশন।
- শুধু
database_nameদিলে → সেই ডেটাবেসের সব ফাংশন। - দুইটোই দিলে → প্যাটার্ন ম্যাচ করা ফাংশন।
- শুধু
regular_patternদিলে → অ্যাকাউন্টে প্যাটার্ন ম্যাচ করা সব ফাংশন।
- AWS সেশন এবং Glue ক্লায়েন্ট তৈরি করুন।
glue_client.get_user_defined_functions(DatabaseName=database_name, Pattern=regular_pattern)কল করুন।- রেসপন্সে
UserDefinedFunctionsলিস্ট থাকবে। - এক্সেপশন হ্যান্ডল করুন।
উদাহরণ কোড
import boto3
from botocore.exceptions import ClientError
def get_multiple_function_definition(database_name=None, regular_pattern=None):
session = boto3.session.Session()
glue_client = session.client('glue')
try:
response = glue_client.get_user_defined_functions(
DatabaseName=database_name,
Pattern=regular_pattern
)
return response
except ClientError as e:
raise Exception("boto3 client error in get_multiple_function_definition: " + e.__str__())
except Exception as e:
raise Exception("Unexpected error in get_multiple_function_definition: " + e.__str__())
a = get_multiple_function_definition('employee')
print(a)
আউটপুট
{
'UserDefinedFunctions':[{
'FunctionName': 'insert_employee_record',
'DatabaseName': 'employee',
'ClassName': 'InsertEmployee',
'OwnerName': 'string',
'OwnerType': 'USER'|'ROLE'|'GROUP',
'CreateTime': datetime(2021,03,15),
'ResourceUris':[{
'ResourceType': 'JAR'|'FILE'|'ARCHIVE',
'Uri': 'string'
}]
}]
}
ব্যাখ্যা
Patternপ্যারামিটার SQL LIKE প্যাটার্ন সাপোর্ট করে (%= যেকোনো স্ট্রিং,_= এক ক্যারেক্টার)।ResourceUrisফাংশনের জার/ফাইল/আর্কাইভ লোকেশন ধারণ করে।OwnerTypeহতে পারে USER, ROLE, বা GROUP।