Query এবং Scan এর মধ্যে পার্থক্য

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

Amazon DynamoDB তে Query এবং Scan দুটি প্রধান ডেটা রিট্রিভাল অপারেশন। যদিও উভয়ই ডেটা খোঁজার জন্য ব্যবহৃত হয়, কিন্তু তাদের কার্যপ্রণালী এবং পারফরম্যান্সে কিছু গুরুত্বপূর্ণ পার্থক্য রয়েছে।

এখানে Query এবং Scan এর মধ্যে পার্থক্যগুলি বিস্তারিতভাবে ব্যাখ্যা করা হয়েছে:


১. Query অপারেশন

Query অপারেশনটি খুবই দক্ষ এবং এটি প্রাইমারি কিকে (Primary Key) ভিত্তিতে ডেটা খোঁজে। এটি একটি টেবিলের নির্দিষ্ট আইটেমগুলো বের করার জন্য ব্যবহৃত হয়, যেখানে আপনি Partition Key (এবং প্রযোজ্য হলে Sort Key) ব্যবহার করেন। Query অপারেশনটি দ্রুত এবং পারফরম্যান্স-অপটিমাইজড, কারণ এটি শুধু প্রয়োজনীয় ডেটা সার্চ করে।

Query অপারেশনের বৈশিষ্ট্য:

  • পারফরম্যান্স: Query দ্রুত এবং অনেক বেশি কার্যকরী, কারণ এটি শুধুমাত্র প্রয়োজনীয় ডেটার জন্য সার্চ করে।
  • কন্ডিশন: Query শুধুমাত্র Partition Key এবং Sort Key (যদি থাকে) দ্বারা ডেটা বের করতে সক্ষম। আপনি এটি Equality এবং Range Queries এর জন্য ব্যবহার করতে পারেন।
  • Filter Expressions: Query তে Filter Expressions ব্যবহার করতে পারেন, তবে এর পরেও Query মূলত নির্দিষ্ট Partition Key এবং Sort Key অনুসন্ধান করে।
  • Pagination: Query অপারেশনটি Pagination সাপোর্ট করে, যার মাধ্যমে আপনি বড় ডেটাসেটের মধ্যে পেজ-বাই-পেজ রেজাল্ট পাবেন।

Query উদাহরণ:

response = table.query(
    KeyConditionExpression=Key('UserID').eq('12345')
)
items = response.get('Items', [])
print(items)

এই কোডটি UserID = '12345' এর সাথে মেলে এমন সব আইটেম খুঁজে বের করবে।


২. Scan অপারেশন

Scan অপারেশনটি টেবিলের সমস্ত ডেটাকে একসাথে স্ক্যান করে এবং ফলস্বরূপ যতটুকু ডেটা মেলে, তা ফিরিয়ে দেয়। এটি Partition Key বা Sort Key এর সাথে সম্পর্কিত নয় এবং সাধারণত অনেক ধীর গতিতে কাজ করে, কারণ এটি পুরো টেবিল স্ক্যান করে। Scan অপারেশনটি পারফরম্যান্সের জন্য কম উপযুক্ত এবং সাধারণত ছোট টেবিল বা খুব প্রয়োজনীয় কেসে ব্যবহার করা উচিত।

Scan অপারেশনের বৈশিষ্ট্য:

  • পারফরম্যান্স: Scan অনেক ধীর গতিতে কাজ করে, কারণ এটি পুরো টেবিল স্ক্যান করে এবং সব ডেটা পরীক্ষা করে।
  • কন্ডিশন: Scan এ আপনি Filter Expressions ব্যবহার করতে পারেন, তবে Scan পুরো টেবিল স্ক্যান করার পর ফিল্টার করবে, যা পারফরম্যান্সে প্রভাব ফেলতে পারে।
  • রেজাল্ট সাইজ: যদি টেবিলের ডেটার পরিমাণ খুব বেশি হয়, তাহলে Scan অপারেশনটি খুব ধীর এবং বৃহৎ ফলাফল দিতে পারে।
  • Pagination: Scan অপারেশনও Pagination সাপোর্ট করে, যাতে আপনি বৃহৎ ডেটাসেটের মধ্যে পেজ-বাই-পেজ রেজাল্ট পেতে পারেন।

Scan উদাহরণ:

response = table.scan(
    FilterExpression=Attr('Age').gte(30)
)
items = response.get('Items', [])
print(items)

এই কোডটি সমস্ত টেবিল স্ক্যান করবে এবং যেখানে Age >= 30, সেইসব আইটেম ফিরিয়ে দিবে।


Query এবং Scan এর মধ্যে পার্থক্য:

ফিচারQueryScan
পারফরম্যান্সউচ্চ পারফরম্যান্স (দ্রুত) - শুধু প্রয়োজনীয় ডেটার জন্য সার্চ করেনিম্ন পারফরম্যান্স - পুরো টেবিল স্ক্যান করে
ডেটা রিটারিভালশুধুমাত্র Partition Key এবং Sort Key এর ভিত্তিতে ডেটা রিটারিভালপুরো টেবিল থেকে সমস্ত ডেটা স্ক্যান করে
কন্ডিশনকেবল Partition Key এবং Sort Key (যদি থাকে) ব্যবহার করতে হবেFilter Expressions ব্যবহার করা সম্ভব
রেজাল্ট সীমাদ্রুত ফলাফল এবং পেজিনেশন সাপোর্টস্লো এবং বড় ডেটাসেট নিয়ে কাজ করলে কম কার্যকর
ব্যবহার ক্ষেত্রনির্দিষ্ট Partition Key এর অধীনে ডেটা খোঁজার জন্য উপযুক্তটেবিলের সমস্ত ডেটা যাচাই করতে ব্যবহৃত

কখন Query ব্যবহার করবেন?

  • যখন আপনি ডেটা নির্দিষ্ট Partition Key বা Sort Key এর উপর ভিত্তি করে খুঁজতে চান।
  • যখন আপনাকে দ্রুত পারফরম্যান্সের প্রয়োজন হয় এবং টেবিলের আকার বড় না হয়।

কখন Scan ব্যবহার করবেন?

  • যখন আপনার কাছে একটি ছোট টেবিল থাকে এবং সমস্ত ডেটা স্ক্যান করার প্রয়োজন হয়।
  • যখন আপনি কোনো নির্দিষ্ট Partition Key বা Sort Key ছাড়া টেবিলের সমস্ত ডেটা পরীক্ষা করতে চান।

উপসংহার:

Query হল সবচেয়ে দক্ষ এবং দ্রুত ডেটা খোঁজার পদ্ধতি যদি আপনি নিশ্চিতভাবে জানেন কোন Partition Key বা Sort Key এর উপর ভিত্তি করে ডেটা খুঁজছেন। অন্যদিকে, Scan সাধারণত তখনই ব্যবহার করা উচিত যখন আপনার টেবিলের মধ্যে মেলানো ডেটার কোনো নির্দিষ্ট গঠন নেই এবং পুরো টেবিলের সব ডেটা একসাথে স্ক্যান করতে হবে।

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

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

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

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