DynamoDB এর মূল ধারণা

Database Tutorials - ডাইনামোডিবি (DynamoDB)
238
238

Amazon DynamoDB হল একটি সম্পূর্ণভাবে পরিচালিত, উচ্চ পারফরম্যান্স, এবং স্কেলেবল NoSQL ডেটাবেস সিস্টেম যা AWS (Amazon Web Services) দ্বারা সরবরাহিত। এটি মূলত ডিস্ট্রিবিউটেড, স্কিমালেস ডেটাবেস সিস্টেম, যা আর্কিটেকচার, স্কেলিং এবং পরিচালনার জন্য AWS-এর শক্তিশালী ইনফ্রাস্ট্রাকচার ব্যবহার করে। DynamoDB বিশেষভাবে দ্রুত, লো-লেটেন্সি ডেটা রিড এবং রাইট অপারেশন সাপোর্ট করার জন্য ডিজাইন করা হয়েছে।

DynamoDB মূলত Key-Value এবং Document-based ডেটা মডেল সাপোর্ট করে, যেখানে ডেটার স্টোরেজ সহজ এবং খুব দ্রুত করা সম্ভব।


DynamoDB এর মূল উপাদানগুলো

  1. Tables:
    • DynamoDB তে ডেটা Table আকারে সংরক্ষিত থাকে। প্রতিটি টেবিলের একটি নির্দিষ্ট নাম থাকে এবং টেবিলের মধ্যে ডেটা বিভিন্ন Items (অথবা রেকর্ড) হিসাবে রাখা হয়।
  2. Items:
    • DynamoDB তে প্রতিটি রেকর্ড বা ডেটা একটি Item। একটি Item ডেটাবেসের একটি একক এন্ট্রি হিসেবে কাজ করে এবং এটি একটি বা একাধিক Attributes ধারণ করে।
  3. Attributes:
    • একটি Item এর মধ্যে বিভিন্ন ফিল্ড থাকে, যেগুলোকে Attribute বলা হয়। উদাহরণস্বরূপ, একটি "User" টেবিলের Item এর মধ্যে "Name", "Email", "Age" ইত্যাদি হতে পারে।

প্রধান কীগুলো এবং ডেটা মডেল

  1. Primary Key:
    • DynamoDB তে প্রতিটি টেবিলের জন্য একটি Primary Key থাকতে হয়। এটি ডেটা ইউনিকভাবে চিহ্নিত করতে ব্যবহৃত হয়। দুইটি ধরনের Primary Key রয়েছে:
      • Partition Key: এটি একটি একক কী (যেমন: User ID)। DynamoDB ডেটাকে পার্টিশন করার জন্য এই কীগুলি ব্যবহার করে।
      • Partition Key + Sort Key: এটি একটি কমপ্লেক্স কী (যেমন: User ID + Timestamp), যা ডেটাকে আরও সুনির্দিষ্টভাবে সাজাতে সাহায্য করে।
  2. Secondary Indexes:
    • যখন আপনি Query করতে চান বিভিন্ন Attributes এর ভিত্তিতে (যে গুলি Primary Key-এ নেই), তখন আপনি Secondary Index ব্যবহার করতে পারেন। DynamoDB তে দুটি ধরনের Secondary Index রয়েছে:
      • Global Secondary Index (GSI): এটি সম্পূর্ণ টেবিলের ডেটার উপর কাজ করে, যেটি Query বা Scan অপারেশনের মাধ্যমে খুব দ্রুত রেজাল্ট দেয়।
      • Local Secondary Index (LSI): এটি শুধুমাত্র Partition Key এর ভিতরে ডেটা অনুসন্ধান করতে ব্যবহৃত হয়, তবে Sort Key-এর ভিত্তিতে বিভিন্ন ফিল্টার প্রয়োগ করা যায়।
  3. Provisioned vs On-Demand Capacity:
    • Provisioned Capacity: আপনি যে পরিমাণ রিড/রাইট অপারেশন (RCU/WCU) করতে চান তা নির্দিষ্ট করে দেওয়া হয়।
    • On-Demand Capacity: এতে কোনও নির্দিষ্ট কনফিগারেশন নেই, এবং DynamoDB স্বয়ংক্রিয়ভাবে আপনার অ্যাপ্লিকেশনের জন্য প্রয়োজনীয় পরিমাণ রিড/রাইট ক্ষমতা সমন্বয় করে।

DynamoDB এর কাজের ধরন

