AWS SDK ব্যবহার করে ডেটাবেস অপারেশন

Database Tutorials - ডাইনামোডিবি (DynamoDB) DynamoDB API Integration |
208
208

AWS SDK (Software Development Kit) ব্যবহার করে আপনি প্রোগ্রাম্যাটিকভাবে DynamoDB ডেটাবেসের বিভিন্ন অপারেশন যেমন Create, Read, Update, Delete (CRUD) এবং আরও অনেক কিছু পরিচালনা করতে পারেন। AWS SDK বিভিন্ন ভাষায় উপলব্ধ, যেমন Python (Boto3), JavaScript (AWS SDK for JavaScript), Java (AWS SDK for Java) ইত্যাদি। এখানে আমরা AWS SDK for Python (Boto3) ব্যবহার করে DynamoDB এর কিছু সাধারণ ডেটাবেস অপারেশন দেখবো।


প্রথমে Boto3 ইনস্টল এবং কনফিগার করা:

DynamoDB এর সাথে কাজ করার জন্য আপনাকে প্রথমে Boto3 ইনস্টল করতে হবে এবং AWS এর সাথে যুক্ত করতে হবে।

Boto3 ইনস্টল:

pip install boto3

AWS Credentials কনফিগারেশন: আপনার AWS ক্লাউড অ্যাক্সেসের জন্য credentials কনফিগার করতে হবে:

aws configure

এখানে আপনাকে আপনার AWS Access Key ID, Secret Access Key, Region, এবং Output format প্রদান করতে হবে।


১. DynamoDB টেবিল তৈরি করা (Create Table)

import boto3

# DynamoDB client তৈরি করা
dynamodb = boto3.client('dynamodb')

# টেবিল তৈরি করা
response = dynamodb.create_table(
    TableName='Movies',
    KeySchema=[
        {
            'AttributeName': 'Year',
            'KeyType': 'HASH'  # Partition key
        },
        {
            'AttributeName': 'Title',
            'KeyType': 'RANGE'  # Sort key
        }
    ],
    AttributeDefinitions=[
        {
            'AttributeName': 'Year',
            'AttributeType': 'N'
        },
        {
            'AttributeName': 'Title',
            'AttributeType': 'S'
        }
    ],
    ProvisionedThroughput={
        'ReadCapacityUnits': 5,
        'WriteCapacityUnits': 5
    }
)

print("Table created successfully:", response)

এই কোডটি একটি নতুন Movies টেবিল তৈরি করবে, যেখানে Year (Partition Key) এবং Title (Sort Key) থাকবে। এটি Provisioned throughput ব্যবহার করবে।


২. DynamoDB তে ডেটা ইন্সার্ট (PutItem)

# টেবিলে ডেটা ইন্সার্ট করা
response = dynamodb.put_item(
    TableName='Movies',
    Item={
        'Year': {'N': '2020'},
        'Title': {'S': 'The Great Adventure'},
        'Director': {'S': 'John Doe'},
        'Rating': {'N': '8'}
    }
)

print("Item inserted:", response)

এই কোডটি Movies টেবিলে একটি নতুন আইটেম ইন্সার্ট করবে। আইটেমটি একটি Year, Title, Director, এবং Rating অ্যাট্রিবিউট নিয়ে থাকবে।


৩. ডেটা রিড (GetItem)

# টেবিল থেকে ডেটা রিড করা
response = dynamodb.get_item(
    TableName='Movies',
    Key={
        'Year': {'N': '2020'},
        'Title': {'S': 'The Great Adventure'}
    }
)

if 'Item' in response:
    print("Item retrieved:", response['Item'])
else:
    print("Item not found.")

এই কোডটি Movies টেবিল থেকে একটি নির্দিষ্ট Year এবং Title সহ আইটেম রিড করবে।


৪. ডেটা আপডেট (UpdateItem)

# টেবিলের ডেটা আপডেট করা
response = dynamodb.update_item(
    TableName='Movies',
    Key={
        'Year': {'N': '2020'},
        'Title': {'S': 'The Great Adventure'}
    },
    UpdateExpression="set Rating = :r",
    ExpressionAttributeValues={
        ':r': {'N': '9'}
    },
    ReturnValues="UPDATED_NEW"
)

print("Item updated:", response['Attributes'])

এই কোডটি Movies টেবিলের একটি আইটেমের Rating আপডেট করবে।


৫. ডেটা ডিলিট (DeleteItem)

# টেবিল থেকে ডেটা ডিলিট করা
response = dynamodb.delete_item(
    TableName='Movies',
    Key={
        'Year': {'N': '2020'},
        'Title': {'S': 'The Great Adventure'}
    }
)

print("Item deleted:", response)

এই কোডটি Movies টেবিল থেকে একটি নির্দিষ্ট আইটেম ডিলিট করবে।


৬. ব্যাচ অপারেশন (BatchWriteItem)

যদি আপনি একসাথে একাধিক রেকর্ড ইন্সার্ট বা ডিলিট করতে চান, তবে BatchWriteItem ব্যবহার করতে পারেন।

# একাধিক আইটেম ইন্সার্ট বা ডিলিট করা
response = dynamodb.batch_write_item(
    RequestItems={
        'Movies': [
            {
                'PutRequest': {
                    'Item': {
                        'Year': {'N': '2021'},
                        'Title': {'S': 'The Next Chapter'},
                        'Director': {'S': 'Jane Smith'},
                        'Rating': {'N': '7'}
                    }
                }
            },
            {
                'DeleteRequest': {
                    'Key': {
                        'Year': {'N': '2020'},
                        'Title': {'S': 'The Great Adventure'}
                    }
                }
            }
        ]
    }
)

print("Batch operation response:", response)

এই কোডটি একাধিক রেকর্ড ইন্সার্ট এবং ডিলিট করবে Movies টেবিলে।


৭. Query এবং Scan অপারেশন

Query অপারেশন ব্যবহার করে আপনি নির্দিষ্ট Partition key এবং Sort key এর উপর ভিত্তি করে দ্রুত ডেটা খুঁজে পেতে পারেন। আর Scan অপারেশন সম্পূর্ণ টেবিল স্ক্যান করে, যা তুলনামূলকভাবে ধীর।

Query Example:

response = dynamodb.query(
    TableName='Movies',
    KeyConditionExpression='Year = :year',
    ExpressionAttributeValues={
        ':year': {'N': '2020'}
    }
)

print("Query results:", response['Items'])

Scan Example:

response = dynamodb.scan(
    TableName='Movies'
)

print("Scan results:", response['Items'])

Conclusion

AWS SDK ব্যবহার করে DynamoDB তে ডেটাবেস অপারেশন যেমন টেবিল তৈরি, ডেটা ইন্সার্ট, রিড, আপডেট, ডিলিট, ব্যাচ অপারেশন, কুয়েরি এবং স্ক্যান করা সম্ভব। এই অপারেশনগুলি আপনার অ্যাপ্লিকেশনকে ডাইনামিকভাবে ডেটাবেসের সাথে ইন্টিগ্রেট করতে সহায়তা করবে। Boto3 ব্যবহার করে Python এ DynamoDB এর সাথে সহজে কাজ করা যায়, এবং এর মাধ্যমে আপনি আপনার ক্লাউড সিস্টেমের পারফরম্যান্স উন্নত করতে পারেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion