এই পৃষ্ঠায় Cloud Firestore ডকুমেন্ট, ফিল্ড এবং ইনডেক্স এন্ট্রির স্টোরেজ সাইজ সম্পর্কে বর্ণনা করা হয়েছে।
আপনি মূল্য নির্ধারণ পৃষ্ঠায় এই স্টোরেজের খরচ সম্পর্কে জানতে পারবেন।
স্ট্রিংয়ের আকার
স্ট্রিংয়ের আকার UTF-8 এনকোডেড বাইটের সংখ্যার সাথে ১ যোগ করে গণনা করা হয়।
নিম্নলিখিতগুলি স্ট্রিং হিসাবে সংরক্ষিত আছে:
- সংগ্রহের নাম
- ক্ষেত্রের নাম
- স্ট্রিং ফিল্ডের মান (যার মধ্যে
_idঅন্তর্ভুক্ত)
উদাহরণস্বরূপ:
-
tasksনামের কালেকশনটি ৫ বাইট + ১ বাইট, অর্থাৎ মোট ৬ বাইট ব্যবহার করে। - ফিল্ডের নামের
descriptionজন্য ১১ বাইট + ১ বাইট, অর্থাৎ মোট ১২ বাইট প্রয়োজন হয়।
ক্ষেত্রের মান আকার
নিচের সারণিতে প্রকারভেদে ফিল্ড ভ্যালুগুলোর আকার দেখানো হয়েছে।
| প্রকার | আকার |
|---|---|
| অ্যারে | এর মানগুলোর আকারের যোগফল |
| বুলিয়ান | ১ বাইট |
| বাইনারি ডেটা | একটি নন-জেনেরিক (নন-০) সাবটাইপের জন্য বাইট দৈর্ঘ্য + ১ |
| তারিখ | ৮ বাইট |
| দ্বিগুণ | ৮ বাইট |
| ডাবল১২৮ | ১৬ বাইট |
| ৩২-বিট পূর্ণসংখ্যা | ৪ বাইট |
| ৬৪-বিট পূর্ণসংখ্যা (দীর্ঘ) | ৮ বাইট |
| বস্তু | এমবেডেড অবজেক্টের প্রতিটি ফিল্ডের নামের স্ট্রিং সাইজ এবং প্রতিটি ফিল্ডের মানের সাইজের যোগফল |
| মিন কী | ১ বাইট |
| ম্যাক্স কী | ১ বাইট |
| শূন্য | ১ বাইট |
| নিয়মিত অভিব্যক্তি | (প্যাটার্নের দৈর্ঘ্য + ১) + (বিকল্পের দৈর্ঘ্য + ১) |
| টাইমস্ট্যাম্প | ৮ বাইট |
| স্ট্রিং | UTF-8 এনকোড করা বাইটের সংখ্যা + ১ |
উদাহরণস্বরূপ, done নামের একটি বুলিয়ান ফিল্ড ৬ বাইট ব্যবহার করবে:
-
doneফিল্ডের নামের জন্য ৫ বাইট - বুলিয়ান মানের জন্য ১ বাইট
ডকুমেন্টের আকার
একটি ডকুমেন্টের আকার হলো নিম্নলিখিত বিষয়গুলোর যোগফল:
- সংগ্রহের নামের স্ট্রিং আকার
- প্রতিটি ফিল্ড নামের (
_idবাদে) স্ট্রিং সাইজের যোগফল - প্রতিটি ফিল্ড মানের আকারের যোগফল (
_idসহ ) - ৪৮ অতিরিক্ত বাইট
এই উদাহরণটি কালেকশন tasks একটি ডকুমেন্টের জন্য:
{
"_id": "my_task_id",
"type": "Personal",
"done": false,
"priority": 1,
"description": "Learn Cloud Firestore"
}
ফিল্ডগুলোর মোট আকার ৭৮ বাইট:
| ক্ষেত্রের নাম এবং মান | বাইটে ফিল্ডের আকার |
|---|---|
"_id": "my_task_id" | ফিল্ডটির স্ট্রিং মানের জন্য ১১ |
"type": "Personal" | ১৪ ফিল্ডের নামের জন্য ৫ + ফিল্ডের স্ট্রিং মানের জন্য ৯ |
"done": false | ৬ ফিল্ডের নামের জন্য ৫ + ফিল্ডের বুলিয়ান মানের জন্য ১ |
"priority": 1 | ১৭ ফিল্ডের নামের জন্য ৯ + ফিল্ডটির ৩২-বিট পূর্ণসংখ্যা মানের জন্য ৪ |
"description": "Learn Cloud Firestore" | ৩৪ ফিল্ডের নামের জন্য ১২ + ফিল্ডের স্ট্রিং মানের জন্য ২২ |
সুতরাং ডকুমেন্টটির আকার হলো ৬ + ৭৮ + ৪৮ = ১৩২ বাইট:
- সংগ্রহের নামের জন্য ৬
- ফিল্ডগুলির জন্য ৭৮ বাইট
- ৪৮ অতিরিক্ত বাইট
সূচক এন্ট্রি আকার
একটি ইনডেক্সের কোনো এন্ট্রির সাইজ হলো নিম্নলিখিতগুলোর যোগফল:
- সংগ্রহের নামের স্ট্রিং আকার
-
_idফিল্ডের মানের আকার - সূচিবদ্ধ ফিল্ড মানগুলির যোগফল
- ৪৮ অতিরিক্ত বাইট
tasks সংগ্রহে থাকা একটি ডকুমেন্ট বিবেচনা করুন:
{
"_id": "my_task_id",
"type": "Personal",
"done": false,
"priority": 1,
"description": "Learn Cloud Firestore"
}
done এবং priority ফিল্ডের (উভয়ই ঊর্ধ্বক্রমে) উপর নির্মিত একটি ইনডেক্সের ক্ষেত্রে, এই ইনডেক্সে প্রতিটি এন্ট্রির মোট আকার হলো ৭০ বাইট:
-
tasksকালেকশন নামের জন্য ৬ বাইট -
_idফিল্ডের মানের জন্য ১১ বাইট - বুলিয়ান ফিল্ডের মানের জন্য ১ বাইট
- ৩২-বিট পূর্ণসংখ্যা ফিল্ড মানের জন্য ৪ বাইট
- ৪৮ অতিরিক্ত বাইট
স্পার্স ইনডেক্সের ক্ষেত্রে, যদি কোনো ডকুমেন্টে কোনো ফিল্ড অন্তর্ভুক্ত না থাকে, তাহলে কোনো ইনডেক্স এন্ট্রি তৈরি করা হয় না। যদি কোনো ডকুমেন্টে ইনডেক্স করা ফিল্ডগুলোর মধ্যে অন্তত একটি থাকে, তাহলে একটি ইনডেক্স এন্ট্রি তৈরি করা হয় এবং অনুপস্থিত ইনডেক্স করা ফিল্ডগুলোর মান NULL সেট করা হয়।
স্ট্রিম ইভেন্ট এন্ট্রির আকার পরিবর্তন করুন
একটি চেঞ্জ স্ট্রিম ইভেন্টের আকার হলো নিম্নলিখিতগুলির মোট যোগফল:
- সংগ্রহের নামের স্ট্রিং সাইজের যোগফল (x2)।
- একটি ডকুমেন্টের সন্নিবেশ এবং আপডেট ইভেন্টের জন্য:
-
fullDocumentবাupdateDescriptionএর প্রতিটি ফিল্ড নামের স্ট্রিং সাইজের যোগফল (_idবাদে)। -
fullDocumentবাupdateDescriptionএর প্রতিটি ফিল্ড ভ্যালুর সাইজের যোগফল (_idসহ )।
-
- একাধিক ডকুমেন্ট লেনদেনের ক্ষেত্রে প্রযোজ্য হলে,
lsidএবংtxnNumberজন্য অতিরিক্ত ২৪ বাইট প্রয়োজন হবে। - ৯২ অতিরিক্ত বাইট
টাস্কস কালেকশনে থাকা কোনো ডকুমেন্টের ইনসার্ট ইভেন্টের একটি উদাহরণ বিবেচনা করুন:
{
"_id": { <Resume Token> },
"operationType": "insert",
"clusterTime": <Timestamp>,
"wallTime": <ISODate>,
"ns": {
"db": "db",
"coll": "tasks"
},
"documentKey": {
"_id": "my_task_id"
},
"fullDocument": {
"_id": "my_task_id",
"description": "Learn Cloud Firestore"
},
}
চেঞ্জ স্ট্রিম ইভেন্টটির মোট আকার হলো ১৪৯ বাইট:
- সাধারণ মেটাডেটার জন্য ৯২ বাইট
- সংগ্রহের নাম
tasks(৬ বাইট) * ২ এর উপর ভিত্তি করে ১২ বাইট -
_idফিল্ডের মানের জন্য ১১ বাইট -
descriptionফিল্ডের নামের জন্য ১২ বাইট -
descriptionক্ষেত্রের মানের জন্য ২২ বাইট
টেক্সট সার্চ ইনডেক্স এন্ট্রির আকার
একটি ইনডেক্সে টেক্সট সার্চ ইনডেক্স এন্ট্রির আকার হলো নিম্নলিখিত বিষয়গুলোর যোগফল:
- সংগ্রহের নামের স্ট্রিং আকার
-
_idমানের আকার - সূচিবদ্ধ ফিল্ড মান থেকে বাইটের যোগফল (x2)
- সাধারণ মেটাডেটার জন্য অতিরিক্ত ৪৮ বাইট
tasks কালেকশনে _id my_task_id সহ একটি ডকুমেন্টের insert ইভেন্টের একটি উদাহরণ বিবেচনা করুন:
{ "_id": "my_place", "type": "Restaurant", "visited": false, "priority": 1, "location": GeoPoint(longitude, latitude) }
নিম্নলিখিত তথ্যের উপর ভিত্তি করে description এর উপর একটি টেক্সট সার্চ ইনডেক্স এন্ট্রির মোট আকার ১০৫ বাইট:
-
tasksকালেকশন নামের জন্য ৬ বাইট -
_idমানের জন্য ১১ বাইট -
descriptionক্ষেত্রের জন্য ২২ বাইট x2 এর উপর ভিত্তি করে ৪৪ বাইট। - সাধারণ মেটাডেটার জন্য অতিরিক্ত ৪৮ বাইট
ভূ-স্থানিক সূচক এন্ট্রি আকার
একটি সূচকে কোনো ভূ-স্থানিক সূচক এন্ট্রির আকার হলো নিম্নলিখিতগুলির যোগফল:
- সংগ্রহের নামের স্ট্রিং আকার
-
_idমানের আকার - প্রতিটি সূচীকৃত ভূ-বিন্দুর জন্য ১২৮ বাইট
- সাধারণ মেটাডেটার জন্য অতিরিক্ত ৪৮ বাইট
places কালেকশনে _id my_place সহ একটি ডকুমেন্টের জন্য একটি insert ইভেন্টের উদাহরণ বিবেচনা করুন:
{ "_id": "my_place", "type": "Restaurant", "visited": false, "priority": 1, "location": GeoPoint(longitude, latitude) }
location উপর একটি ভূ-স্থানিক সূচক এন্ট্রির মোট আকার হলো ১৯২ বাইট, যা নিম্নলিখিত বিষয়ের উপর ভিত্তি করে নির্ধারিত:
- `
placesকালেকশন নামের জন্য ৭ বাইট - ডকুমেন্ট আইডির জন্য ৯ বাইট
-
locationক্ষেত্রের জন্য ১২৮ বাইট - সাধারণ মেটাডেটার জন্য অতিরিক্ত ৪৮ বাইট
এরপর কী?
মূল্য নির্ধারণ সম্পর্কে জানুন।