DynamoDB তে ডেটা ম্যানিপুলেশন বেশ সহজ। কিছু গুরুত্বপূর্ণ অপারেশন:

  1. PutItem: একটি নতুন Item টেবিলের মধ্যে সংযোজন করে।
  2. GetItem: নির্দিষ্ট Item এর ডেটা পুনরুদ্ধার করে।
  3. UpdateItem: বিদ্যমান Item এর ডেটা আপডেট করে।
  4. DeleteItem: একটি Item মুছে ফেলে।
  5. Query: নির্দিষ্ট শর্তে ডেটা অনুসন্ধান করতে ব্যবহৃত হয়।
  6. Scan: পুরো টেবিল স্ক্যান করে ডেটা অনুসন্ধান করে।

DynamoDB এর সুবিধাসমূহ

  1. হাই পারফরম্যান্স এবং লো-লেটেন্সি: DynamoDB দ্রুত ডেটা রিড এবং রাইট করার জন্য ডিজাইন করা হয়েছে, যা বিশেষভাবে রিয়েল-টাইম অ্যাপ্লিকেশন এবং ইভেন্ট ড্রিভেন সিস্টেমের জন্য উপযুক্ত।
  2. স্কেলেবিলিটি: এটি স্বয়ংক্রিয়ভাবে আপনার অ্যাপ্লিকেশনকে স্কেল করতে পারে, যা উচ্চ ট্রাফিকের সময়ও সিস্টেমের পারফরম্যান্স অটোমেটিকভাবে সমন্বয় করে।
  3. ফুল্ল ম্যানেজড সেবা: DynamoDB একেবারে পরিচালিত সেবা হওয়ায় আপনাকে ইনফ্রাস্ট্রাকচার নিয়ে চিন্তা করতে হয় না, AWS সব কিছু পরিচালনা করে।
  4. নিরাপত্তা: DynamoDB, AWS IAM এর মাধ্যমে অ্যাক্সেস কন্ট্রোল এবং Encryption at Rest/ in Transit সমর্থন করে, যা ডেটার নিরাপত্তা নিশ্চিত করে।
  5. অটো-স্কেলিং: DynamoDB ডেটাবেস টেবিলের জন্য অটো-স্কেলিং সমর্থন করে, যাতে আপনার অ্যাপ্লিকেশনটি বড় হলে রিসোর্স সমন্বিত হয়।

DynamoDB এর সীমাবদ্ধতা

  1. Query-এ সীমাবদ্ধতা: DynamoDB তে Query কেবলমাত্র Partition Key অথবা Partition Key + Sort Key এর ভিত্তিতে কাজ করে। অন্য অট্রিবিউটের ভিত্তিতে কুয়েরি করার জন্য Secondary Index ব্যবহার করতে হবে।
  2. মাঝারি থেকে বড় স্কিমার জন্য ব্যয়বহুল হতে পারে: বিশেষত যখন টেবিলের মধ্যে অনেক আইটেম থাকে এবং GSI ব্যবহার করতে হয়, তখন ব্যয় কিছুটা বেশি হতে পারে।

উপসংহার

DynamoDB একটি অত্যন্ত কার্যকরী, স্কেলেবল, এবং উচ্চ পারফরম্যান্স ডেটাবেস সিস্টেম, যা ব্যবহারকারীকে ডেভেলপমেন্টের সময় দ্রুত এবং প্রভাবশালী ডেটা সংরক্ষণ এবং পুনরুদ্ধারের সুবিধা প্রদান করে। বিভিন্ন ধরনের ডেটাবেস ব্যবহারের জন্য এটি উপযুক্ত, বিশেষ করে রিয়েল-টাইম অ্যাপ্লিকেশন, হাই-ট্রাফিক ওয়েব অ্যাপ্লিকেশন, এবং ইভেন্ট ড্রিভেন আর্কিটেকচারের জন্য।

common.content_added_by

Tables, Items, এবং Attributes

231
231

Amazon DynamoDB হল একটি NoSQL ডেটাবেস সিস্টেম, যেখানে ডেটা Tables, Items, এবং Attributes আকারে সংরক্ষিত হয়। এখানে প্রতিটি ধারণার বিস্তারিত ব্যাখ্যা দেওয়া হলো:


১. Table (টেবিল)

DynamoDB এ Table হল ডেটাবেসের মূল একক, যেখানে ডেটা সংরক্ষণ করা হয়। একটি টেবিল Items ধারণ করে, এবং প্রতিটি Item একটি ডেটা রেকর্ড বা এন্ট্রি।

