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

Boto3 ব্যবহার করে AWS Glue ডেটা ক্যাটালগ থেকে একাধিক ফাংশন ডেফিনিশনের বিবরণ পাওয়া


ভূমিকা

AWS Glue ডেটা ক্যাটালগে ইউজার-ডিফাইন্ড ফাংশন (UDF) সংরক্ষণ করা যায়। get_user_defined_functions API ব্যবহার করে এক বা একাধিক ডেটাবেস থেকে প্যাটার্ন ম্যাচ করে ফাংশন ডেফিনিশনগুলো পাওয়া যায়।

সমস্যা বিবরণ

পাইথনে boto3 লাইব্রেরি ব্যবহার করে একটি বা একাধিক ডেটাবেস থেকে ইউজার-ডিফাইন্ড ফাংশন ডেফিনিশনের বিবরণ পাওয়া।

অ্যালগরিদম / ধাপসমূহ

  1. boto3 এবং botocore.exceptions ইম্পোর্ট করুন।
  2. ফাংশনটি দুটি ঐচ্ছিক প্যারামিটার নেবে: database_name এবং regular_pattern।
    • দুইটাও না দিলে → অ্যাকাউন্টের সব ফাংশন।
    • শুধু database_name দিলে → সেই ডেটাবেসের সব ফাংশন।
    • দুইটোই দিলে → প্যাটার্ন ম্যাচ করা ফাংশন।
    • শুধু regular_pattern দিলে → অ্যাকাউন্টে প্যাটার্ন ম্যাচ করা সব ফাংশন।
  3. AWS সেশন এবং Glue ক্লায়েন্ট তৈরি করুন।
  4. glue_client.get_user_defined_functions(DatabaseName=database_name, Pattern=regular_pattern) কল করুন।
  5. রেসপন্সে UserDefinedFunctions লিস্ট থাকবে।
  6. এক্সেপশন হ্যান্ডল করুন।

উদাহরণ কোড

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।


  1. Boto3 ব্যবহার করে একসাথে একাধিক ট্রিগারের ডিটেইলস পাওয়া

  2. Boto3 এবং AWS Client ব্যবহার করে S3 বাকেটের অনারশিপ কন্ট্রোল ডিটেইলস পাওয়া

  3. Boto3 এবং AWS Client ব্যবহার করে S3 বাকেটের নোটিফিকেশন কনফিগারেশন ডিটেইলস পাওয়া

  4. Boto3 এবং AWS Client ব্যবহার করে S3 বাকেটের লগিং বিবরণ কীভাবে পেতে হয়?