ডাইনামোডিবি হলো Amazon Web Services (AWS) এর একটি NoSQL ডাটাবেস সেবা, যা ডকুমেন্ট এবং কী-ভ্যালু (key-value) স্টোরেজ উভয়ই সমর্থন করে। এটি সম্পূর্ণভাবে ম্যানেজড, অর্থাৎ ব্যবহারকারীদের ডাটাবেস ইন্সটল করা, কনফিগার করা, স্কেল করা এবং ম্যানেজমেন্ট করার প্রয়োজন হয় না। AWS এর মাধ্যমে DynamoDB স্বয়ংক্রিয়ভাবে ডাটাবেস ম্যানেজ করে এবং উচ্চ স্কেলেবিলিটি ও পারফরম্যান্স প্রদান করে।
Amazon DynamoDB হলো Amazon Web Services (AWS) এর একটি fully managed NoSQL ডাটাবেস সার্ভিস যা দ্রুত এবং স্কেলেবল ডেটা স্টোরেজ সমাধান প্রদান করে। এটি একটি key-value এবং ডকুমেন্ট ডাটাবেস যা স্বয়ংক্রিয়ভাবে ডেটা পুনরায় স্কেল করতে পারে এবং উচ্চতর ট্রাফিক পরিচালনা করতে সক্ষম। DynamoDB রিয়েল-টাইম অ্যাপ্লিকেশন, গেমিং, IoT ডিভাইস, এবং অন্যান্য উচ্চ-প্রয়োজনীয় অ্যাপ্লিকেশনগুলোর জন্য ব্যবহৃত হয়।
স্কেলেবিলিটি: DynamoDB উচ্চতর স্কেলেবিলিটি সরবরাহ করে, যা বড় আকারের ট্রাফিক এবং ডেটা পরিচালনার জন্য স্বয়ংক্রিয়ভাবে স্কেল হতে পারে।
লো ল্যাটেন্সি: এটি মাইক্রোসেকেন্ড লেভেলের ল্যাটেন্সি সহ দ্রুত ডেটা অ্যাক্সেসের সুবিধা প্রদান করে, যা রিয়েল-টাইম অ্যাপ্লিকেশনগুলির জন্য আদর্শ।
Managed NoSQL Service: DynamoDB একটি সম্পূর্ণ ম্যানেজড সার্ভিস, যার ফলে ব্যবহারকারীদের হার্ডওয়্যার পরিচালনা বা ইনফ্রাস্ট্রাকচার নিয়ে চিন্তা করতে হয় না।
বহুমাত্রিক ডেটা মডেল: DynamoDB ডেটা key-value পদ্ধতিতে এবং ডকুমেন্ট স্টোরেজ হিসেবে সংরক্ষণ করতে পারে, যা ডেটা অ্যাক্সেস ও পরিচালনা করা সহজ করে তোলে।
অনুমিত ফ্রি স্কেলিং: DynamoDB ব্যবহারকারীদের স্বয়ংক্রিয়ভাবে পড়া এবং লেখার ক্ষমতা (Read/Write Capacity) বৃদ্ধির সুযোগ দেয়।
উন্নত নিরাপত্তা ও ব্যাকআপ: DynamoDB এনক্রিপশন, অ্যাক্সেস নিয়ন্ত্রণ, এবং ব্যাকআপ সার্ভিস সরবরাহ করে, যার মাধ্যমে ডেটা নিরাপদ থাকে।
DynamoDB Streams: এটি একটি ফিচার যা আপনাকে টেবিলে যে কোন পরিবর্তন (ডাটা ইনসার্ট, আপডেট বা ডিলিট) ট্র্যাক করতে দেয় এবং তা অন্য অ্যাপ্লিকেশন বা সার্ভিসে প্রক্রিয়াকরণ করতে সক্ষম।
DynamoDB একটি distributed database যা ডেটা পার্টিশনিং এবং স্বয়ংক্রিয়ভাবে বিভিন্ন সার্ভারে বিভক্ত করে। এটি ডেটাকে মূলত Partition Keys (প্রাইমারি কী) এবং Sort Keys ব্যবহার করে সংরক্ষণ করে। এর মাধ্যমে সহজে বড় আকারের ডেটাবেসের উপর কুয়েরি করা যায়।
DynamoDB একই সার্ভারের উপর বা ডিসট্রিবিউটেড সার্ভারের মধ্যে ডেটা রেপ্লিকেট করতে পারে, ফলে ফেইলওভার বা ডেটা লসের সম্ভাবনা কম থাকে।
DynamoDB একটি cloud-based service, তাই এটি ইনস্টল করার প্রয়োজন নেই। আপনি AWS Management Console, AWS CLI বা SDK ব্যবহার করে DynamoDB এর সাথে কাজ করতে পারেন।
CLI ব্যবহার করে একটি নতুন টেবিল তৈরি করতে পারেন:
aws dynamodb create-table \
--table-name Employees \
--attribute-definitions AttributeName=EmployeeID,AttributeType=S \
--key-schema AttributeName=EmployeeID,KeyType=HASH \
--provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5
উপরের উদাহরণে, Employees
নামে একটি টেবিল তৈরি করা হয়েছে, যেখানে EmployeeID
হলো প্রাইমারি কী।
DynamoDB তে ডেটা যোগ করতে PutItem মেথড ব্যবহার করা হয়।
aws dynamodb put-item \
--table-name Employees \
--item '{"EmployeeID": {"S": "001"}, "Name": {"S": "John Doe"}, "Position": {"S": "Software Engineer"}, "Salary": {"N": "60000"}}'
এখানে Employees
টেবিলের মধ্যে নতুন ডকুমেন্ট (আইটেম) যোগ করা হয়েছে।
Query বা Scan মেথড ব্যবহার করে DynamoDB তে ডেটা রিট্রিভ করা যায়। নিচের উদাহরণে আমরা EmployeeID
অনুসারে ডেটা অনুসন্ধান করছি।
aws dynamodb get-item \
--table-name Employees \
--key '{"EmployeeID": {"S": "001"}}'
এখানে 001
আইডির কর্মচারীর তথ্য রিট্রিভ করা হয়েছে।
UpdateItem মেথড ব্যবহার করে DynamoDB তে ডেটা আপডেট করা যায়।
aws dynamodb update-item \
--table-name Employees \
--key '{"EmployeeID": {"S": "001"}}' \
--update-expression "SET Salary = :s" \
--expression-attribute-values '{":s": {"N": "65000"}}'
উপরের কুয়েরিতে John Doe এর বেতন আপডেট করা হয়েছে।
DeleteItem মেথড ব্যবহার করে একটি ডকুমেন্ট (আইটেম) মুছে ফেলা যায়।
aws dynamodb delete-item \
--table-name Employees \
--key '{"EmployeeID": {"S": "001"}}'
এখানে 001
আইডির তথ্য মুছে ফেলা হয়েছে।
DynamoDB একটি উচ্চতর স্কেলেবল এবং ম্যানেজড NoSQL ডাটাবেস যা key-value এবং ডকুমেন্ট স্টোরেজ সমর্থন করে। এটি স্বয়ংক্রিয় স্কেলিং, দ্রুত ডেটা অ্যাক্সেস, এবং অ্যাডভান্সড সিকিউরিটির জন্য আদর্শ। DocumentDB, MongoDB, এবং Cassandra এর সাথে তুলনা করলে DynamoDB বিশেষত উচ্চ-পারফরম্যান্স এবং ম্যানেজড সার্ভিস হিসেবে প্রাধান্য পায়, বিশেষ করে AWS পরিবেশে ব্যবহৃত অ্যাপ্লিকেশনগুলোর জন্য।