Pagination এবং Result Limit সেট করা

Database Tutorials - ডাইনামোডিবি (DynamoDB) DynamoDB Query এবং Scan অপারেশন |
208
208

DynamoDB তে pagination এবং result limit সেট করা একটি গুরুত্বপূর্ণ বৈশিষ্ট্য, বিশেষত যখন আপনার টেবিলটি খুব বড় হয় এবং ডেটার পরিমাণ বেশি থাকে। DynamoDB তে Query এবং Scan অপারেশনে pagination ব্যবহার করে আপনি একাধিক পৃষ্ঠার ফলাফল পেতে পারেন, এবং result limit ব্যবহার করে আপনি কতগুলি রেকর্ড ফেরত পাবেন তা সীমাবদ্ধ করতে পারেন।

Pagination (পেজিনেশন)

Pagination ব্যবহার করার মাধ্যমে আপনি একটি বড় ডেটাসেটের ফলাফলকে ছোট ছোট অংশে ভাগ করতে পারেন। এটি LastEvaluatedKey ব্যবহার করে করা হয়।

Pagination এর ধারণা:

  • LastEvaluatedKey: এটি একটি বিশেষ key যা DynamoDB এর ফলাফল পৃষ্ঠার শেষের আইটেমের তথ্য ধারণ করে। আপনি যখন নতুন পেজের জন্য প্রশ্ন করবেন, তখন এই LastEvaluatedKey দিয়ে পরবর্তী পৃষ্ঠা শুরু হবে।

১. Query তে Pagination

Query অপারেশনটি যখন অনেক রেকর্ড ফেরত দেয়, তখন পেজিনেশন ব্যবহারের মাধ্যমে আপনি একাধিক পৃষ্ঠার ফলাফল পাবেন। DynamoDB স্বয়ংক্রিয়ভাবে শুধুমাত্র একটি নির্দিষ্ট পরিমাণের রেকর্ড ফিরিয়ে দেয় (যেটি Limit দ্বারা নির্ধারিত), এবং পরবর্তী পেজ পাওয়ার জন্য LastEvaluatedKey ব্যবহার করা হয়।

Query এর উদাহরণ (Pagination):

import boto3

# DynamoDB ক্লায়েন্ট তৈরি
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('YourTableName')

# প্রথম পেজে Query অপারেশন
response = table.query(
    KeyConditionExpression=Key('PrimaryKey').eq('value1'),
    Limit=10  # প্রতি পৃষ্ঠায় ১০টি রেকর্ড ফিরিয়ে দিবে
)

# প্রথম পেজের রেকর্ড প্রিন্ট করা
for item in response['Items']:
    print(item)

# পরবর্তী পেজ পেতে LastEvaluatedKey ব্যবহার করা
while 'LastEvaluatedKey' in response:
    response = table.query(
        KeyConditionExpression=Key('PrimaryKey').eq('value1'),
        Limit=10,
        ExclusiveStartKey=response['LastEvaluatedKey']
    )
    
    # পরবর্তী পৃষ্ঠার রেকর্ড প্রিন্ট করা
    for item in response['Items']:
        print(item)

Key Points:

  • Limit: প্রতি পৃষ্ঠায় কতটি রেকর্ড ফেরত দিবে তা নির্ধারণ করে।
  • ExclusiveStartKey: পরবর্তী পেজের জন্য LastEvaluatedKey ব্যবহার করতে হবে।

২. Scan তে Pagination

Scan অপারেশনেও pagination ব্যবহার করা হয়, তবে এটি Query এর তুলনায় কম পারফরম্যান্স সহ, কারণ Scan পুরো টেবিল স্ক্যান করে।

Scan এর উদাহরণ (Pagination):

import boto3

# DynamoDB ক্লায়েন্ট তৈরি
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('YourTableName')

# প্রথম পেজে Scan অপারেশন
response = table.scan(
    Limit=10  # প্রতি পৃষ্ঠায় ১০টি রেকর্ড ফিরিয়ে দিবে
)

# প্রথম পেজের রেকর্ড প্রিন্ট করা
for item in response['Items']:
    print(item)

# পরবর্তী পেজ পেতে LastEvaluatedKey ব্যবহার করা
while 'LastEvaluatedKey' in response:
    response = table.scan(
        Limit=10,
        ExclusiveStartKey=response['LastEvaluatedKey']
    )
    
    # পরবর্তী পৃষ্ঠার রেকর্ড প্রিন্ট করা
    for item in response['Items']:
        print(item)

Key Points:

  • Limit: স্ক্যান অপারেশনের জন্য প্রতি পৃষ্ঠায় কতটি রেকর্ড ফেরত দিবে তা নির্ধারণ করা হয়।
  • ExclusiveStartKey: পরবর্তী পৃষ্ঠার জন্য LastEvaluatedKey ব্যবহার করতে হবে।

৩. Result Limit (রেকর্ড সীমিত করা)

Result Limit এর মাধ্যমে আপনি Query বা Scan অপারেশনে ফেরত আসা ডেটার সংখ্যা সীমিত করতে পারেন। এটি Limit প্যারামিটার দিয়ে নির্ধারণ করা হয়।

যখন আপনার টেবিল বড় হয়ে যায় এবং আপনি একাধিক আইটেম এক সাথে রিটার্ন করতে চান না, তখন Limit প্যারামিটার ব্যবহার করে আপনি একটি নির্দিষ্ট পরিমাণ আইটেম রিটার্ন করতে পারেন।

Result Limit ব্যবহার করা:

import boto3
from boto3.dynamodb.conditions import Key

# DynamoDB ক্লায়েন্ট তৈরি
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('YourTableName')

# Query অপারেশনে Result Limit সেট করা
response = table.query(
    KeyConditionExpression=Key('PrimaryKey').eq('value1'),
    Limit=5  # প্রতি পৃষ্ঠায় ৫টি রেকর্ড রিটার্ন করবে
)

# রেকর্ড প্রিন্ট করা
for item in response['Items']:
    print(item)

সামগ্রিকভাবে:

  • Pagination: এটি একাধিক পৃষ্ঠার মাধ্যমে ফলাফল ফেরত দেয় এবং LastEvaluatedKey ব্যবহার করে পরবর্তী পৃষ্ঠা পাওয়ার জন্য সহায়তা করে।
  • Result Limit: এটি একটি নির্দিষ্ট পরিমাণ রেকর্ড ফেরত দেয়, যা আপনাকে একবারে কতটি রেকর্ড পেতে চান তা নিয়ন্ত্রণ করতে দেয়।

এই দুটি ফিচার ব্যবহার করে আপনি DynamoDB তে ডেটা পড়ার কার্যকারিতা আরও উন্নত করতে পারবেন এবং বড় ডেটাসেটগুলো সহজে ম্যানেজ করতে পারবেন।

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

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

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

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