Table এর মূল বৈশিষ্ট্য:

  • Table Name: প্রতিটি টেবিলের একটি ইউনিক নাম থাকে। টেবিল নামটি একটি অ্যাপ্লিকেশন বা সিস্টেমের মধ্যে টেবিলটি চিহ্নিত করতে ব্যবহৃত হয়।
  • Primary Key: প্রতিটি টেবিলের একটি Primary Key থাকে, যা টেবিলের প্রতিটি আইটেমকে অনন্যভাবে চিহ্নিত করে। প্রাইমারি কীগুলি Partition Key অথবা Partition Key + Sort Key হতে পারে (যেমন একটি কম্পোজড কিওয়ে ব্যবহার করা হয়)।
  • Provisioned Capacity: যখন আপনি একটি টেবিল তৈরি করেন, তখন আপনি তার Read Capacity Units (RCU) এবং Write Capacity Units (WCU) কনফিগার করতে পারেন, যা টেবিলের পারফরম্যান্স নিয়ন্ত্রণ করে।
  • On-Demand Capacity: একটি টেবিল On-Demand Mode তে রাখা যেতে পারে, যেখানে DynamoDB স্বয়ংক্রিয়ভাবে ডেটাবেসের স্কেল কনফিগার করে।

Table এর উদাহরণ:

যদি আপনার একটি User টেবিল থাকে, সেটি ব্যবহারকারীর তথ্য সংরক্ষণ করবে, যেমন: ব্যবহারকারীর নাম, ইমেইল, ফোন নম্বর ইত্যাদি।


২. Item (আইটেম)

DynamoDB তে Item হল টেবিলের একটি একক ডেটা রেকর্ড। প্রতিটি আইটেম একটি ডেটা এন্ট্রি, যা টেবিলের মধ্যে একটি নির্দিষ্ট Primary Key এর মাধ্যমে অনন্যভাবে চিহ্নিত করা হয়। আইটেমটি একাধিক Attributes ধারণ করতে পারে।

Item এর বৈশিষ্ট্য:

  • প্রতিটি Item একটি Primary Key দ্বারা চিহ্নিত হয়।
  • আইটেমের মধ্যে Attributes থাকতে পারে যা সেই আইটেমের বিভিন্ন তথ্য বা বৈশিষ্ট্য চিহ্নিত করে।
  • DynamoDB তে আইটেমের স্কিমা নির্দিষ্ট থাকে না, অর্থাৎ আপনি যখন একটি আইটেম তৈরি করবেন, তখন সেটির Attributes অন্য আইটেমগুলির থেকে আলাদা হতে পারে। অর্থাৎ, এক টেবিলের আইটেমগুলো একে অপরের থেকে ভিন্ন স্কিমা ব্যবহার করতে পারে।

Item এর উদাহরণ:

ধরা যাক, একটি User টেবিলের মধ্যে নিম্নলিখিত আইটেমগুলো থাকতে পারে:


৩. Attribute (অ্যাট্রিবিউট)

Attribute হল DynamoDB আইটেমের একটি নির্দিষ্ট বৈশিষ্ট্য বা তথ্য। এটি একটি কীগুলির মান (key-value pair) হতে পারে, যা আইটেমের বিভিন্ন তথ্য বা প্রোপার্টি বর্ণনা করে।

Attribute এর বৈশিষ্ট্য:

  • একটি আইটেমে একাধিক Attribute থাকতে পারে।
  • Attribute গুলির মধ্যে Scalar Types (যেমন String, Number, Boolean) এবং Complex Types (যেমন List, Map) থাকতে পারে।
  • Attribute গুলি টাইপ ইনফরমেশনসহ স্টোর করা হয় এবং আইটেমের মধ্যে তাদের মান রাখা হয়।

Attribute এর উদাহরণ:

ধরা যাক, একটি User আইটেমের মধ্যে নিম্নলিখিত Attributes থাকতে পারে:

  • User ID (Partition Key): 001 (String)
  • Name: John Doe (String)
  • Email: johndoe@email.com (String)
  • Phone: +1234567890 (String)
  • Age: 29 (Number)
  • Address: Map (Complex Type, contains street, city, postal code)

DynamoDB এ Table, Item, এবং Attribute এর সম্পর্ক:

  • Table: ডেটাবেসের মূল ইউনিট, যেখানে একাধিক Item সংরক্ষিত থাকে।
  • Item: একটি টেবিলের একক ডেটা এন্ট্রি যা Primary Key এর মাধ্যমে চিহ্নিত হয়।
  • Attribute: আইটেমের নির্দিষ্ট বৈশিষ্ট্য বা তথ্য, যা key-value pair আকারে থাকে।

Table তৈরি করার উদাহরণ:

