این سند جزئیات قیمتگذاری Cloud Firestore را توضیح میدهد.
اگر با ارزی غیر از دلار آمریکا پرداخت کنید، قیمتهای ذکر شده به ارز شما در SKUهای پلتفرم ابری اعمال میشود.
نمای کلی قیمت گذاری
وقتی از Cloud Firestore استفاده میکنید، هزینههای زیر از شما دریافت میشود:
- تعداد اسنادی که میخوانید، مینویسید و حذف میکنید .
- تعداد ورودیهای شاخص خوانده شده برای برآورده کردن یک پرس و جو . برای جزئیات بیشتر در مورد خواندن شاخصها مراجعه کنید .
- میزان فضای ذخیرهسازی که پایگاه داده شما استفاده میکند ، شامل سربار مربوط به فرادادهها و ایندکسها.
- میزان پهنای باند شبکهای که استفاده میکنید .
میزان استفاده از فضای ذخیرهسازی و پهنای باند بر حسب گیگابایت (GiB) محاسبه میشود، که در آن ۱ گیگابایت = ۲۳۰ بایت. همه هزینهها روزانه محاسبه میشوند.
بخشهای زیر جزئیاتی در مورد نحوهی دریافت هزینه برای استفاده از Cloud Firestore ارائه میدهند.
سهمیه رایگان
Cloud Firestore سهمیه رایگانی ارائه میدهد که به شما امکان میدهد بدون هیچ هزینهای شروع به کار کنید. اگر به سهمیه بیشتری نیاز دارید، باید برای پروژه Google Cloud خود، پرداخت صورتحساب را فعال کنید .
سهمیهها روزانه اعمال میشوند و حدود نیمهشب به وقت اقیانوس آرام، مجدداً تنظیم میشوند.
جدول زیر خلاصهای از مبالغ سهمیه رایگان را نشان میدهد:
| سطح رایگان | سهمیه |
|---|---|
| دادههای ذخیره شده | ۱ گیگابایت |
| خوانش سند | ۵۰،۰۰۰ در روز |
| نوشتن سند | ۲۰،۰۰۰ در روز |
| حذف سند | ۲۰،۰۰۰ در روز |
| انتقال داده خروجی | ۱۰ گیگابایت در ماه |
عملیات و ویژگیهای زیر شامل استفاده رایگان نمیشوند. برای استفاده از این ویژگیها، باید صورتحساب را فعال کنید:
- حذفهای TTL
- دادههای PITR
- پشتیبانگیری از دادهها
- عملیات بازیابی
- عملیات کلون
برای اطلاعات بیشتر در مورد نحوه محاسبه این ویژگیها، به قیمتگذاری فضای ذخیرهسازی مراجعه کنید.
قیمتگذاری بر اساس مکان
برای مشاهده قیمتگذاری برای خواندن، نوشتن، حذف و ذخیرهسازی برای هر مکان Cloud Firestore ، به قیمتگذاری Google Cloud مراجعه کنید.
اگر با ارزی غیر از دلار آمریکا پرداخت کنید، قیمتهای ذکر شده به ارز شما در SKUهای پلتفرم ابری اعمال میشود.
سهمیه رایگان فقط برای یک پایگاه داده در هر پروژه اعمال میشود.
پروژهها میتوانند فقط یک پایگاه داده داشته باشند که واجد شرایط سهمیه رایگان باشد.
برای ایجاد پایگاههای داده اضافی، باید طرح صورتحساب پروژه خود را ارتقا دهید.
اولین پایگاه دادهای که ایجاد میکنید (صرف نظر از شناسه آن) واجد شرایط سهمیه رایگان است. اگر آن پایگاه داده را حذف کنید، پایگاه داده بعدی که ایجاد میکنید، پایگاه داده جدیدی میشود که واجد شرایط سهمیه رایگان است.
هیچ هزینه اضافی برای ایجاد یا حذف پایگاههای داده از شما دریافت نمیشود. هزینه استفاده از پایگاههای داده بعدی، بر اساس میزان استفاده از آن پایگاههای داده محاسبه خواهد شد.
میخواند، مینویسد و حذف میکند
برای خواندن اسناد و ورودیهای فهرست برای انجام یک پرسوجو، از شما هزینه دریافت میشود. برای هر نوشتن و حذف سندی که انجام میدهید، هزینه دریافت میشود.
هزینههای نوشتن و حذف ساده است. برای نوشتن، هر عملیات set یا update به عنوان یک نوشتن واحد محاسبه میشود.
هزینههای عملیات خواندن نکات ظریفی دارد که باید در نظر داشته باشید. بخشهای بعدی این نکات ظریف را به تفصیل توضیح میدهند.
ورودی فهرست خوانده میشود
برای هر دسته تا سقف ۱۰۰۰ ورودی فهرست که توسط یک پرسوجو خوانده میشوند، هزینه یک عملیات خواندن از شما دریافت میشود، مگر در موارد زیر:
برای پرسوجوهای جستجوی برداری K-نزدیکترین همسایه ، برای هر دسته تا ۱۰۰ ورودی شاخص برداری kNN که توسط پرسوجو خوانده میشوند، یک عملیات خواندن از شما هزینه میگیرد.
برای مثال، اگر عبارت جستجوی برداری زیر با
limit: 5۵ سند را برگرداند و ۱۵۵۰ ورودی شاخص برداری kNN را بخواند، هزینه ۵ عملیات خواندن برای اسناد برگردانده شده و ۱۶ عملیات خواندن برای ورودیهای شاخص برای شما محاسبه میشود:// Requires single-field vector index const vectorQuery: VectorQuery = db.collection('cities').findNearest('embedding_field', FieldValue.vector([3.0, 1.0, 2.0]), { limit: 5, distanceMeasure: 'EUCLIDEAN' });پرسوجوهایی که حداکثر یک فیلد محدوده دارند، برای خوانده شدن ورودیهای فهرست، هزینهای دریافت نمیکنند.
برای مثال، کوئری زیر شامل یک فیلد برابری (
age) و یک فیلد محدوده (start_date) است و برای ورودیهای اندیس خوانده شده هزینهای دریافت نمیکند:db.collection("employees").whereEqualTo("age", 35) .whereGreaterThanOrEqualTo("start_date", new Date(2020, 1, 1))کوئری زیر شامل دو فیلد محدوده (
ageوstart_date) است و برای ورودیهای اندیس هزینه دریافت میکند:db.collection("employees").whereGreaterThanOrEqualTo("age", 35) .whereGreaterThanOrEqualTo("start_date", new Date(2020, 1, 1))فیلدی که در عبارت order by ظاهر میشود، زمانی یک فیلد محدودهای در نظر گرفته میشود که حداقل یک فیلد محدودهای دیگر در پرسوجو وجود داشته باشد. بنابراین پرسوجوی زیر شامل دو فیلد محدودهای (
ageوstart_date) است و برای ورودیهای اندیس هزینه دریافت میکند:db.collection("employees").whereGreaterThanOrEqualTo("age", 35) .orderBy("start_date")فیلد
__name__همیشه یک فیلد محدوده در نظر گرفته میشود، حتی اگر فقط در یک فیلتر برابری استفاده شود. بنابراین، کوئری زیر شامل دو فیلد محدوده (ageو__name__) است و برای ورودیهای اندیس هزینه دریافت میکند:db.collection("employees").whereIn("__name__", Arrays.asList("/employees/Alice", "/employees/Bob")) .orderBy("age")
پرسوجوهای تجمیعی
برای پرسوجوهای تجمیعی مانند count() ، sum() و avg() ، همانطور که در بالا توضیح داده شد، برای ورودیهای شاخص خوانده شده توسط پرسوجو، هزینه دریافت میشود. برای پرسوجوهای تجمیعی که 0 ورودی شاخص خواندهاند، حداقل هزینه خواندن یک سند وجود دارد.
برای مثال، عملیاتهای count() که بین ۰ تا ۱۰۰۰ ورودی شاخص را میخوانند، برای یک بار خواندن سند هزینه دریافت میکنند. برای عملیات count() که ۱۵۰۰ ورودی شاخص را میخواند، برای ۲ بار خواندن سند هزینه دریافت میشود.
برای کسب اطلاعات بیشتر در مورد شاخصهای استفاده شده و ورودیهای شاخص خوانده شده، از Query Explain استفاده کنید.
گوش دادن به نتایج پرس و جو
Cloud Firestore به شما امکان میدهد به نتایج یک پرسوجو گوش دهید و هنگام تغییر نتایج پرسوجو، بهروزرسانیهای بلادرنگ را دریافت کنید.
وقتی به نتایج یک پرسوجو گوش میدهید، هر بار که سندی در مجموعه نتایج اضافه یا بهروزرسانی میشود، هزینهای برای خواندن آن از شما دریافت میشود. همچنین وقتی سندی به دلیل تغییر از مجموعه نتایج حذف میشود، هزینهای برای خواندن آن از شما دریافت میشود. (در مقابل، وقتی سندی حذف میشود، هزینهای برای خواندن آن از شما دریافت نمیشود.)
محاسبهی هزینهی شنوندهها در SDKS موبایل و وب به فعال بودن یا نبودن قابلیت ماندگاری آفلاین نیز بستگی دارد:
اگر قابلیت ماندگاری آفلاین فعال باشد و شنونده بیش از 30 دقیقه قطع شود (برای مثال، اگر کاربر آفلاین شود)، هزینه خواندن اسناد و ورودیهای فهرستبندی شده، مانند زمانی که یک پرسوجوی کاملاً جدید صادر کردهاید، از شما دریافت خواهد شد.
اگر قابلیت ماندگاری آفلاین غیرفعال باشد، هزینه خواندن اسناد و ورودیهای فهرستبندی شده، مانند زمانی که شنونده قطع و وصل میشود، از شما دریافت خواهد شد، گویی یک پرسوجوی کاملاً جدید صادر کردهاید.
مدیریت مجموعه نتایج بزرگ
Cloud Firestore چندین ویژگی دارد که به شما در مدیریت پرسوجوهایی که تعداد زیادی نتیجه برمیگردانند، کمک میکند:
- مکاننماها ، که به شما امکان میدهند یک پرسوجوی طولانیمدت را از سر بگیرید.
- نشانههای صفحه ، که به شما کمک میکنند نتایج پرسوجو را صفحهبندی کنید.
- محدودیتها ، که مشخص میکنند چه تعداد نتیجه بازیابی شود.
- آفستها ، که به شما امکان میدهند تعداد مشخصی از اسناد را نادیده بگیرید.
هیچ هزینه اضافی برای استفاده از مکاننما، نشانهگذاری صفحه و محدودیتها وجود ندارد. در واقع، این ویژگیها میتوانند با خواندن فقط اسنادی که واقعاً به آنها نیاز دارید، به شما در صرفهجویی در هزینه کمک کنند.
با این حال، وقتی درخواستی ارسال میکنید که شامل آفست است، برای هر سند رد شده، هزینه خواندن از شما دریافت میشود. به عنوان مثال، اگر درخواست شما از آفست ۱۰ استفاده کند و درخواست ۱ سند را برگرداند، هزینه ۱۱ بار خواندن از شما دریافت میشود. به دلیل این هزینه اضافی، تا حد امکان باید از مکاننماها به جای آفستها استفاده کنید.
پرسوجوهایی غیر از خواندن سند
برای درخواستهایی غیر از خواندن سند، مانند درخواست فهرستی از شناسههای مجموعه، هزینه یک بار خواندن سند از شما دریافت میشود. اگر دریافت مجموعه کامل نتایج به بیش از یک درخواست نیاز داشته باشد (مثلاً اگر از صفحهبندی استفاده میکنید)، برای هر درخواست یک بار هزینه دریافت میشود.
حداقل هزینه برای استعلام
برای هر پرسوجویی که انجام میدهید، حداقل هزینه خواندن یک سند وجود دارد، حتی اگر پرسوجو نتیجهای ندهد.
Cloud Firestore Security Rules
برای کتابخانههای کلاینت موبایل و وب، اگر Cloud Firestore Security Rules شما از exists() ، get() یا getAfter() برای خواندن یک یا چند سند از پایگاه داده شما استفاده کند، برای دفعات خواندن اضافی به شرح زیر از شما هزینه دریافت میشود:
برای مطالبی که برای ارزیابی Cloud Firestore Security Rules شما لازم است، هزینه دریافت میشود.
برای مثال، اگر قوانین شما به سه سند اشاره دارند، اما Cloud Firestore فقط باید دو مورد از آن اسناد را برای ارزیابی قوانین شما بخواند، برای دو بار خواندن اسناد وابسته، هزینه اضافی از شما دریافت خواهد شد.
حتی اگر قوانین شما بیش از یک بار به آن سند اشاره کند، فقط هزینه یک بار مطالعه برای هر سند وابسته از شما دریافت میشود.
هزینه ارزیابی قوانین فقط یک بار برای هر درخواست از شما دریافت میشود.
در نتیجه، خواندن چندین سند میتواند هزینه کمتری نسبت به خواندن تک تک اسناد داشته باشد، زیرا خواندن چندین سند به درخواستهای کمتری نیاز دارد.
وقتی به نتایج یک پرسوجو گوش میدهید، در تمام موارد زیر هزینه ارزیابی قوانین از شما دریافت میشود:
- وقتی استعلام را صادر میکنید.
- هر بار نتایج جستجو بهروزرسانی میشوند.
- هر زمان که دستگاه کاربر آفلاین شود، دوباره آنلاین میشود.
- هر زمان که قوانین خود را بهروزرسانی کنید.
- هر زمان که اسناد وابسته را در قوانین خود بهروزرسانی کنید.
حجم ذخیرهسازی پایگاه داده
شما برای میزان دادهای که در Cloud Firestore ذخیره میکنید، از جمله سربار ذخیرهسازی، هزینه دریافت میکنید. میزان سربار شامل ابرداده، ایندکسهای خودکار و ایندکسهای ترکیبی میشود.
هر سندی که در Cloud Firestore ذخیره میشود، به ابردادههای زیر نیاز دارد:
- شناسه سند، شامل شناسه مجموعه و نام سند.
- نام و مقدار هر فیلد. از آنجا که Cloud Firestore بدون طرح است، نام هر فیلد در یک سند باید به همراه مقدار فیلد ذخیره شود.
- هر فهرست تک فیلدی و ترکیبی که به سند اشاره دارد. هر ورودی فهرست شامل شناسه مجموعه؛ هر تعداد مقادیر فیلد، بسته به تعریف فهرست؛ و نام سند است.
هزینههای ذخیرهسازی بر حسب گیگابایت در ماه است و روزانه محاسبه میشود. Cloud Firestore حجم پایگاه داده را روزانه اندازهگیری میکند. در طول یک ماه، از این نقاط نمونه میانگین گرفته میشود تا حجم ذخیرهسازی پایگاه داده محاسبه شود. این مقدار میانگین در قیمت واحد ذخیرهسازی (گیگابایت در ماه) ضرب میشود.
بیاموزید که چگونه فضای ذخیرهسازی Cloud Firestore در محاسبات اندازه فضای ذخیرهسازی محاسبه میشود.
دادههای PITR
اگر PITR را فعال کنید، هزینه ذخیره دادههای PITR از شما دریافت میشود. اکثر مشتریان متوجه خواهند شد که هزینه کلی ذخیره دادههای PiTR مشابه هزینه ذخیره پایگاه داده است.
هزینههای ذخیرهسازی برای PITR بر حسب گیگابایت در ماه است و روزانه محاسبه میشود. Cloud Firestore حجم پایگاه داده را روزانه اندازهگیری میکند. در طول یک ماه، از این نقاط نمونه میانگین گرفته میشود تا حجم ذخیرهسازی پایگاه داده محاسبه شود. این مقدار میانگین در قیمت واحد PITR (گیگابایت در ماه) ضرب میشود.
برای مثال، اگر میانگین حجم پایگاه داده شما در طول یک ماه ۱ گیگابایت باشد و PITR برای کل ماه فعال باشد، حجم داده PITR قابل پرداخت نیز ۱ گیگابایت خواهد بود.
حداقل هزینه: حتی اگر PITR را ظرف یک روز پس از فعالسازی غیرفعال کنید، ممکن است تا سقف ۱ روز هزینه ذخیرهسازی PITR از شما کسر شود.
عملیات پشتیبانگیری از دادهها و بازیابی آنها
اگر پشتیبانگیری را فعال کنید، هزینه ذخیرهسازی پشتیبانهای پایگاه داده از شما دریافت میشود. اندازه فضای ذخیرهسازی برای پشتیبانگیری برابر با اندازه فضای ذخیرهسازی پایگاه داده هنگام تهیه پشتیبان است.
هزینههای ذخیرهسازی برای پشتیبانگیریها بر حسب گیگابایت در ماه است. در طول یک ماه، تعداد روزهایی که هر نسخه پشتیبان نگهداری میشود، به طور متوسط در طول ماه نیز محاسبه میشود. هزینه هر نسخه پشتیبان با استفاده از حجم ذخیرهسازی نسخه پشتیبان ضربدر نسبت ماهی که نسخه پشتیبان نگهداری میشود، ضربدر قیمت واحد محاسبه میشود. مرزهای روز برای اهداف صورتحساب توسط منطقه زمانی آمریکا/لسآنجلس تعریف میشوند.
وقتی عملیات بازیابی را انجام میدهید، Cloud Firestore اندازه پشتیبان را برای عملیات بازیابی اندازهگیری میکند. اندازه پشتیبان در قیمت واحد عملیات بازیابی (GiB) ضرب میشود.
توضیح پرس و جو
استفاده از Firestore Query Explain هزینههایی را به همراه دارد.
وقتی یک پرسوجو با گزینه پیشفرض توضیح داده میشود، هیچ عملیات خواندن اندیس انجام نمیشود. صرف نظر از پیچیدگی پرسوجو، یک عملیات خواندن هزینه دارد.
وقتی یک پرسوجو با گزینه تحلیل توضیح داده میشود، عملیات فهرستبندی و خواندن انجام میشود، بنابراین هزینه پرسوجو طبق معمول از شما دریافت میشود. هیچ هزینه اضافی برای فعالیت توضیح و تحلیل وجود ندارد، فقط هزینه معمول برای اجرای پرسوجو محاسبه میشود.
پهنای باند شبکه
همانطور که در بخشهای بعدی نشان داده شده است، هزینه پهنای باند شبکه مورد استفاده توسط درخواستهای Cloud Firestore شما از شما دریافت میشود. هزینه پهنای باند شبکه یک درخواست Cloud Firestore به اندازه پاسخ درخواست، محل پایگاه داده Cloud Firestore شما و مقصد پاسخ بستگی دارد.
Cloud Firestore اندازه پاسخ را بر اساس فرمت پیام سریالی محاسبه میکند. سربار پروتکل، مانند سربار SSL، جزو استفاده از پهنای باند شبکه محسوب نمیشود. درخواستهایی که توسط Cloud Firestore Security Rules شما رد میشوند، جزو استفاده از پهنای باند شبکه محسوب نمیشوند.
برای اطلاع از میزان پهنای باند شبکهای که استفاده کردهاید، میتوانید از کنسول Google Cloud برای خروجی گرفتن از دادههای صورتحساب خود در یک فایل استفاده کنید.
قیمت گذاری عمومی شبکه
برای درخواستهایی که از درون پلتفرم ابری گوگل سرچشمه میگیرند (برای مثال، از یک برنامه که روی موتور محاسباتی گوگل اجرا میشود)، هزینهها به شرح زیر محاسبه میشوند:
| نوع ترافیک | قیمت |
|---|---|
| انتقال داده ورودی | رایگان |
| انتقال داده در یک منطقه | رایگان |
| انتقال داده بین مناطق در همان چند منطقه | رایگان |
| انتقال داده بین مناطق داخل ایالات متحده (به ازای هر گیگابایت) | ۰.۰۱ دلار (۱۰ گیگابایت اول در ماه رایگان است) |
| انتقال داده بین مناطق، به جز ترافیک بین مناطق ایالات متحده | نرخ انتقال داده اینترنتی خروجی پلتفرم ابری گوگل |
اگر با ارزی غیر از دلار آمریکا پرداخت کنید، قیمتهای ذکر شده به ارز شما در SKUهای پلتفرم ابری اعمال میشود.
Cloud Firestore همچنین مشمول هزینههای اضافی برای خروج از اینترنت برای موارد زیر است:
- درخواستهای Google Cloud بین مناطق، بدون احتساب ترافیک بین مناطق ایالات متحده
- درخواستهای خارج از Google Cloud (برای مثال، از دستگاه تلفن همراه کاربر)
نرخهای خروجی اینترنت Google Cloud را ببینید.
نمونه قیمت گذاری را ببینید
برای مشاهده نحوه محاسبه هزینههای صورتحساب Cloud Firestore در یک برنامه نمونه در دنیای واقعی، به مثال صورتحساب Cloud Firestore مراجعه کنید.
مدیریت هزینهها
برای جلوگیری از هزینههای غیرمنتظره در صورتحساب خود، با استفاده از کنسول صورتحساب Google Cloud ، بودجهها و هشدارهای ماهانه تنظیم کنید.
برای نظارت بر میزان استفاده Cloud Firestore خود، تب Cloud Firestore Usage را در کنسول Firebase باز کنید. از داشبورد برای سنجش میزان استفاده خود در دورههای زمانی مختلف استفاده کنید.