يحتوي Looker Studio على نظام ذاكرة تخزين مؤقت خاص للتقارير. عند إنشاء أداة الربط، يمكنك تنفيذ ذاكرة تخزين مؤقت مخصّصة لتسهيل إنشاء التقارير بشكل أسرع وتجنُّب حدود المعدّل لكل طلب في واجهة برمجة التطبيقات.
على سبيل المثال، أنت بصدد إنشاء أداة ربط توفّر بيانات الطقس السابقة خلال الأيام السبعة الماضية لرمز بريدي محدّد. أصبح الموصّل الخاص بك شائعًا جدًا، ولكن واجهة برمجة التطبيقات الخارجية التي تجلب منها البيانات لديها حدود صارمة على معدّل الطلبات. تعدّل واجهة برمجة التطبيقات بياناتها مرة واحدة فقط في اليوم، لذا ليس من الضروري استرداد البيانات نفسها عدة مرات خلال اليوم لرمز بريدي معيّن. باستخدام دليل الحلول هذا، يمكنك تنفيذ ذاكرة تخزين مؤقت يومية لكل رمز بريدي.
المتطلبات
- قاعدة بيانات Firebase في الوقت الفعلي إذا لم يكن لديك إذن بالوصول إلى مشروع، أنشئ مشروعًا على Google Cloud Platform (GCP) واتّبِع دليل بدء الاستخدام لإنشاء مثيل خاص بك من قاعدة بيانات Firebase Realtime Database.
- حساب خدمة Google Cloud Platform (GCP) لقراءة البيانات وكتابتها من "قاعدة بيانات Firebase في الوقت الفعلي"
- أداة ربط من إنشاء المنتدى تجلب البيانات من مصدر.
القيود
- لا يمكن استخدام هذا الحلّ مع خدمات Looker Studio المتقدّمة. عند استخدام الخدمات المتقدّمة في Looker Studio، لن يتمكّن رمز موصّل البيانات في Apps Script من الوصول إلى البيانات. وبالتالي، لا يمكنك تخزين البيانات مؤقتًا باستخدام Apps Script.
- لا يمكن لمحرّري التقارير ومشاهديه إعادة ضبط ذاكرة التخزين المؤقت المحدّدة هذه.
الحل
تنفيذ حساب خدمة
- أنشئ حساب خدمة في مشروعك على Google Cloud.
- تأكَّد من أنّ حساب الخدمة هذا لديه إذن وصول إلى BigQuery في مشروع السحابة الإلكترونية.
- أدوار "إدارة الهوية وإمكانية الوصول" (IAM) المطلوبة:
Firebase Admin
- أدوار "إدارة الهوية وإمكانية الوصول" (IAM) المطلوبة:
- نزِّل ملف JSON للحصول على مفاتيح حسابات الخدمة. خزِّن محتوى الملف في مواقع النص البرمجي لمشروع الموصل. بعد إضافة المفاتيح، يجب أن تبدو على النحو التالي في واجهة مستخدم Apps Script:
- أدرِج مكتبة OAuth2 لبرمجة التطبيقات في مشروعك على "برمجة التطبيقات".
- نفِّذ رمز OAuth2 المطلوب لحساب الخدمة:
تنفيذ الرمز البرمجي للقراءة والكتابة من Firebase
ستستخدم Firebase Database REST API للقراءة والكتابة في قاعدة بيانات Firebase Realtime. ينفّذ الرمز التالي الطرق اللازمة للوصول إلى واجهة برمجة التطبيقات هذه.
تنفيذ getData()
يجب أن يبدو هيكل رمز getData()
الحالي بدون التخزين المؤقت على النحو التالي:
لاستخدام التخزين المؤقت في رمز getData()
، اتّبِع الخطوات التالية:
- تحديد "الجزء" أو "الوحدة" من البيانات التي يجب تخزينها مؤقتًا
أنشئ مفتاحًا فريدًا لتخزين الحدّ الأدنى من وحدات البيانات في ذاكرة التخزين المؤقت.
في مثال التنفيذ، يتم استخدامzipcode
منconfigparams
كمفتاح.
اختياري: بالنسبة إلى ذاكرة التخزين المؤقت لكل مستخدم، أنشئ مفتاحًا مركّبًا باستخدام المفتاح الأساسي وهوية المستخدم. مثال على التنفيذ:
js var baseKey = getBaseKey(request); var userEmail = Session.getEffectiveUser().getEmail(); var hasheduserEmail = getHashedValue(userEmail); var compositeKey = baseKey + hasheduserEmail;
في حال توفّر بيانات مخزَّنة مؤقتًا، تحقَّق ممّا إذا كانت حديثة.
في المثال، يتم حفظ البيانات المخزّنة مؤقتًا لرمز بريدي محدّد مع التاريخ الحالي. عند استرجاع البيانات من ذاكرة التخزين المؤقت، يتم التحقّق من تاريخ ذاكرة التخزين المؤقت مقارنةً بالتاريخ الحالي.var cacheForZipcode = { data: <data being cached>, ymd: <current date in YYYYMMDD format> }
في حال عدم توفّر بيانات مخزَّنة مؤقتًا أو إذا كانت البيانات المخزَّنة مؤقتًا قديمة، يمكنك جلب البيانات من المصدر وتخزينها مؤقتًا.
في المثال التالي، يتضمّن main.js
الرمز getData()
مع تفعيل التخزين المؤقت.
مثال على الرمز
مراجع إضافية
يسهّل Chrome UX Connector إنشاء لوحة بيانات استنادًا إلى جدول BigQuery يبلغ حجمه 20 غيغابايت تقريبًا، وذلك لآلاف المستخدمين. يستخدم هذا الموصل قاعدة بيانات Firebase في الوقت الفعلي بالإضافة إلى خدمة التخزين المؤقت في "برمجة تطبيقات Google" لاتّباع نهج التخزين المؤقت ذي الطبقتين. يمكنك الاطّلاع على الرمز لمعرفة تفاصيل التنفيذ.