آشنایی با صورت‌حساب Cloud Firestore

این سند جزئیات قیمت‌گذاری Cloud Firestore را توضیح می‌دهد.

اگر با واحد پولی غیراز دلار امریکا پرداخت می‌کنید، قیمت‌های فهرست‌شده با واحد پولی شما در SKUهای Cloud Platform اعمال می‌شود.

نمای کلی قیمت‌گذاری

وقتی از Cloud Firestore استفاده می‌کنید، هزینه موارد زیر از شما کسر می‌شود:

  • تعداد اسنادی که می‌خوانید، می‌نویسید، و حذف می‌کنید.
  • تعداد ورودی‌های نمایه که برای برآورده کردن پُرسمان خوانده شده است. جزئیات بیشتر درباره خواندن نمایه را ببینید.
  • مقدار فضای ذخیره‌سازی‌ای که پایگاه داده شما استفاده می‌کند، ازجمله سربار برای فراداده و نمایه‌ها.
  • مقدار پهنای باند شبکه‌ای که استفاده می‌کنید.

فضای ذخیره‌سازی و استفاده از پهنای باند برحسب گیبی‌بایت (GiB) محاسبه می‌شود، که در آن ۱ گیبی‌بایت = ۲۳۰ بایت است. همه هزینه‌ها به‌صورت روزانه محاسبه می‌شود.

بخش‌های زیر جزئیاتی درباره نحوه کسر هزینه برای استفاده از Cloud Firestore ارائه می‌دهد.

سهمیه رایگان

Cloud Firestore سهمیه رایگانی ارائه می‌دهد که به شما امکان می‌دهد بدون هزینه شروع کنید. اگر به سهمیه بیشتری نیاز دارید، باید صورت‌حساب را برای پروژه Google Cloud فعال کنید.

سهمیه‌ها به‌صورت روزانه اعمال می‌شوند و حدود نیمه‌شب به‌وقت اقیانوس آرام بازنشانی می‌شوند.

جدول زیر مقادیر سهمیه رایگان را خلاصه می‌کند:

سطح رایگان سهمیه
داده‌های ذخیره‌شده ‫۱ گیبی‌بایت
سند می‌خواند ۵۰٬۰۰۰ در روز
نوشتن سند ۲۰٬۰۰۰ در روز
حذف سند ۲۰٬۰۰۰ در روز
انتقال داده‌های خروجی ‫۱۰ گیبی‌بایت در ماه

عملیات و ویژگی‌های زیر شامل استفاده رایگان نمی‌شوند. برای استفاده از این ویژگی‌ها، باید صورت‌حساب را فعال کنید:

  • حذف‌های TTL
  • داده‌های PITR
  • پشتیبان‌گیری داده‌ها
  • بازیابی عملیات
  • عملیات همسانه‌سازی

برای اطلاعات بیشتر درباره نحوه صدور صورت‌حساب برای این ویژگی‌ها، قیمت‌گذاری فضای ذخیره‌سازی را ببینید.

قیمت‌گذاری براساس مکان

برای مشاهده قیمت‌گذاری خواندن، نوشتن، حذف، و فضای ذخیره‌سازی برای هر مکان Cloud Firestore، به قیمت‌گذاری Google Cloud مراجعه کنید.

اگر با واحد پولی غیراز دلار امریکا پرداخت می‌کنید، قیمت‌های فهرست‌شده به واحد پولی شما در Cloud Platform SKUs اعمال می‌شود.

سهمیه رایگان فقط برای یک پایگاه داده در هر پروژه اعمال می‌شود

پروژه‌ها فقط می‌توانند یک پایگاه داده داشته باشند که واجدشرایط سهمیه رایگان باشد.

برای ایجاد پایگاه‌های داده بیشتر، باید طرح صورت‌حساب پروژه‌تان را ارتقا دهید.

اولین پایگاه داده‌ای که ایجاد می‌کنید (صرف‌نظر از شناسه آن) واجدشرایط سهمیه رایگان است. اگر آن پایگاه داده را حذف کنید، پایگاه داده بعدی که ایجاد می‌کنید به پایگاه داده جدید واجدشرایط برای سهمیه رایگان تبدیل می‌شود.

ایجاد یا حذف پایگاه‌های داده هزینه اضافی برای شما ندارد. همه پایگاه‌های داده بعدی براساس استفاده از آن پایگاه‌های داده هزینه دریافت خواهند کرد.

خواندن، نوشتن، و حذف کردن

برای اسناد و ورودی‌های نمایه‌ای که برای پاسخ به پُرسمان خوانده می‌شوند، هزینه از شما کسر می‌شود. برای هر سند نوشته‌شده و حذف‌شده‌ای که انجام می‌دهید، هزینه از شما کسر می‌شود.

