Looker Studio มีระบบแคชของตัวเองสําหรับรายงาน เมื่อคุณสร้าง คุณก็สามารถใช้แคชที่กำหนดเอง เพื่อทำให้รายงานที่รวดเร็วขึ้น หลีกเลี่ยงขีดจำกัดอัตราดอกเบี้ยต่อปี (APR)
เช่น คุณกำลังสร้างเครื่องมือเชื่อมต่อที่ให้ข้อมูลสภาพอากาศที่ผ่านมา สำหรับรหัสไปรษณีย์เฉพาะในช่วง 7 วันที่ผ่านมา เครื่องมือเชื่อมต่อของคุณเริ่มเปลี่ยนไป ได้รับความนิยม แต่ API ภายนอกที่คุณกำลังดึงข้อมูลนั้นมีอัตราที่เข้มงวด ขีดจำกัด API จะอัปเดตข้อมูลของตนทุกวันเท่านั้น ดังนั้นสำหรับรหัสไปรษณีย์หนึ่งๆ จะมี ไม่จำเป็นต้องดึงข้อมูลเดียวกันหลายครั้งภายใน 1 วัน การใช้ คุณสามารถใช้แคชรายวันสำหรับแต่ละรหัสไปรษณีย์ได้
ข้อกำหนด
- ฐานข้อมูลเรียลไทม์ของ Firebase หากไม่มีสิทธิ์เข้าถึง ให้สร้าง โครงการ Google Cloud Platform (GCP) และปฏิบัติตาม คู่มือเริ่มต้นใช้งานเพื่อสร้าง Firebase ของคุณเอง อินสแตนซ์ Realtime Database
- บัญชีบริการ GCP สำหรับอ่านและเขียนข้อมูลจาก Firebase เรียลไทม์ ฐานข้อมูล
- Community Connector ที่ดึงข้อมูลจากแหล่งข้อมูล
ข้อจำกัด
- โซลูชันนี้ใช้กับบริการขั้นสูงของ Looker Studio ไม่ได้ วันและเวลา คุณใช้บริการขั้นสูงของ Looker Studio ซึ่งเป็นรหัสเครื่องมือเชื่อมต่อในแอป สคริปต์ไม่มีสิทธิ์เข้าถึงข้อมูล คุณจึงไม่สามารถแคชข้อมูลได้ โดยใช้ Apps Script
- เครื่องมือแก้ไขรายงานและผู้ดูจะไม่สามารถรีเซ็ตแคชที่ระบุนี้ได้
โซลูชัน
ใช้บัญชีบริการ
- สร้างบัญชีบริการในโปรเจ็กต์ Google Cloud
- ตรวจสอบว่าบัญชีบริการนี้มีสิทธิ์เข้าถึง BigQuery ในโปรเจ็กต์ที่อยู่ในระบบคลาวด์
- บทบาท Identity and Access Management (IAM) ที่จำเป็น:
Firebase Admin
- บทบาท Identity and Access Management (IAM) ที่จำเป็น:
- ดาวน์โหลดไฟล์ JSON เพื่อรับคีย์บัญชีบริการ เก็บไฟล์
เนื้อหาในพร็อพเพอร์ตี้สคริปต์ของโปรเจ็กต์เครื่องมือเชื่อมต่อ หลังจากเพิ่ม
ควรมีลักษณะคล้ายกับคีย์ใน UI ของ Apps Script:
วันที่ - รวมไลบรารี OAuth2 สำหรับ Apps Script ไว้ในโปรเจ็กต์ Apps Script ของคุณ
- ใช้โค้ด OAuth2 ที่จำเป็นสำหรับบัญชีบริการ ดังนี้
ติดตั้งโค้ดเพื่ออ่านและเขียนจาก Firebase
คุณจะใช้ REST API ของฐานข้อมูล Firebase ในการอ่านและเขียนไปยัง Firebase Realtime Database โค้ดต่อไปนี้จะใช้เมธอดที่จำเป็นสำหรับ ที่เข้าถึง API นี้
ใช้ getData()
โครงสร้างของโค้ด getData()
ที่มีอยู่โดยไม่มีการแคช
ดังนี้
หากต้องการใช้การแคชในโค้ด getData()
ให้ทำตามขั้นตอนต่อไปนี้
- ระบุ "กลุ่ม" หรือ "unit" ที่ควรแคช
สร้างคีย์ที่ไม่ซ้ำกันเพื่อจัดเก็บหน่วยข้อมูลขั้นต่ำในแคช
สำหรับตัวอย่างการใช้งาน มีการใช้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()
ที่มีแคช
ที่มีการนำไปใช้
โค้ดตัวอย่าง
ตัวอย่างทั้งหมดของเครื่องมือเชื่อมต่อที่ใช้ FireBase สำหรับการแคชมีดังนี้
main.js
firebase.js
แหล่งข้อมูลเพิ่มเติม
เครื่องมือเชื่อมต่อ UX ของ Chrome ช่วยอำนวยความสะดวกให้กับแดชบอร์ดตาม BigQuery ประมาณ 20 GB ผู้ใช้หลายพันคนได้ เครื่องมือเชื่อมต่อนี้ใช้ฐานข้อมูลเรียลไทม์ของ Firebase พร้อมด้วยบริการแคช Apps Script สำหรับวิธีการแคช 2 ชั้น โปรดดู code เพื่อดูรายละเอียดการติดตั้ง