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()
ที่มีแคช
ที่มีการนำไปใช้
โค้ดตัวอย่าง
แหล่งข้อมูลเพิ่มเติม
เครื่องมือเชื่อมต่อ UX ของ Chrome ช่วยอำนวยความสะดวกให้กับแดชบอร์ดตาม BigQuery ประมาณ 20 GB ผู้ใช้หลายพันคนได้ เครื่องมือเชื่อมต่อนี้ใช้ฐานข้อมูลเรียลไทม์ของ Firebase พร้อมด้วยบริการแคช Apps Script สำหรับวิธีการแคช 2 ชั้น โปรดดู code เพื่อดูรายละเอียดการติดตั้ง