ধরা যাক, আপনি একটি User টেবিল তৈরি করতে চান, যেখানে User ID হবে Partition Key এবং Email হবে Sort Key।

  1. AWS Management Console এ গিয়ে DynamoDB নির্বাচন করুন।
  2. Create table বাটনে ক্লিক করুন।
  3. টেবিলের নাম দিন (যেমন Users), এবং Primary Key কনফিগার করুন:
    • Partition Key: User ID (String)
    • Sort Key: Email (String)
  4. Provisioned অথবা On-Demand Capacity Mode নির্বাচন করুন এবং টেবিল তৈরি করুন।

এভাবে আপনি সহজেই একটি Table, Item, এবং Attribute তৈরি করতে পারেন DynamoDB তে।


এই ছিল DynamoDB এর Tables, Items, এবং Attributes এর সংক্ষিপ্ত বিবরণ। যদি কোনো প্রশ্ন থাকে, জানাতে পারেন!

common.content_added_by

Primary Key এবং Sort Key এর ধারণা

236
236

DynamoDB একটি NoSQL ডেটাবেস, এবং এটি ডেটা সংরক্ষণ এবং অ্যাক্সেস করার জন্য একটি বিশেষ ধরনের ডেটাবেস আর্কিটেকচার ব্যবহার করে। এতে Primary Key এবং Sort Key হল দুটি মূল উপাদান যা টেবিলের ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়।

এই দুটি কীগুলি ডেটাবেসে একটি রেকর্ড (Item) এর অবস্থান নির্ধারণ করে এবং ডেটা অ্যাক্সেসের জন্য অত্যন্ত গুরুত্বপূর্ণ ভূমিকা পালন করে।


Primary Key:

Primary Key হল একটি একক কী যা DynamoDB টেবিলের প্রতিটি রেকর্ড (Item) কে অনন্যভাবে চিহ্নিত করে। এটি অবশ্যই প্রতিটি আইটেমের জন্য ইউনিক হতে হবে, এবং এটি DynamoDB তে একটি আইটেম খুঁজে পাওয়ার জন্য ব্যবহৃত হয়।

Primary Key দুটি উপায়ে নির্ধারণ করা যেতে পারে:

  1. Partition Key (পার্টিশন কী) – একক কী (Single Attribute)
  2. Partition Key এবং Sort Key (পার্টিশন কী এবং সোর্ট কী) – দুইটি কী (Composite Key)

১. Partition Key (পার্টিশন কী):

  • Partition Key হল একটি একক কী (Single Attribute) যা DynamoDB টেবিলের প্রতিটি আইটেমকে অনন্যভাবে চিহ্নিত করে।
  • এটি টেবিলের ডেটা ভাগ করতে এবং ডিস্ট্রিবিউট করতে সাহায্য করে, অর্থাৎ প্রতিটি আইটেমের জন্য পার্টিশন তৈরি করে।
  • Partition Key এর মান অনুযায়ী, DynamoDB নিজে থেকেই ডেটাকে বিভিন্ন পার্টিশনে বিতরণ করে।

উদাহরণ:
ধরা যাক, আপনার একটি টেবিল আছে যেখানে ব্যবহারকারীর তথ্য সংরক্ষিত, এবং আপনি UserID কে Partition Key হিসেবে ব্যবহার করছেন।

  • Partition Key: UserID
  • এর মাধ্যমে, UserID অনুযায়ী প্রতিটি ব্যবহারকারীর ডেটা সনাক্ত করা যাবে এবং পার্টিশন করা হবে।

২. Partition Key এবং Sort Key (পার্টিশন কী এবং সোর্ট কী):

  • Sort Key হল একটি দ্বিতীয় কী (Second Attribute) যা আইটেমগুলিকে একই পার্টিশনে অর্ডার করতে সাহায্য করে।
  • এটি Composite Key এর অংশ, যেখানে একটি Partition Key এবং একটি Sort Key একসাথে একটি আইটেমকে অনন্যভাবে চিহ্নিত করে।
  • Sort Key এর মাধ্যমে, একই Partition Key এর অধীনে একাধিক আইটেম সংরক্ষণ করা সম্ভব হয়, এবং সেগুলির মধ্যে একটি নির্দিষ্ট অর্ডার তৈরি করা যায়।

উদাহরণ:
ধরা যাক, আপনি একটি Order টেবিল তৈরি করেছেন, যেখানে প্রতিটি ব্যবহারকারীর অর্ডারগুলি সংরক্ষিত হবে। এখানে, আপনি UserID কে Partition Key এবং OrderID কে Sort Key হিসেবে ব্যবহার করতে পারেন।

  • Partition Key: UserID (ব্যবহারকারীর আইডি)
  • Sort Key: OrderID (অর্ডারের আইডি)