هزینه‌های نوشتن و حذف کردن ساده است. برای نوشتن، هر عملیات 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()، هزینه ورودی‌های نمایه‌ای که توسط پرسمان خوانده می‌شود همان‌طور که در بالا توضیح داده شد از شما کسر می‌شود. برای پُرسمان‌های انبوهشی که ۰ ورودی نمایه را می‌خوانند، حداقل هزینه یک سند خوانده‌شده است.

برای مثال، count() عملیاتی که بین ۰ تا ۱۰۰۰ ورودی نمایه را می‌خواند برای خواندن یک سند صورت‌حساب می‌شود. برای عملیات count() که ۱۵۰۰ ورودی نمایه را می‌خواند، هزینه ۲ خواندن سند از شما کسر می‌شود.

برای کسب اطلاعات بیشتر درباره نمایه‌های استفاده‌شده و ورودی‌های نمایه خوانده‌شده، از توضیح پُرسمان استفاده کنید.

درحال گوش دادن به نتایج پُرسمان

Cloud Firestore به شما امکان می‌دهد به نتایج پُرسمان گوش دهید و وقتی نتایج پُرسمان تغییر می‌کند، به‌روزرسانی‌های هم‌زمان دریافت کنید.

وقتی به نتایج پُرسمان گوش می‌دهید، هربار که سندی در مجموعه نتایج اضافه یا به‌روز می‌شود، هزینه خواندن از شما کسر می‌شود. همچنین وقتی سندی به‌دلیل تغییر کردن از مجموعه نتایج برداشته می‌شود، هزینه خواندن از شما کسر می‌شود. (درمقابل، وقتی سندی حذف می‌شود، هزینه‌ای برای خواندن از شما کسر نمی‌شود.)

صدور صورت‌حساب برای شنوندگان در کیت‌های توسعه نرم‌افزار وب و تلفن همراه نیز به این بستگی دارد که پایداری آفلاین فعال باشد یا نه:

  • اگر پایداری آفلاین فعال باشد و شنونده برای بیش‌از ۳۰ دقیقه قطع شود (برای مثال، اگر کاربر آفلاین شود)، برای اسناد و ورودی‌های نمایه خوانده‌شده به‌گونه‌ای هزینه از شما کسر می‌شود که گویی پُرسمان کاملاً جدیدی صادر کرده‌اید.

  • اگر پایداری آفلاین غیرفعال باشد، هر زمان که شنونده قطع و دوباره وصل شود، هزینه اسناد و ورودی‌های نمایه خوانده‌شده از شما کسر می‌شود، گویی که پُرسمان کاملاً جدیدی صادر کرده‌اید.

مدیریت مجموعه‌های نتایج بزرگ

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 به گیبی‌بایت/ماه است و روزانه محاسبه می‌شود. ‫Cloud Firestore اندازه پایگاه داده را روزانه اندازه‌گیری می‌کند. درطول یک ماه، میانگین این نقاط نمونه برای محاسبه اندازه فضای ذخیره‌سازی پایگاه داده محاسبه می‌شود. این مقدار میانگین در قیمت واحد PITR (گیگابایت-ماه) ضرب می‌شود.

برای مثال، اگر اندازه میانگین پایگاه داده شما درطول یک ماه ۱ گیبی‌بایت باشد و PITR برای کل ماه فعال باشد، اندازه داده‌های قابل‌صورت‌حساب PITR نیز ۱ گیبی‌بایت است.

حداقل صورت‌حساب: ممکن است تا ۱ روز هزینه فضای ذخیره‌سازی PITR از شما کسر شود، حتی اگر PITR را ظرف یک روز پس‌از فعال‌سازی غیرفعال کنید.

پشتیبان‌گیری از داده‌ها و بازیابی عملیات

اگر پشتیبان‌گیری را فعال کنید، هزینه ذخیره‌سازی پشتیبان‌گیری‌های پایگاه داده از شما کسر می‌شود. اندازه فضای ذخیره‌سازی برای پشتیبان‌گیری برابر است با اندازه فضای ذخیره‌سازی پایگاه داده در زمان پشتیبان‌گیری.

هزینه‌های فضای ذخیره‌سازی برای نسخه‌های پشتیبان برحسب گیبی‌بایت/ماه است. درطول دوره یک ماه، تعداد روزهایی که هر نسخه پشتیبان حفظ می‌شود، به‌طور میانگین درطول ماه نیز محاسبه می‌شود. هزینه هر پشتیبان‌گیری بااستفاده از اندازه فضای ذخیره‌سازی پشتیبان‌گیری ضربدر نسبت ماهی که پشتیبان‌گیری حفظ می‌شود، ضربدر قیمت واحد محاسبه می‌شود. مرزهای روز براساس منطقه زمانی «آمریکا/لس‌آنجلس» برای اهداف صدور صورت‌حساب تعریف شده است.

