Looker Studio memiliki sistem cache sendiri untuk laporan. Saat membuat Anda dapat menerapkan cache kustom untuk memfasilitasi laporan yang lebih cepat dan menghindari pembatasan kapasitas APR.
Misalnya, Anda membuat konektor yang menyediakan data cuaca historis selama 7 hari terakhir untuk kode pos tertentu. Konektor Anda menjadi cukup akurat populer, tetapi API eksternal tempat Anda mengambil data memiliki tarif yang ketat batasan data. API ini hanya memperbarui datanya setiap hari, jadi untuk kode pos tertentu, tidak perlu mengambil data yang sama beberapa kali dalam sehari. Dengan menggunakan Anda dapat menerapkan cache harian untuk setiap kode pos.
Persyaratan
- Firebase Realtime Database. Jika Anda tidak memiliki akses ke akun, buat Project Google Cloud Platform (GCP) dan ikuti Panduan memulai untuk membuat Firebase Anda sendiri instance Realtime Database.
- Akun layanan GCP untuk membaca dan menulis data dari Firebase Realtime Database.
- Konektor Komunitas yang mengambil data dari sumber.
Batasan
- Solusi ini tidak dapat digunakan dengan Layanan Lanjutan Looker Studio. Kapan Anda menggunakan Layanan Lanjutan Looker Studio, kode konektor Anda di Aplikasi Skrip tidak memiliki akses ke data. Dengan demikian, Anda tidak dapat meng-cache data menggunakan Apps Script.
- Editor dan pelihat laporan tidak dapat mereset cache tersebut.
Solusi
Mengimplementasikan akun layanan
- Buat akun layanan di project Google Cloud Anda.
- Pastikan akun layanan ini memiliki akses BigQuery di project cloud.
- Peran Identity and Access Management (IAM) yang Diperlukan:
Firebase Admin
- Peran Identity and Access Management (IAM) yang Diperlukan:
- Download file JSON untuk mendapatkan kunci akun layanan. Menyimpan
konten di properti skrip project konektor Anda. Setelah menambahkan
kunci, akan terlihat seperti ini di UI Apps Script:
- Sertakan library OAuth2 untuk Apps Script di project Apps Script Anda.
- Terapkan kode OAuth2 yang diperlukan untuk akun layanan:
Mengimplementasikan kode untuk membaca dan menulis dari Firebase
Anda akan menggunakan Firebase Database REST API untuk membaca dan menulis ke Firebase Realtime database. Kode berikut mengimplementasikan metode yang diperlukan untuk yang mengakses API ini.
Mengimplementasikan getData()
Struktur untuk kode getData()
yang sudah ada tanpa cache akan terlihat
seperti ini:
Untuk menggunakan penyimpanan cache dalam kode getData()
Anda, ikuti langkah-langkah berikut:
- Menentukan 'bagian'nya atau 'unit' data yang harus di-cache.
Buat kunci unik untuk menyimpan unit minimum data dalam cache.
Untuk contoh implementasi,zipcode
dariconfigparams
digunakan sebagai kuncinya.
Opsional: Untuk cache per pengguna, buat kunci gabungan dengan kunci dasar dan identitas pengguna. Contoh implementasi:
js var baseKey = getBaseKey(request); var userEmail = Session.getEffectiveUser().getEmail(); var hasheduserEmail = getHashedValue(userEmail); var compositeKey = baseKey + hasheduserEmail;
Jika data yang di-cache ada, periksa apakah cache masih baru.
Dalam contoh, data yang di-cache untuk kode pos tertentu disimpan dengan tanggal saat ini. Ketika data diambil dari {i>cache<i}, tanggal untuk {i>cache<i} akan diperiksa dengan tanggal saat ini.var cacheForZipcode = { data: <data being cached>, ymd: <current date in YYYYMMDD format> }
Jika data yang di-cache tidak ada atau data yang di-cache tidak baru, ambil data dari sumber dan menyimpannya dalam {i>cache<i}.
Pada contoh berikut, main.js
menyertakan kode getData()
dengan penyimpanan dalam cache
diimplementasikan.
Kode contoh
Referensi lainnya
Chrome UX Connector memfasilitasi dasbor berdasarkan BigQuery sebesar ~20 GB tabel ini kepada ribuan pengguna. Konektor ini menggunakan Firebase Realtime Database beserta Layanan Cache Apps Script untuk pendekatan cache dua lapisan. Lihat code untuk mengetahui detail penerapan.