فهم فوترة قاعدة البيانات في الوقت الفعلي

فواتير Firebase للبيانات التي تخزنها في قاعدة البيانات وجميع الشبكات الصادرة حركة البيانات في طبقة الجلسة (الطبقة 5) من نموذج OSI. يتم تحصيل رسوم مساحة التخزين من ويتم تقييم الاشتراك يوميًا بقيمة 5 دولار أمريكي لكل غيغابايت في الشهر. عدم تأثُّر الفوترة بالموقع الجغرافي من قاعدة البيانات لديك. تشمل حركة البيانات الصادرة النفقات العامة للتشفير والاتصال من جميع عمليات قاعدة البيانات والبيانات التي تم تنزيلها من خلال قراءات قاعدة البيانات. كلاهما يمكن أن تؤدي قراءات وكتابات قاعدة البيانات إلى تكاليف الاتصال على فاتورتك. الكل الزيارات من قاعدة البيانات وإليها، بما في ذلك العمليات التي يرفضها نظام الأمان تؤدي إلى تكاليف قابلة للفوترة.

في ما يلي بعض الأمثلة الشائعة للزيارات التي يتم إصدار فواتير بها:

  • البيانات التي يتم تنزيلها: عندما يحصل العملاء على البيانات من قاعدة بياناتك، يستخدم Firebase مقابل البيانات التي يتم تنزيلها. وعادةً ما يشكل هذا الجزء الأكبر من معدل نقل البيانات، ولكنه ليس العامل الوحيد في فاتورتك.
  • نفقات البروتوكول: بعض الزيارات الإضافية بين الخادم والعملاء أمرًا ضروريًا لإنشاء جلسة والحفاظ عليها. اعتمادًا على العوامل الأساسية فقد تتضمن هذه الزيارات: قاعدة بيانات Firebase في الوقت الفعلي النفقات العامة للبروتوكول، ونفقات WebSocket، ونفقات عنوان HTTP. في كل مرة وإنشاء اتصال، وتكون هذه النفقات، بالإضافة إلى أي تشفير عبر طبقة المقابس الآمنة إلى التكاليف، يساهم في تكاليف الاتصال. رغم أن هذا ليس الكثير من النطاق الترددي لطلب واحد، فقد يمثل جزءًا كبيرًا من فاتورتك أو إذا كانت حمولاتك صغيرة أو كنت تجري اتصالات متكررة وقصيرة.
  • نفقات تشفير طبقة المقابس الآمنة: هناك تكلفة مرتبطة بطبقة المقابس الآمنة. النفقات العامة لتشفير البيانات اللازمة لإجراء اتصالات آمنة. وفي المتوسط، حوالي 3.5 كيلوبايت لعملية تأكيد الاتصال الأولية، وحوالي عشرات وحدات البايت الخاصة بعناوين سجلات بروتوكول أمان طبقة النقل (TLS) في كل رسالة صادرة. بالنسبة إلى معظم التطبيقات، تكون هذه العلامة نسبة مئوية صغيرة من فاتورتك. ومع ذلك، يمكن أن تصبح نسبة كبيرة إذا كانت حالتك بالتحديد تتطلب الكثير من عمليات تأكيد الاتصال بطبقة المقابس الآمنة. على سبيل المثال، الأجهزة التي لا تتوافق مع تذاكر جلسات بروتوكول أمان طبقة النقل (TLS) عددًا كبيرًا من عمليات تأكيد الاتصال باتصال طبقة المقابس الآمنة.
  • بيانات وحدة تحكم Firebase: على الرغم من أن هذه ليست عادةً من تكاليف قاعدة البيانات في الوقت الفعلي، فإن Firebase يحصّل رسوم البيانات التي تقرأها والكتابة من وحدة تحكم Firebase.

تقدير الاستخدام الذي تم إصدار فواتير به

للاطلاع على اتصالات قاعدة البيانات الحالية في الوقت الفعلي واستخدام البيانات، حدد الاستخدام في "وحدة تحكُّم Firebase". يمكنك التحقّق من الاستخدام خلال الفوترة الحالية المدة أو آخر 30 يومًا أو آخر 24 ساعة

يعرض Firebase إحصاءات الاستخدام للمقاييس التالية:

  • الاتصالات: عدد عمليات الاتصال المتزامنة والمفتوحة حاليًا وفي الوقت الفعلي اتصالات بقاعدة البيانات لديك. يشمل ذلك البيانات التالية في الوقت الفعلي: الاتصالات: WebSocket والاستطلاع الطويل والأحداث التي يرسلها خادم HTML. يفعل وعدم تضمين طلبات RESTful.
  • التخزين: يشير هذا المصطلح إلى مقدار البيانات التي يتم تخزينها في قاعدة البيانات. الحالات المستبعدة استضافة Firebase أو البيانات المُخزَّنة من خلال منتجات Firebase الأخرى
  • عمليات التنزيل: جميع وحدات البايت التي يتم تنزيلها من قاعدة البيانات، بما في ذلك البروتوكول وأعباء التشفير.
  • التحميل: يعرض هذا الرسم البياني مقدار البيانات التي يتم استخدامها ومعالجتها من قاعدة البيانات. محددة خلال مهلة محددة مدتها دقيقة واحدة. قد تظهر لك مشاكل في الأداء كلما اقتربت قاعدة البيانات من 100٪.

