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

Boto3 ব্যবহার করে AWS Glue ডেটা ক্যাটালগ থেকে নির্দিষ্ট ইউজার-ডিফাইন্ড ফাংশনের বিবরণ পাওয়া


ভূমিকা

একটি নির্দিষ্ট ডেটাবেসের নির্দিষ্ট ইউজার-ডিফাইন্ড ফাংশন (UDF) এর বিস্তারিত মেটাডেটা পাওয়ার জন্য get_user_defined_function API ব্যবহার করা হয়।

সমস্যা বিবরণ

পাইথনে boto3 লাইব্রেরি ব্যবহার করে একটি নির্দিষ্ট ফাংশন ডেফিনিশন (উদাহরণ: ডেটাবেস 'employee'-এ 'insert_employee_record') পাওয়া।

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

  1. boto3 এবং botocore.exceptions ইম্পোর্ট করুন।
  2. ফাংশনটি দুটি বাধ্যতামূলক প্যারামিটার নেবে: database_name এবং function_name।
  3. AWS সেশন এবং Glue ক্লায়েন্ট তৈরি করুন।
  4. glue_client.get_user_defined_function(DatabaseName=database_name, FunctionName=function_name) কল করুন।
  5. রেসপন্সে UserDefinedFunction অবজেক্ট থাকবে। না পেলে এরর থ্রো করবে।
  6. এক্সেপশন হ্যান্ডল করুন।

উদাহরণ কোড

import boto3
from botocore.exceptions import ClientError

def get_function_definition(database_name, function_name):
    session = boto3.session.Session()
    glue_client = session.client('glue')
    try:
        response = glue_client.get_user_defined_function(
            DatabaseName=database_name,
            FunctionName=function_name
        )
        return response
    except ClientError as e:
        raise Exception("boto3 client error in get_function_definition: " + e.__str__())
    except Exception as e:
        raise Exception("Unexpected error in get_function_definition: " + e.__str__())

a = get_function_definition('employee', 'insert_employee_record')
print(a)

আউটপুট

{
    'UserDefinedFunction':{
        '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'
        }]
    }
}

ব্যাখ্যা

  • সিঙ্গল ফাংশন ডেফিনিশন রিটার্ন হয় (লিস্ট নয়)।

  • ফাংশন না পাওয়া গেলে EntityNotFoundException থ্রো হবে (ClientError হিসেবে ক্যাচ হবে)।

  • UDF গুলো সাধারণত Hive/Spark UDF হিসেবে রেজিস্টার করা হয় (Java/Scala ক্লাস)।


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

  2. Boto3 ব্যবহার করে AWS Glue Data Catalog থেকে একটি টেবিল ডিলিট করা

  3. Boto3 ব্যবহার করে AWS Data Catalog থেকে একটি ডেটাবেস ডিলিট করা

  4. Boto3 ব্যবহার করে AWS Glue Data Catalog থেকে একটি ক্রলার ডিলিট করা