এই কনফিগারেশনে, একজন ব্যবহারকারী একাধিক অর্ডার করতে পারেন, এবং প্রতিটি অর্ডারকে আলাদাভাবে শনাক্ত করা যাবে UserID এবং OrderID এর মাধ্যমে।


Primary Key এর উদাহরণ:

ধরা যাক, আপনার একটি টেবিল আছে Users নামে, যেখানে প্রতিটি ব্যবহারকারীর তথ্য সংরক্ষিত থাকে।

Example 1:

  • Partition Key: UserID
  • Item 1: { "UserID": "123", "Name": "John Doe", "Age": 30 }
  • Item 2: { "UserID": "124", "Name": "Jane Doe", "Age": 28 }

Example 2 (Composite Key):

  • Partition Key: UserID
  • Sort Key: OrderID
  • Item 1: { "UserID": "123", "OrderID": "001", "Total": 150 }
  • Item 2: { "UserID": "123", "OrderID": "002", "Total": 200 }

Sort Key এর ব্যবহার:

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

  • Sort Key আপনাকে একই Partition Key এর অধীনে একাধিক রেকর্ড রাখার সুযোগ দেয়।
  • Sort Key এর মাধ্যমে আপনি ডেটাকে Ascending বা Descending অর্ডারে সাজাতে পারেন এবং এটি কোয়েরি অপারেশনকে আরও কার্যকরী করে তোলে।

Conclusion:

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

এটি DynamoDB এর মূল ধারণার একটি গুরুত্বপূর্ণ অংশ, কারণ এটি ডেটাবেসের পারফরম্যান্স, স্কেলেবিলিটি এবং অর্ডারিং সক্ষমতা সরাসরি প্রভাবিত করে।

common.content_added_by

Partition Key এবং Data Distribution

229
229

DynamoDB একটি NoSQL ডেটাবেস যা পারফরম্যান্স এবং স্কেলেবিলিটির জন্য ডিজাইন করা হয়েছে। এর মূল ভিত্তি হল Partition Key (বা Primary Key এর অংশ), যা ডেটা ভাগ করার জন্য ব্যবহৃত হয়। DynamoDB এর পারফরম্যান্স এবং স্কেলিং কার্যকারিতা অনেকটাই নির্ভর করে কিভাবে আপনি Partition Key নির্বাচন করেন এবং কিভাবে ডেটা সঠিকভাবে বিতরণ হয়।

এখানে Partition Key এবং Data Distribution সম্পর্কে বিস্তারিত আলোচনা করা হলো:


Partition Key কী?

DynamoDB এ Partition Key একটি অপরিহার্য অংশ, যা একটি Primary Key হিসেবে ব্যবহৃত হয়। এটি Table এর প্রতিটি আইটেমের জন্য একটি ইউনিক আইডেন্টিফায়ার। Partition Key এর মাধ্যমে DynamoDB ডেটা সঠিকভাবে বিভক্ত করে এবং সিস্টেমের পারফরম্যান্স বজায় রাখে।

  • Partition Key এর মানে হল একটি একক মান (একটি স্ট্রিং বা নম্বর) যা DynamoDB টেবিলের আইটেমগুলিকে একে অপরের থেকে আলাদা করে এবং সেগুলিকে একটি নির্দিষ্ট পার্টিশনে সংরক্ষণ করতে সাহায্য করে।
  • যখন আপনি Partition Key ব্যবহার করেন, DynamoDB সেই Partition Key এর উপর ভিত্তি করে ডেটা ভাগ করে এবং তার পরে Data Partitioning এবং Scaling এর জন্য স্বয়ংক্রিয়ভাবে কাজ করে।

Partition Key এর গঠন:

  • যদি আপনি একটি Primary Key হিসেবে শুধুমাত্র একটি Partition Key ব্যবহার করেন, তাহলে এটি একটি Simple Primary Key হিসেবে পরিচিত।
  • এই Partition Key এবং Table এর আইটেমগুলো hashing প্রক্রিয়া মাধ্যমে বিভিন্ন partitions এ সঞ্চিত হয়, যেখানে ডেটা সঠিকভাবে ভাগ করা হয়।

উদাহরণ: ধরা যাক, আপনি একটি টেবিল তৈরি করছেন যেখানে UserId হবে Partition Key:

  • UserId"user_123", "user_456", "user_789"
  • DynamoDB এগুলিকে পৃথক partitions এ রাখবে, যাতে ডেটার দ্রুত অ্যাক্সেস পাওয়া যায়।

Data Distribution in DynamoDB

