ל-Looker Studio יש מערכת מטמון משלו לדוחות. כשיוצרים את המחבר, אפשר להטמיע מטמון בהתאמה אישית כדי להפיק דוחות מהר יותר ולהימנע מהגבלות קצב של APR.
לדוגמה, אתם יוצרים מחבר שמספק נתוני מזג אוויר היסטוריים מ-7 הימים האחרונים עבור מיקוד ספציפי. המחבר שלכם הופך לפופולרי מאוד, אבל ל-API החיצוני שממנו אתם מאחזרים את הנתונים יש מגבלות קפדניות על קצב הבקשות. ה-API מעדכן את הנתונים שלו רק פעם ביום, כך שאין צורך לאחזר את אותם נתונים כמה פעמים ביום עבור מיקוד ספציפי. בעזרת המדריך הזה, תוכלו להטמיע מטמון יומי לכל מיקוד.
דרישות
- מסד נתונים בזמן אמת ב-Firebase. אם אין לכם גישה לפרויקט כזה, אתם יכולים ליצור פרויקט ב-Google Cloud Platform (GCP) ולפעול לפי השלבים במדריך תחילת העבודה כדי ליצור מופע משלכם של Firebase Realtime Database.
- חשבון שירות של GCP לקריאה ולכתיבה של נתונים מ-Firebase Realtime Database.
- מחבר של הקהילה שמביא נתונים ממקור.
מגבלות
- אי אפשר להשתמש בפתרון הזה עם שירותים מתקדמים של Looker Studio. כשמשתמשים ב-Looker Studio Advanced Services, לקוד המחבר ב-Apps Script אין גישה לנתונים. לכן אי אפשר לשמור את הנתונים במטמון באמצעות Apps Script.
- עורכים וצופים בדוחות לא יכולים לאפס את המטמון הספציפי הזה.
פתרון
הטמעה של חשבון שירות
- יוצרים חשבון שירות בפרויקט Google Cloud.
- מוודאים שלחשבון השירות הזה יש גישה ל-BigQuery בפרויקט בענן.
- תפקידים נדרשים בניהול זהויות והרשאות גישה (IAM):
Firebase Admin
- תפקידים נדרשים בניהול זהויות והרשאות גישה (IAM):
- מורידים את קובץ ה-JSON כדי לקבל את המפתחות של חשבונות השירות. מאחסנים את התוכן של הקובץ במאפייני הסקריפט של פרויקט המחבר. אחרי הוספת המפתחות, הם אמורים להיראות כך בממשק המשתמש של Apps Script:
- כוללים את ספריית OAuth2 for Apps Script בפרויקט Apps Script.
- מטמיעים את קוד OAuth2 הנדרש לחשבון השירות:
הטמעה של קוד לקריאה ולכתיבה מ-Firebase
תשתמשו ב-Firebase Database REST API כדי לקרוא ולכתוב במסד נתונים בזמן אמת של Firebase. הקוד הבא מטמיע את השיטות שנדרשות לגישה ל-API הזה.
הטמעה של 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 (CrUX) מאפשר ליצור לוח בקרה שמבוסס על טבלת BigQuery בגודל של כ-20GB, עבור אלפי משתמשים. המחבר הזה משתמש ב-Firebase Realtime Database יחד עם Apps Script Cache Service לגישה לשמירת נתונים במטמון בשתי שכבות. פרטים על ההטמעה זמינים בקוד.