Filter Expressions এর মাধ্যমে Data Query

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

DynamoDB তে Filter Expressions ব্যবহার করে আপনি Query অথবা Scan অপারেশনে ডেটা ফিল্টার করতে পারেন। এই ফিচারটি আপনাকে নির্দিষ্ট শর্তে (conditions) মেলে এমন ডেটা ফেরত আনতে সহায়তা করে। Filter Expressions সাধারণত Query বা Scan অপারেশনের পরে প্রয়োগ করা হয়, এবং এটি শুধুমাত্র রিটার্ন করা ডেটা সীমাবদ্ধ করে, তবে এটি পারফরম্যান্সকে ততটা প্রভাবিত করে না।

Filter Expressions কী?

Filter Expression হল একটি শর্ত যা Query অথবা Scan অপারেশন চলাকালীন ডেটার মধ্যে filter প্রয়োগ করে। Filter Expression ব্যবহৃত হলে, DynamoDB প্রথমে নির্দিষ্ট প্যারামিটার অনুযায়ী ডেটা অনুসন্ধান করে (Query বা Scan অপারেশন), তারপর যেসব আইটেম শর্ত পূর্ণ করে না, সেগুলো বাদ দিয়ে রিটার্ন করে।

Filter Expressions এর ব্যবহার:

1. Query অপারেশনে Filter Expressions

Query অপারেশন দিয়ে আপনি একটি টেবিলের ডেটা অনুসন্ধান করেন এবং Filter Expression ব্যবহার করে আপনি নির্দিষ্ট কন্ডিশন অনুসারে ডেটা ফিল্টার করতে পারেন।

উদাহরণ: ধরুন, আপনার একটি টেবিল আছে যেখানে ProductID, ProductCategory, এবং Price আছে। আপনি এমন সমস্ত প্রোডাক্টের তথ্য চান যাদের ক্যাটেগরি "Electronics" এবং Price 50 এর বেশি।

Query Expression with Filter Expression:

const params = {
    TableName : "Products",
    KeyConditionExpression: "ProductCategory = :category",
    FilterExpression: "Price > :price",
    ExpressionAttributeValues: {
        ":category": "Electronics",
        ":price": 50
    }
};

docClient.query(params, function(err, data) {
    if (err) {
        console.log("Error", err);
    } else {
        console.log("Success", data.Items);
    }
});

এখানে:

  • KeyConditionExpression দ্বারা ProductCategory এর জন্য Query নির্ধারণ করা হয়েছে।
  • FilterExpression দ্বারা Price এর জন্য শর্ত দেয়া হয়েছে (Price > 50)।

2. Scan অপারেশনে Filter Expressions

Scan অপারেশন DynamoDB টেবিলের সমস্ত আইটেম স্ক্যান করে, এবং আপনি Filter Expressions ব্যবহার করে ফলাফলগুলো ফিল্টার করতে পারেন। তবে, Scan অপারেশনটি কম পারফর্ম্যান্স হতে পারে, কারণ এটি পুরো টেবিল স্ক্যান করে।

উদাহরণ: ধরুন, আপনার একটি টেবিল "Employees" আছে, এবং আপনি সব কর্মচারীকে দেখতে চান যাদের বয়স 30 এর বেশি এবং পদ "Manager"।

Scan Expression with Filter Expression:

const params = {
    TableName : "Employees",
    FilterExpression: "Age > :age and Position = :position",
    ExpressionAttributeValues: {
        ":age": 30,
        ":position": "Manager"
    }
};

docClient.scan(params, function(err, data) {
    if (err) {
        console.log("Error", err);
    } else {
        console.log("Success", data.Items);
    }
});

এখানে:

  • FilterExpression দ্বারা Age এর জন্য শর্ত দেয়া হয়েছে (Age > 30) এবং Position এর জন্য শর্ত দেয়া হয়েছে (Position = "Manager")।

Filter Expressions এর মধ্যে ব্যবহারযোগ্য কিছু গুরুত্বপূর্ণ অপারেটর:

  1. Comparison Operators:
    • =, <, >, <=, >=, <> (Not equal)
    • উদাহরণ: Age > :age
  2. Logical Operators:
    • AND, OR
    • উদাহরণ: Age > :age AND Position = :position
  3. String Functions:
    • begins_with(attribute, value): যদি আপনি স্ট্রিংয়ের শুরুতে নির্দিষ্ট শব্দ দেখতে চান।
    • contains(attribute, value): যদি আপনি স্ট্রিংয়ের মধ্যে একটি নির্দিষ্ট শব্দ দেখতে চান।
    • উদাহরণ: begins_with(Username, "admin")
  4. Attribute Exists/Not Exists:
    • attribute_exists(attribute): যদি একটি অ্যাট্রিবিউট বিদ্যমান থাকে।
    • attribute_not_exists(attribute): যদি একটি অ্যাট্রিবিউট অনুপস্থিত থাকে।

Filter Expressions এর কিছু গুরুত্বপূর্ণ লক্ষ্যণীয় বিষয়:

  • Performance: Filter Expressions শুধুমাত্র ডেটা ফিল্টার করে, অর্থাৎ এটি অপারেশন শুরু হওয়ার পর কার্যকরী হয়। Query বা Scan অপারেশনটি পুরো টেবিল স্ক্যান করে, তারপরে Filter Expression প্রয়োগ হয়। যদি আপনার বড় টেবিল থাকে, তবে Scan অপারেশন ব্যবহার করার সময় পারফরম্যান্স সমস্যা হতে পারে।
  • Filter Expressions এবং Query: Query অপারেশনে Filter Expression ব্যবহারের মাধ্যমে আপনি ডেটার উপর নির্দিষ্ট শর্তের ফিল্টার প্রয়োগ করতে পারেন, তবে প্রথমে Key Condition Expression অনুযায়ী ডেটা স্ক্যান হবে।
  • Limitations: Filter Expressions শুধুমাত্র রিটার্নড ডেটাকে ফিল্টার করে, তাই আপনি অপ্রয়োজনীয় আইটেম খুঁজে পেতে পারেন যেগুলো আপনার query বা scan সময় বাছাই হয়নি।

সারাংশ:

Filter Expressions DynamoDB তে ডেটার রিটার্ন নিয়ে আরও ফাইন টিউনিং করার জন্য ব্যবহৃত হয়। এটি আপনাকে আরও নির্দিষ্টভাবে ডেটা পেতে সাহায্য করে, তবে এটি পুরো স্ক্যান বা কুয়েরি ফলাফলকে প্রভাবিত করে, এবং বড় টেবিলের ক্ষেত্রে পারফরম্যান্সের ওপর প্রভাব ফেলতে পারে।

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

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

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

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