تحسين الاستخدام

هناك بعض أفضل الممارسات التي يمكنك استخدامها لتحسين استخدام قاعدة البيانات ومعدل نقل البيانات.

  • استخدام حِزم تطوير البرامج (SDK) الأصلية: استخدِم حِزم تطوير البرامج (SDK) الأصلية كلما أمكن ذلك وفقًا لما يلي: نظام التشغيل لتطبيقك، بدلاً من REST API. تظل حِزم تطوير البرامج (SDK) مفتوحة مما يقلل من تكاليف تشفير طبقة المقابس الآمنة التي عادةً ما ينتج عنها واجهة برمجة تطبيقات REST.
  • البحث عن الأخطاء: إذا كانت تكاليف معدل نقل البيانات مرتفعة بشكل غير متوقع، يُرجى التحقق. أنّ تطبيقك لا يزامن بيانات أو يتزامن أكثر من المعتاد المقصودة. لتحديد المشاكل، يمكنك استخدام أداة الملف الشخصي من أجل قياس عمليات القراءة وتفعيل تسجيل تصحيح الأخطاء في Android، الهدف-ج، والويب حِزم تطوير البرامج (SDK). تحقَّق من الخلفية وعمليات المزامنة في تطبيقك للتأكّد من ذلك أن كل شيء يعمل كما تريد.
  • تقليل الاتصالات: حاوِل تحسين الاتصال إن أمكن. النطاق الترددي. قد تكون طلبات REST المتكررة الصغيرة أكثر تكلفة من طلب واحد، اتصالاً مستمرًا باستخدام حزمة SDK الأصلية. إذا كنت تستخدم واجهة برمجة تطبيقات REST، ففكر في استخدام رمز HTTP للحفاظ على الاتصال أو الأحداث التي يرسلها الخادم مما قد يؤدي إلى خفض التكاليف الناتجة عن تأكيد اتصال طبقة المقابس الآمنة.
  • استخدام تذاكر جلسة بروتوكول أمان طبقة النقل (TLS): تقليل التكاليف العامة لتشفير طبقة المقابس الآمنة عند استئناف التشغيل اتصالات عن طريق إصدار تذاكر جلسة بروتوكول أمان طبقة النقل (TLS) ويكون ذلك مفيدًا بشكل خاص إذا كنت تحتاج إلى اتصالات آمنة ومتكررة. إلى قاعدة البيانات.
  • طلبات البحث في الفهرس: فهرسة بياناتك يقلل من إجمالي معدل نقل البيانات الذي تستخدمه لطلبات البحث، وهو ما يعني فائدة مزدوجة لخفض التكاليف وتعزيز أداء قاعدة البيانات. يمكنك استخدام أداة تحليل البيانات للعثور على طلبات البحث غير المفهرسة في قاعدة البيانات لديك.
  • تحسين المستمعين: يمكنك إضافة طلبات بحث للحدّ من البيانات التي تستمع إليها. عمليات إرجاع البيانات واستخدام أدوات معالجة الأحداث التي تنزّل تحديثات البيانات فقط، مثل on() بدلاً من once(). بالإضافة إلى ذلك، ضع مستمعيك إلى أقصى حد ممكن للحد من كمية البيانات التي تتم مزامنتها.
  • تقليل تكاليف التخزين: يمكنك تنفيذ مهام التنظيف الدوري وتقليل أي تكاليف البيانات في قاعدة البيانات لديك.
  • استخدام القواعد: امنع أي عمليات مكلفة قد تكون غير مصرّح بها على قاعدة البيانات لديك. على سبيل المثال، قد يؤدي استخدام "قواعد أمان قاعدة بيانات Firebase في الوقت الفعلي" إلى تجنُّب حدوث يقوم فيها مستخدم ضار بتنزيل قاعدة البيانات بأكملها بشكل متكرر. مزيد من المعلومات حول باستخدام قواعد قاعدة بيانات Firebase في الوقت الفعلي.

وتعتمد أفضل خطة تحسين لتطبيقك على حالة استخدامك المحددة. على الرغم من أنّ هذه القائمة ليست شاملة لأفضل الممارسات، يمكنك العثور على على مزيد من النصائح من خبراء Firebase على قناة Slack أو Stack Overflow.