وقتی عملیات بازیابی را انجام می‌دهید، Cloud Firestore اندازه نسخه پشتیبان را برای عملیات بازیابی اندازه‌گیری می‌کند. اندازه نسخه پشتیبان در قیمت واحد عملیات بازیابی (گیبی‌بایت) ضرب می‌شود.

توضیح پُرسمان

استفاده از توضیح پُرسمان Firestore هزینه دارد.

وقتی پُرسمانی با گزینه پیش‌فرض توضیح داده می‌شود، هیچ عملیات خواندن نمایه‌ای انجام نمی‌شود. صرف‌نظر از پیچیدگی پُرسمان، یک عملیات خواندن محاسبه می‌شود.

وقتی پُرسمانی با گزینه تجزیه‌وتحلیل توضیح داده می‌شود، عملیات نمایه و خواندن انجام می‌شود، بنابراین هزینه پُرسمان طبق معمول از شما کسر می‌شود. هیچ هزینه اضافی‌ای برای فعالیت توضیح و تحلیل وجود ندارد، فقط هزینه معمول برای پُرسمان اجراشده دریافت می‌شود.

پهنای باند شبکه

هزینه پهنای باند شبکه مورداستفاده درخواست‌های Cloud Firestore شما، همان‌طور که در بخش‌های زیر نشان داده شده است، از شما کسر می‌شود. هزینه پهنای باند شبکه برای درخواست Cloud Firestore به اندازه پاسخ درخواست، مکان پایگاه داده Cloud Firestore، و مقصد پاسخ بستگی دارد.

‫Cloud Firestore اندازه پاسخ را براساس قالب پیام سریالی‌شده محاسبه می‌کند. سربار پروتکل، مانند سربار SSL، در استفاده از پهنای باند شبکه محاسبه نمی‌شود. درخواست‌هایی که توسط Cloud Firestore Security Rules شما رد شده‌اند در مصرف پهنای باند شبکه محاسبه نمی‌شوند.

برای اینکه بدانید از چه مقدار پهنای باند شبکه استفاده کرده‌اید، می‌توانید از کنسول Google Cloud برای صادر کردن داده‌های صورت‌حساب به فایل استفاده کنید.

قیمت‌گذاری شبکه عمومی

برای درخواست‌هایی که از Google Cloud Platform منشأ می‌گیرند (برای مثال، از برنامه‌ای که در Google Compute Engine اجرا می‌شود)، هزینه به‌صورت زیر از شما کسر می‌شود:

نوع ترافیک قیمت
انتقال داده‌های ورودی رایگان
انتقال داده در یک منطقه رایگان
انتقال داده بین مناطق در همان چندمنطقه رایگان
انتقال داده بین مناطق در ایالات متحده (به‌ازای هر گیبی‌بایت) ۰٫۰۱ دلار (۱۰ گیبی‌بایت اول در ماه رایگان است)
انتقال داده بین مناطق، به‌استثنای ترافیک بین مناطق ایالات متحده نرخ‌های انتقال داده‌های اینترنتی برون‌مرزی Google Cloud Platform

اگر با واحد پولی غیراز دلار امریکا پرداخت می‌کنید، قیمت‌های فهرست‌شده به واحد پولی شما در Cloud Platform SKUs اعمال می‌شود.

Cloud Firestore همچنین مشمول هزینه‌های اضافی خروج اینترنت برای موارد زیر است:

  • Google Cloud درخواست بین مناطق، به‌استثنای ترافیک بین مناطق ایالات متحده
  • درخواست‌های خارج از Google Cloud (برای مثال، از دستگاه همراه کاربر)

Google Cloud نرخ‌های خروج اینترنت را ببینید.

دیدن نمونه قیمت‌گذاری

برای دیدن نحوه انباشته شدن هزینه‌های صورت‌حساب Cloud Firestore در یک برنامه نمونه واقعی، نمونه صورت‌حساب Cloud Firestore را ببینید.

مدیریت کردن هزینه‌ها

برای جلوگیری از هزینه‌های غیرمنتظره در صورت‌حساب، بودجه‌ها و هشدارهای ماهانه را در کنسول Google Cloud تنظیم کنید.

برای نظارت بر استفاده از Cloud Firestore از کنسول Firebase، به برگه پایگاه‌های داده و فضای ذخیره‌سازی > Firestore > استفاده بروید. از این داشبورد برای سنجش میزان استفاده‌تان در دوره‌های زمانی مختلف استفاده کنید.