DynamoDB এর ডেটা ডিসট্রিবিউশন একটি গুরুত্বপূর্ণ বিষয় যা পারফরম্যান্স এবং স্কেলিং নিশ্চিত করতে সাহায্য করে। এটি পার্টিশনিং এবং ডেটা distribution এর মাধ্যমে সিস্টেমের কর্মক্ষমতা বজায় রাখে।

Data Partitioning:

DynamoDB ডেটার পারফরম্যান্স উন্নত করার জন্য ডেটাকে partitions বা ভাগে বিভক্ত করে রাখে। Partition Key এর মানের উপর ভিত্তি করে ডেটা একাধিক পার্টিশনে ভাগ হয়। একটি partition একটি নির্দিষ্ট অংশে ডেটা সংরক্ষণ করে এবং যখন ডেটার পরিমাণ বৃদ্ধি পায়, DynamoDB আরও পার্টিশন তৈরি করে।

Partitioning কিভাবে কাজ করে?
  • DynamoDB hashing পদ্ধতিতে ডেটাকে বিভক্ত করে, যেখানে প্রতিটি Partition Key একটি নির্দিষ্ট hash value তে রূপান্তরিত হয়।
  • এই hash value পার্টিশন কীগুলিকে নির্ধারণ করে, এবং সিস্টেম নিশ্চিত করে যে ডেটার সঠিকভাবে বিতরণ হচ্ছে।
  • যদি কোনো একটি Partition Key অত্যন্ত জনপ্রিয় হয় (অর্থাৎ, তার জন্য প্রচুর রিকোয়েস্ট আসছে), তাহলে এটি hot partition হিসেবে পরিচিত হবে এবং সিস্টেমের পারফরম্যান্সে সমস্যা সৃষ্টি করতে পারে। এটি Partition Hotspotting হিসেবে পরিচিত।

Data Distribution Strategies:

  1. Uniform Distribution:
    • একটি ভাল Partition Key এমনটি হওয়া উচিত যা ডেটাকে সমানভাবে বিভক্ত করতে সক্ষম। এটি নিশ্চিত করে যে ডেটার সব পার্টিশনে সমান লোড থাকবে এবং সিস্টেমের পারফরম্যান্স ভালো থাকবে।
  2. Hot Partition Avoidance:
    • যখন একটি নির্দিষ্ট Partition Key এর জন্য অধিক রিকোয়েস্ট আসতে থাকে, তখন সেই Partition Key hot partition হয়ে উঠতে পারে। এটি পারফরম্যান্সের জন্য ক্ষতিকর হতে পারে।
    • উদাহরণস্বরূপ, যদি আপনার Partition Key একটি তারিখ হয় এবং দিনের একটি নির্দিষ্ট সময়ের মধ্যে প্রচুর রিকোয়েস্ট আসে, তাহলে সিস্টেমের একটি নির্দিষ্ট পার্টিশনে অতিরিক্ত লোড পড়বে, যা পারফরম্যান্সের উপর প্রভাব ফেলবে।
    • এটি এড়ানোর জন্য, composite partitioning বা আরও ভালো Partition Key নির্বাচন করা উচিত।
  3. Hot Partition Example:
    • ধরুন, আপনি Timestamp কে Partition Key হিসেবে ব্যবহার করেছেন। যদি কোনও নির্দিষ্ট সময়ের মধ্যে (যেমন রাত ৯টার সময়) প্রচুর ডেটা আসতে থাকে, তাহলে এই সময়ের পার্টিশনটি অত্যন্ত ব্যস্ত হয়ে পড়বে এবং পারফরম্যান্সের সমস্যা তৈরি করতে পারে।
    • এ ধরনের সমস্যা থেকে রক্ষা পেতে, আপনি কিছু randomization (যেমন, timestamp এর সাথে একটি অ্যাডিশনাল সল্ট ভ্যালু যোগ করা) ব্যবহার করতে পারেন।

Data Distribution Example:

ধরা যাক, আপনার একটি Order টেবিল আছে, যেখানে OrderId হল Partition Key:

  • যখন নতুন অর্ডার যুক্ত হবে, DynamoDB ঐ OrderId কে এক নির্দিষ্ট পার্টিশনে রাখবে, যাতে ডেটার দ্রুত অ্যাক্সেস করা যায়।
  • যদি OrderId সঠিকভাবে নির্বাচিত হয়, তাহলে ডেটা বিভিন্ন পার্টিশনে সুন্দরভাবে বিতরণ হবে এবং পারফরম্যান্স ভালো থাকবে।

