يشرح هذا المستند تفاصيل أسعار Cloud Firestore.
إذا كنت تدفع بعملة أخرى غير الدولار الأمريكي، تسري الأسعار المدرَجة بعملتك في رموز التخزين التعريفية في Cloud Platform.
نظرة عامة على الأسعار
عند استخدام Cloud Firestore، يتم تحصيل رسوم منك مقابل ما يلي:
- عدد المستندات التي تقرأها وتكتبها وتحذفها
- عدد إدخالات الفهرس التي تمت قراءتها لتلبية طلب بحث: مزيد من التفاصيل حول عمليات قراءة الفهرس
- مقدار مساحة التخزين التي تستخدمها قاعدة البيانات، بما في ذلك المساحة الإضافية المخصّصة للبيانات الوصفية والفهارس
- مقدار معدل نقل البيانات في الشبكة الذي تستخدمه:
يتم احتساب استخدام مساحة التخزين والنطاق الترددي بوحدة غيبي بايت (GiB)، حيث يساوي 1 غيبي بايت 230 بايت. تتراكم جميع الرسوم يوميًا.
تقدّم الأقسام التالية تفاصيل حول كيفية تحصيل الرسوم منك مقابل استخدامك لـ Cloud Firestore.
الحصة المجانية
يوفّر Cloud Firestore حصة مجانية تتيح لك البدء بدون أي تكلفة. إذا كنت بحاجة إلى حصة أكبر، عليك تفعيل الفوترة لمشروعك على Google Cloud.
يتم تطبيق الحصص يوميًا وإعادة ضبطها في منتصف الليل تقريبًا بتوقيت المحيط الهادئ.
يلخّص الجدول التالي مقدار الحصة المجانية:
| الفئة المجانية | الحصة |
|---|---|
| البيانات المخزّنة | 1 غيبي بايت |
| قراءات المستندات | 50,000 في اليوم |
| عمليات كتابة المستندات | 20,000 في اليوم |
| عمليات حذف المستندات | 20,000 في اليوم |
| نقل البيانات الصادرة | 10 غيبي بايت في الشهر |
لا تشمل العمليات والميزات التالية الاستخدام المجاني. يجب تفعيل الفوترة لاستخدام هذه الميزات:
- عمليات الحذف وفقًا لـ TTL
- بيانات الاستعادة في نقطة زمنية معيّنة
- الاحتفاظ بنسخة احتياطية من البيانات
- عمليات الاستعادة
- عمليات الاستنساخ
لمزيد من المعلومات حول كيفية فوترة هذه الميزات، يُرجى الاطّلاع على أسعار مساحة التخزين.
الأسعار حسب الموقع الجغرافي
للاطّلاع على أسعار عمليات القراءة والكتابة والحذف والتخزين لكل موقع جغرافي في Cloud Firestore، يُرجى الاطّلاع على أسعار Google Cloud.
إذا كنت تدفع بعملة أخرى غير الدولار الأمريكي، تسري الأسعار المدرَجة بعملتك في رموز التخزين التعريفية في Cloud Platform.
تنطبق الحصة المجانية على قاعدة بيانات واحدة فقط لكل مشروع
يمكن أن تتضمّن المشاريع قاعدة بيانات واحدة فقط مؤهَّلة للحصول على الحصة المجانية.
لإنشاء قواعد بيانات إضافية، عليك ترقية خطة الفوترة لمشروعك.
تكون أول قاعدة بيانات تنشئها (بغض النظر عن معرّفها) مؤهَّلة للاستفادة من الحصة المجانية. إذا حذفت قاعدة البيانات هذه، ستصبح قاعدة البيانات التالية التي تنشئها هي قاعدة البيانات الجديدة المؤهَّلة للحصول على الحصة المجانية.
لن تتحمّل أي تكلفة إضافية مقابل إنشاء قواعد البيانات أو حذفها. سيتم تحصيل رسوم مقابل جميع قواعد البيانات اللاحقة بناءً على الاستخدام الذي يتم إجراؤه على قواعد البيانات هذه.
عمليات القراءة والكتابة والحذف
يتم تحصيل رسوم منك مقابل المستندات وإدخالات الفهرس التي تتم قراءتها لتلبية طلب بحث. ويتم تحصيل رسوم منك مقابل كل عملية كتابة وحذف للمستندات.
رسوم عمليات الكتابة والحذف واضحة. بالنسبة إلى عمليات الكتابة، يتم احتساب كل عملية set أو update كعملية كتابة واحدة.
هناك بعض الفروق الدقيقة التي يجب وضعها في الاعتبار في ما يتعلق برسوم عمليات القراءة. توضّح الأقسام التالية هذه الفروق الدقيقة بالتفصيل.
قراءات إدخال الفهرس
يتم تحصيل رسوم عملية قراءة واحدة مقابل كل دفعة تصل إلى 1000 إدخال فهرس يتم قراءتها من خلال طلب بحث باستثناء ما يلي:
بالنسبة إلى طلبات البحث عن المتجهات باستخدام خوارزمية k-nearest neighbor، يتم تحصيل رسوم منك مقابل عملية قراءة واحدة لكل دفعة من إدخالات فهرس المتجهات باستخدام خوارزمية k-nearest neighbor التي يصل عددها إلى 100 إدخال والتي يقرأها طلب البحث.
على سبيل المثال، إذا كان طلب البحث التالي عن المتّجه باستخدام
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))يُعتبر الحقل الذي يظهر في عبارة 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() التي تقرأ ما بين 0 و1000 إدخال في الفهرس على أنّها قراءة مستند واحد. بالنسبة إلى عملية count() التي تقرأ 1500
إدخال فهرس، تتم فوترة عمليتَي قراءة مستند.
لمزيد من المعلومات حول الفهارس المستخدَمة وإدخالات الفهرس التي تمت قراءتها، استخدِم Query Explain.
الاستماع إلى نتائج طلب البحث
يتيح لك Cloud Firestore الاستماع إلى نتائج طلب بحث والحصول على تحديثات في الوقت الفعلي عند تغيُّر نتائج طلب البحث.
عند الاستماع إلى نتائج طلب بحث، يتم تحصيل رسوم منك مقابل قراءة كل مرة تتم إضافة مستند في مجموعة النتائج أو تحديثه. ويتم أيضًا تحصيل رسوم منك مقابل عملية قراءة عند إزالة مستند من مجموعة النتائج بسبب تغيير المستند. (في المقابل، عند حذف مستند، لا يتم تحصيل رسوم منك مقابل قراءة).
تعتمد فوترة المستمعين في حِزم تطوير البرامج (SDK) للأجهزة الجوّالة والويب أيضًا على ما إذا كان الاحتفاظ بالبيانات بلا إنترنت مفعَّلاً أم لا:
إذا تم تفعيل ميزة "الاحتفاظ بالبيانات بلا إنترنت" وتم قطع اتصال المستمع لأكثر من 30 دقيقة (على سبيل المثال، إذا انقطع اتصال المستخدم بالإنترنت)، سيتم تحصيل رسوم منك مقابل المستندات وإدخالات الفهرس التي تمت قراءتها كما لو كنت قد أصدرت طلب بحث جديدًا.
إذا تم إيقاف ميزة "الاحتفاظ بالبيانات بلا إنترنت"، سيتم تحصيل رسوم منك مقابل المستندات وإدخالات الفهرس التي تتم قراءتها كما لو كنت قد أصدرت طلب بحث جديدًا كلما تم قطع اتصال المستمع وإعادة اتصاله.
إدارة مجموعات النتائج الكبيرة
تتضمّن Cloud Firestore عدة ميزات لمساعدتك في إدارة طلبات البحث التي تعرض عددًا كبيرًا من النتائج:
- المؤشرات التي تتيح لك استئناف طلب بحث طويل الأمد
- رموز الصفحة المميّزة، والتي تساعدك في تقسيم نتائج طلب البحث إلى صفحات
- الحدود، والتي تحدّد عدد النتائج التي سيتم استردادها.
- الإزاحات، والتي تتيح لك تخطّي عدد ثابت من المستندات
لا توجد تكاليف إضافية لاستخدام المؤشرات ورموز الصفحة والحدود. في الواقع، يمكن أن تساعدك هذه الميزات في توفير المال من خلال قراءة المستندات التي تحتاجها فقط.
ومع ذلك، عند إرسال طلب بحث يتضمّن إزاحة، يتم تحصيل رسوم قراءة لكل مستند تم تخطّيه. على سبيل المثال، إذا كان طلب البحث يستخدم إزاحة بقيمة 10، وكان طلب البحث يعرض مستندًا واحدًا، سيتم تحصيل رسوم منك مقابل 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 في احتساب حجم مساحة التخزين.
بيانات الاستعادة في نقطة زمنية معيّنة
في حال تفعيل ميزة الاستعادة في نقطة زمنية محدّدة، سيتم تحصيل رسوم منك مقابل تخزين بيانات هذه الميزة. سيجد معظم العملاء أنّ التكلفة الإجمالية لتخزين بيانات ميزة "الاستعادة في نقطة زمنية محدّدة" مشابهة لتكلفة تخزين قاعدة البيانات.
يتم احتساب تكاليف تخزين ميزة "الاستعادة في نقطة زمنية محدّدة" بالغيبي بايت في الشهر، ويتم احتسابها يوميًا. يقيس Cloud Firestore حجم قاعدة البيانات يوميًا. وعلى مدار شهر، يتم احتساب متوسط نقاط العينات هذه لحساب حجم مساحة تخزين قاعدة البيانات. يتم ضرب هذه القيمة المتوسطة في سعر الوحدة لميزة "الاستعادة في نقطة زمنية محدّدة" (غيبي بايت في الشهر).
على سبيل المثال، إذا كان متوسط حجم قاعدة البيانات خلال شهر واحد هو 1 غيبي بايت وتم تفعيل ميزة "الاستعادة في نقطة زمنية محدّدة" للشهر بأكمله، يكون حجم بيانات هذه الميزة القابل للفوترة هو 1 غيبي بايت أيضًا.
الحد الأدنى للفوترة: قد يتم تحصيل رسوم منك مقابل تكلفة تخزين PITR لمدة يوم واحد حتى إذا أوقفت ميزة PITR في غضون يوم واحد بعد تفعيلها.
الاحتفاظ بنسخة احتياطية من البيانات واستعادة العمليات
في حال تفعيل ميزة الاحتفاظ بنسخة احتياطية، سيتم تحصيل رسوم منك مقابل تخزين النُسخ الاحتياطية من قاعدة بياناتك. حجم مساحة التخزين للنسخة الاحتياطية يساوي حجم مساحة التخزين لقاعدة البيانات عند إنشاء النسخة الاحتياطية.
يتم احتساب تكاليف تخزين النُسخ الاحتياطية بوحدة غيبي بايت في الشهر. على مدار شهر، يتم أيضًا احتساب عدد الأيام التي يتم فيها الاحتفاظ بكل نسخة احتياطية، ويتم حساب متوسطها على مدار الشهر. يتم احتساب تكلفة كل نسخة احتياطية باستخدام حجم مساحة التخزين للنسخة الاحتياطية مضروبًا في نسبة الشهر الذي يتم فيه الاحتفاظ بالنسخة الاحتياطية، مضروبًا في سعر الوحدة. يتم تحديد حدود اليوم حسب المنطقة الزمنية America/Los_Angeles لأغراض الفوترة.
عند إجراء عملية استعادة، يقيس تطبيق "Cloud Firestore" حجم النسخة الاحتياطية لعملية الاستعادة. يتم ضرب حجم النسخة الاحتياطية في سعر الوحدة لعمليات الاستعادة (غيبي بايت).
Query Explain
يؤدي استخدام 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 |
إذا كنت تدفع بعملة أخرى غير الدولار الأمريكي، تسري الأسعار المدرَجة بعملتك في رموز التخزين التعريفية في Cloud Platform.
يخضع Cloud Firestore أيضًا لرسوم إضافية على نقل البيانات من الشبكة إلى الإنترنت لما يلي:
- Google Cloud طلب بين المناطق، باستثناء الزيارات بين مناطق الولايات المتحدة
- الطلبات الواردة من خارج Google Cloud (على سبيل المثال، من جهاز جوّال لمستخدم)
يُرجى الاطّلاع على أسعار نقل البيانات من Google Cloud إلى الإنترنت.
الاطّلاع على مثال على الأسعار
لمعرفة كيفية احتساب تكاليف فوترة Cloud Firestore في نموذج تطبيق حقيقي، يُرجى الاطّلاع على مثال فوترة Cloud Firestore.
إدارة الإنفاق
للمساعدة في تجنُّب تحصيل رسوم غير متوقّعة في فاتورتك، يمكنك إعداد الميزانيات الشهرية والتنبيهات في وحدة تحكّم "Google Cloud".
لتتبُّع استخدامك لـ Cloud Firestore من وحدة تحكُّم Firebase، انتقِل إلى قواعد البيانات ومساحة التخزين > Firestore > علامة التبويب الاستخدام. يمكنك استخدام لوحة البيانات هذه لقياس معدّل الاستخدام على مدار فترات زمنية مختلفة.