این سند جزئیات قیمت گذاری Cloud Firestore را توضیح می دهد.
اگر به ارزی غیر از USD پرداخت میکنید، قیمتهای فهرستشده به ارز شما در SKUهای Cloud Platform اعمال میشود.
بررسی اجمالی قیمت
وقتی از Cloud Firestore استفاده میکنید، هزینههای زیر از شما دریافت میشود:
- تعداد اسنادی که می خوانید، می نویسید، و حذف می کنید .
- تعداد ورودی های فهرست خوانده شده برای ارضای یک پرس و جو . جزئیات بیشتر در مورد خواندن شاخص را ببینید .
- مقدار فضای ذخیرهسازی که پایگاه داده شما استفاده میکند ، از جمله سربار برای ابردادهها و نمایهها.
- مقدار پهنای باند شبکه ای که استفاده می کنید .
فضای ذخیره سازی و استفاده از پهنای باند بر حسب گیگابایت (GiB) محاسبه می شود که در آن 1 گیگابایت = 2 30 بایت است. همه هزینه ها روزانه تعلق می گیرد.
بخشهای زیر جزئیاتی درباره نحوه دریافت هزینه استفاده از Cloud Firestore ارائه میدهند.
سهمیه رایگان
Cloud Firestore سهمیه رایگانی را ارائه می دهد که به شما امکان می دهد بدون هزینه شروع کنید. اگر به سهمیه بیشتری نیاز دارید، باید صورتحساب پروژه Google Cloud خود را فعال کنید .
سهمیه ها روزانه اعمال می شوند و در حدود نیمه شب به وقت اقیانوس آرام بازنشانی می شوند.
جدول زیر مقادیر سهمیه رایگان را خلاصه می کند:
ردیف آزاد | سهمیه |
---|---|
داده های ذخیره شده | 1 گیگابایت |
سند خوانده می شود | 50000 در روز |
سند می نویسد | 20000 در روز |
سند حذف می شود | 20000 در روز |
انتقال داده های خروجی | 10 گیگابایت در ماه |
عملیات و ویژگی های زیر شامل استفاده رایگان نمی شود. برای استفاده از این ویژگی ها باید صورتحساب را فعال کنید:
- TTL حذف می کند
- داده های PITR
- پشتیبان گیری از داده ها
- عملیات بازیابی
- عملیات کلون
برای اطلاعات بیشتر در مورد نحوه صورتحساب این ویژگیها، به قیمتگذاری فضای ذخیرهسازی مراجعه کنید.
قیمت گذاری بر اساس مکان
برای مشاهده قیمت خواندن، نوشتن، حذف و ذخیره سازی برای هر مکان Cloud Firestore ، به قیمت گذاری Google Cloud مراجعه کنید.
اگر به ارزی غیر از USD پرداخت میکنید، قیمتهای فهرستشده به ارز شما در SKUهای Cloud Platform اعمال میشود.
بدون سهمیه رایگان برای پایگاه های داده نامگذاری شده
برای ایجاد یک پایگاه داده با نام (غیر پیش فرض)، باید طرح صورتحساب پروژه خود را ارتقا دهید.
هیچ هزینه اضافی برای ایجاد یا حذف پایگاههای داده نامگذاری شده برای شما وجود ندارد، اما این پایگاههای اطلاعاتی واجد شرایط سهمیه رایگان نیستند. در عوض، هزینه استفاده از آن پایگاههای داده نامگذاری شده از شما دریافت میشود.
می خواند، می نویسد و حذف می کند
هزینه اسناد و ورودی های فهرست خوانده شده برای برآورده کردن یک پرس و جو از شما دریافت می شود. برای هر نوشتن و حذف سندی که انجام میدهید هزینهای از شما دریافت میشود.
هزینه نوشتن و حذف ساده است. برای نوشتن، هر set
یا عملیات update
به عنوان یک نوشتن به حساب می آید.
هزینههای عملیات خواندن دارای تفاوتهایی هستند که باید در نظر داشته باشید. بخش های بعدی این تفاوت های ظریف را به تفصیل توضیح می دهند.
ورودی فهرست خوانده می شود
برای هر دسته از حداکثر 1000 ورودی فهرست خوانده شده توسط یک پرس و جو، یک عملیات خواندن از شما دریافت می شود، به جز موارد زیر:
برای جستوجوهای K-نزدیکترین همسایه بردار ، یک عملیات خواندن برای هر دسته تا 100 kNN ورودی شاخص برداری که توسط جستار خوانده میشود، دریافت میکنید.
به عنوان مثال، اگر عبارت جستجوی برداری زیر با
limit: 5
5 سند را برمی گرداند و 1550 kNN ورودی شاخص برداری را می خواند، 5 عملیات خواندن برای اسناد بازگردانده شده و 16 عملیات خواندن برای ورودی های فهرست صورتحساب دریافت می کنید:// 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))
فیلدی که به ترتیب بند ظاهر می شود، زمانی که حداقل یک فیلد محدوده دیگر در پرس و جو وجود داشته باشد، فیلد محدوده در نظر گرفته می شود. بنابراین پرس و جوی زیر شامل دو فیلد محدوده (
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()
که بین 0 تا 1000 ورودی فهرست را می خواند، برای یک سند خوانده می شود. برای یک عملیات count()
که 1500 ورودی فهرست را می خواند، 2 بار خواندن سند به شما صورتحساب داده می شود.
برای کسب اطلاعات بیشتر در مورد نمایه های استفاده شده و ورودی های فهرست خوانده شده، از Query Explain استفاده کنید.
گوش دادن به نتایج پرس و جو
Cloud Firestore به شما امکان می دهد به نتایج یک پرس و جو گوش دهید و زمانی که نتایج پرس و جو تغییر می کند به روز رسانی های بیدرنگ دریافت کنید.
هنگامی که به نتایج یک پرس و جو گوش می دهید، هر بار که یک سند در مجموعه نتایج اضافه یا به روز می شود، هزینه خواندن از شما دریافت می شود. همچنین زمانی که یک سند از مجموعه نتایج حذف می شود، به دلیل تغییر سند، هزینه خواندن دریافت می کنید. (در مقابل، هنگامی که یک سند حذف می شود، هزینه خواندن از شما دریافت نمی شود.)
صورتحساب شنوندگان در SDKS تلفن همراه و وب همچنین به فعال بودن یا نبودن تداوم آفلاین بستگی دارد:
اگر تداوم آفلاین فعال باشد و ارتباط شنونده برای بیش از 30 دقیقه قطع شود (مثلاً اگر کاربر آفلاین شود)، هزینه اسناد و ورودیهای فهرستی که گویی درخواست جدیدی صادر کردهاید از شما کسر میشود.
اگر تداوم آفلاین غیرفعال باشد، هر زمان که شنونده قطع و وصل شود، برای اسناد و ورودیهای فهرستی که به گونهای خوانده میشوند، هزینهای از شما دریافت میشود.
مدیریت مجموعه نتایج بزرگ
Cloud Firestore دارای چندین ویژگی است که به شما کمک می کند پرس و جوهایی را مدیریت کنید که تعداد زیادی نتیجه را نشان می دهند:
- مکان نماها ، که به شما امکان می دهد یک پرس و جو طولانی مدت را از سر بگیرید.
- نشانه های صفحه ، که به شما در صفحه بندی نتایج پرس و جو کمک می کند.
- Limits ، که مشخص می کند چند نتیجه بازیابی شود.
- افست ، که به شما امکان می دهد تعداد ثابتی از اسناد را رد کنید.
هیچ هزینه اضافی برای استفاده از مکان نما، نشانه های صفحه و محدودیت وجود ندارد. در واقع، این ویژگیها میتوانند با خواندن اسنادی که واقعاً به آنها نیاز دارید، در هزینههای خود صرفهجویی کنید.
با این حال، هنگامی که درخواستی را ارسال می کنید که شامل یک افست است، برای هر سند رد شده مبلغی برای خواندن از شما دریافت می شود. به عنوان مثال، اگر درخواست شما از افست 10 استفاده می کند و پرس و جو 1 سند را برمی گرداند، برای 11 خواندن هزینه از شما دریافت می شود. به دلیل این هزینه اضافی، باید در صورت امکان از مکان نما به جای افست استفاده کنید.
پرس و جوهایی غیر از خواندن سند
برای جستارهایی غیر از خواندن سند، مانند درخواست لیست شناسه های مجموعه، برای یک سند صورتحساب خوانده می شود. اگر واکشی مجموعه کامل نتایج به بیش از یک درخواست نیاز دارد (به عنوان مثال، اگر از صفحه بندی استفاده می کنید)، برای هر درخواست یک بار صورتحساب دریافت می کنید.
حداقل هزینه برای پرس و جو
برای هر درخواستی که انجام می دهید حداقل یک سند خوانده می شود، حتی اگر پرس و جو نتیجه ای نداشته باشد.
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 (گیبی در ماه) ضرب می شود.
به عنوان مثال، اگر میانگین اندازه پایگاه داده شما در طول یک ماه 1 گیگابایت باشد و PITR برای کل ماه فعال باشد، اندازه داده PITR قابل پرداخت نیز 1 گیگابایت است.
حداقل صورتحساب: ممکن است تا 1 روز هزینه ذخیرهسازی PITR از شما کسر شود، حتی اگر PITR را ظرف یک روز پس از فعال کردن غیرفعال کنید.
پشتیبان گیری از داده ها و عملیات بازیابی
اگر پشتیبانگیری را فعال کنید، هزینه ذخیرهسازی نسخههای پشتیبان پایگاه داده از شما دریافت میشود. اندازه ذخیره سازی برای یک نسخه پشتیبان برابر با اندازه ذخیره سازی پایگاه داده در هنگام تهیه نسخه پشتیبان است.
هزینه های ذخیره سازی برای پشتیبان گیری به گیگابایت در ماه است. در طول یک ماه، تعداد روزهایی که هر نسخه پشتیبان نگهداری می شود، به طور میانگین در طول ماه نیز محاسبه می شود. هزینه هر نسخه پشتیبان با استفاده از اندازه ذخیره سازی نسخه پشتیبان ضرب در نسبت ماه نگهداری نسخه پشتیبان، ضرب در قیمت واحد محاسبه می شود. مرزهای روز توسط منطقه زمانی آمریکا/لس_آنجلس برای اهداف صورتحساب تعریف میشوند.
هنگامی که عملیات بازیابی را انجام می دهید، Cloud Firestore اندازه پشتیبان را برای عملیات بازیابی اندازه گیری می کند. اندازه پشتیبان در قیمت واحد عملیات بازیابی (GiB) ضرب می شود.
پرس و جو توضیح دهید
استفاده از Firestore Query Explain هزینه هایی را به همراه دارد.
هنگامی که یک پرس و جو با گزینه پیش فرض توضیح داده می شود، هیچ عملیات خواندن شاخص انجام نمی شود. صرف نظر از پیچیدگی پرس و جو، یک عملیات خواندن شارژ می شود.
هنگامی که یک پرس و جو با گزینه تجزیه و تحلیل توضیح داده می شود، عملیات نمایه سازی و خواندن انجام می شود، بنابراین طبق معمول هزینه پرس و جو از شما دریافت می شود. هیچ هزینه اضافی برای فعالیت توضیح و تجزیه و تحلیل وجود ندارد، فقط هزینه معمول برای پرس و جو در حال اجرا است.
پهنای باند شبکه
همانطور که در بخشهای زیر نشان داده شده است، هزینه پهنای باند شبکه مورد استفاده توسط درخواستهای Cloud Firestore شما دریافت میشود. هزینه پهنای باند شبکه درخواست Cloud Firestore به اندازه پاسخ درخواست، مکان پایگاه داده Cloud Firestore شما و مقصد پاسخ بستگی دارد.
Cloud Firestore اندازه پاسخ را بر اساس قالب پیام سریالی محاسبه می کند. سربار پروتکل، مانند سربار SSL، در مصرف پهنای باند شبکه به حساب نمی آید. درخواستهایی که توسط Cloud Firestore Security Rules شما رد میشوند در مصرف پهنای باند شبکه حساب نمیشوند.
برای اینکه بدانید چقدر از پهنای باند شبکه استفاده کردهاید، میتوانید از کنسول Google Cloud برای صادر کردن دادههای صورتحساب خود به یک فایل استفاده کنید.
قیمت گذاری عمومی شبکه
برای درخواستهایی که از Google Cloud Platform (به عنوان مثال، از برنامهای که در Google Compute Engine اجرا میشود)، بهصورت زیر هزینه دریافت میکنید:
نوع ترافیک | قیمت |
---|---|
انتقال داده های ورودی | رایگان |
انتقال داده در یک منطقه | رایگان |
انتقال داده بین مناطق در همان چند منطقه | رایگان |
انتقال داده بین مناطق داخل ایالات متحده (در هر گیگابایت) | 0.01 دلار (10 گیگابایت اول در ماه رایگان است) |
انتقال داده بین مناطق، بدون احتساب ترافیک بین مناطق ایالات متحده | نرخهای انتقال دادههای اینترنتی Google Cloud Platform |
اگر به ارزی غیر از USD پرداخت میکنید، قیمتهای فهرستشده به ارز شما در SKUهای Cloud Platform اعمال میشود.
Cloud Firestore همچنین مشمول هزینههای اضافی خروج از اینترنت برای موارد زیر است:
- درخواستهای Google Cloud بین مناطق، بدون احتساب ترافیک بین مناطق ایالات متحده
- درخواستهای خارج از Google Cloud (مثلاً از دستگاه تلفن همراه کاربر)
نرخ خروج اینترنت Google Cloud را ببینید.
نمونه قیمت گذاری را ببینید
برای مشاهده نحوه افزایش هزینههای صورتحساب Cloud Firestore در یک برنامه نمونه واقعی، به مثال صورتحساب Cloud Firestore مراجعه کنید.
هزینه ها را مدیریت کنید
برای کمک به جلوگیری از هزینههای غیرمنتظره روی صورتحسابتان، بودجههای ماهانه و هشدارها را با استفاده از کنسول صورتحساب Google Cloud تنظیم کنید.
برای نظارت بر استفاده از Cloud Firestore ، برگه Cloud Firestore Usage را در کنسول Firebase باز کنید. از داشبورد برای سنجش میزان استفاده خود در دوره های زمانی مختلف استفاده کنید.