Partition Key নির্বাচনের টিপস:

  1. Uniform Access: এমন Partition Key নির্বাচন করুন যা ডেটাকে সমানভাবে ভাগ করে। অর্থাৎ, একক Partition Key এর জন্য অতিরিক্ত ট্রাফিক আসবে না।
  2. Avoid Hotspotting: একক Partition Key এর জন্য অনেক রিকোয়েস্ট না আসা নিশ্চিত করুন।
  3. Consider Data Growth: ভবিষ্যতে ডেটা বৃদ্ধি পাবার সাথে সাথে Partition Key এর কার্যকারিতা বজায় রাখতে পরিকল্পনা করুন।
  4. Efficient Hashing: Partition Key এমনভাবে নির্বাচন করুন যাতে hashing সঠিকভাবে ডেটা ভাগ করতে পারে।

সারাংশ:

  • Partition Key হল DynamoDB এর Primary Key এর একটি অংশ যা ডেটাকে পার্টিশনে বিভক্ত করে।
  • Data Distribution হল DynamoDB এর পারফরম্যান্স এবং স্কেলেবিলিটি নিশ্চিত করার জন্য ডেটার সঠিকভাবে বিতরণ করার প্রক্রিয়া।
  • একটি ভাল Partition Key ডেটা সমানভাবে বিতরণ করতে সহায়তা করে এবং Hot Partition থেকে বাঁচতে সাহায্য করে, যা সিস্টেমের পারফরম্যান্সে সমস্যা সৃষ্টি করতে পারে।

DynamoDB এর পারফরম্যান্স এবং দক্ষতা নিশ্চিত করতে একটি সঠিক Partition Key নির্বাচন করা অত্যন্ত গুরুত্বপূর্ণ।

common.content_added_by

Read এবং Write Capacity Units (RCU, WCU)

240
240

DynamoDB একটি প্রোডাকশন-গ্রেড NoSQL ডেটাবেস সার্ভিস যা ওয়েব অ্যাপ্লিকেশন এবং অন্যান্য সিস্টেমে ডেটা সংরক্ষণ এবং অ্যাক্সেস করতে ব্যবহৃত হয়। DynamoDB এর পারফরম্যান্স এবং খরচ পরিচালনা করার জন্য, Read Capacity Units (RCU) এবং Write Capacity Units (WCU) ব্যবহার করা হয়। এগুলি হল টেবিলের পারফরম্যান্স কনফিগারেশনের প্রধান অংশ এবং ডেটাবেসের ক্ষমতা পরিচালনা করতে সাহায্য করে।


1. Read Capacity Units (RCU)

RCU (Read Capacity Unit) হল একক অপারেশনের জন্য অ্যাপ্লিকেশন কত দ্রুত ডেটা পড়তে পারে তার পরিমাপ। যখন আপনি DynamoDB টেবিল থেকে ডেটা পড়েন, তখন আপনি নির্দিষ্ট সংখ্যক RCU ব্যবহার করবেন।

RCU হিসাব করার নিয়ম:

  • 1 RCU হল একটি Strongly Consistent Read অপারেশন, যা প্রতি সেকেন্ডে ৪ KB ডেটা পড়তে পারে।
  • 1 RCU হল একটি Eventually Consistent Read অপারেশন, যা প্রতি সেকেন্ডে ৮ KB ডেটা পড়তে পারে।

Strongly Consistent Read মানে হল যে ডেটা সবসময় সর্বশেষ আপডেট হওয়া রেকর্ড প্রদর্শন করবে। অন্যদিকে, Eventually Consistent Read অল্প সময়ের জন্য পুরনো ডেটাও ফেরত দিতে পারে, কিন্তু এতে পারফরম্যান্স কিছুটা ভালো হয়।

উদাহরণ:

  • যদি আপনার টেবিল থেকে 8 KB ডেটা পড়তে হয় এবং আপনি Strongly Consistent Read ব্যবহার করেন, তাহলে আপনাকে 2 RCU প্রয়োজন হবে (কারণ 1 RCPU 4KB পড়তে সক্ষম)।
  • Eventually Consistent Read ব্যবহার করলে আপনি 1 RCU দিয়ে 8KB পড়তে পারবেন।

2. Write Capacity Units (WCU)

WCU (Write Capacity Unit) হল একক অপারেশনের জন্য অ্যাপ্লিকেশন কত দ্রুত ডেটা লিখতে পারে তার পরিমাপ। যখন আপনি DynamoDB টেবিলের মধ্যে নতুন ডেটা লেখেন বা বিদ্যমান ডেটা আপডেট করেন, তখন আপনি নির্দিষ্ট সংখ্যক WCU ব্যবহার করবেন।

WCU হিসাব করার নিয়ম:

  • 1 WCU হল ১ সেকেন্ডে ১ KB ডেটা লেখার জন্য।
  • প্রতিটি Write অপারেশন ১ KB ডেটা লেখে, তবে যদি আপনি ১ KB এর চেয়ে বড় ডেটা লিখেন, তবে WCU এর সংখ্যা বাড়বে। উদাহরণস্বরূপ, যদি আপনি ৩ KB ডেটা লেখেন, তবে ৩ WCU প্রয়োজন হবে।

উদাহরণ:

  • যদি আপনি 3 KB ডেটা আপডেট করেন, তবে আপনাকে 3 WCU প্রয়োজন।
  • যদি আপনি 2 KB ডেটা লিখেন, তবে 2 WCU প্রয়োজন।

3. RCU এবং WCU এর মধ্যে পার্থক্য:

  • RCU এবং WCU উভয়ই DynamoDB টেবিলের স্কেলিং এবং পারফরম্যান্সকে নিয়ন্ত্রণ করে।
  • RCU ডেটা রিডিং অপারেশন এবং WCU ডেটা রাইটিং অপারেশন নিয়ন্ত্রণ করে।
  • RCU শুধুমাত্র রিড অপারেশন সম্পর্কিত এবং WCU শুধুমাত্র রাইট অপারেশন সম্পর্কিত।

4. Provisioned Mode এবং On-Demand Mode এ RCPU এবং WCPU এর প্রভাব

DynamoDB এ দুটি মুড রয়েছে যেখানে আপনি RCU এবং WCU কনফিগার করতে পারবেন:

  • Provisioned Mode: আপনি নির্দিষ্ট সংখ্যক RCU এবং WCU প্রিপেইডভাবে কনফিগার করেন। এর ফলে, অ্যাপ্লিকেশন যখন ডেটা অ্যাক্সেস করে, তখন DynamoDB ওই সংখ্যক ইউনিট বরাদ্দ করে।
  • On-Demand Mode: এখানে DynamoDB স্বয়ংক্রিয়ভাবে প্রয়োজন অনুযায়ী RCPU এবং WCPU বরাদ্দ করে। আপনি নির্দিষ্ট কনফিগারেশন বা সীমানা সেট করতে না পারেন, তবে খরচ বেশি হবে যদি আপনার ট্রাফিক হঠাৎ বেড়ে যায়।

5. RCPU এবং WCPU কিভাবে কনফিগার করবেন:

Provisioned Mode এ RCPU এবং WCPU কনফিগার করা:

  1. AWS Management Console এ গিয়ে DynamoDB টেবিল খুলুন।
  2. Capacity ট্যাবে যান।
  3. আপনি Read capacity units (RCU) এবং Write capacity units (WCU) নির্ধারণ করতে পারবেন।
  4. আপনার প্রয়োজনীয় স্কেল এবং ট্রাফিকের ভিত্তিতে মান নির্ধারণ করুন।

On-Demand Mode এ RCPU এবং WCPU কনফিগার করা:

On-Demand Mode তে, আপনি RCU এবং WCU কনফিগার করতে পারেন না। DynamoDB স্বয়ংক্রিয়ভাবে এই মান নির্ধারণ করে এবং ট্রাফিকের পরিবর্তন অনুযায়ী এটি বাড়াতে বা কমাতে থাকে।


6. RCPU এবং WCPU কনফিগারেশনের চ্যালেঞ্জ:

  1. ওভারপ্রাইসিং: যদি আপনি বেশি RCPU/WCPU বরাদ্দ করেন, তবে অপ্রয়োজনীয় খরচ হতে পারে। তাই ব্যবহারের ধরন এবং লোডের ওপর ভিত্তি করে মাপ নেওয়া উচিত।
  2. থ্রুপুট সীমা: প্রয়োজনের তুলনায় খুব কম RCPU/WCPU কনফিগার করলে, পারফরম্যান্স কমে যেতে পারে এবং থ্রুপুট সীমা অতিক্রম হতে পারে, যার ফলে থ্রোটলিং হতে পারে।

সারাংশ:

  • RCU এবং WCPU হল DynamoDB টেবিলের পারফরম্যান্সের মূল উপাদান, যা সঠিকভাবে কনফিগার করতে হয়।
  • Provisioned Mode এবং On-Demand Mode এর মধ্যে পার্থক্য বুঝে আপনাকে আপনার অ্যাপ্লিকেশনের জন্য উপযুক্ত কনফিগারেশন নির্বাচন করতে হবে।

এগুলি সঠিকভাবে কনফিগার করলে, আপনার DynamoDB টেবিলের পারফরম্যান্স ও খরচ উভয়ই অপটিমাইজ করা সম্ভব।

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

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

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

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