Looker Studio'nun raporlar için kendi önbellek sistemi vardır. Bağlayıcınızı oluştururken daha hızlı raporlar oluşturmak ve APR hız sınırlamalarını önlemek için özel bir önbellek uygulayabilirsiniz.
Örneğin, belirli bir posta kodu için son 7 güne ait geçmiş hava durumu verilerini sağlayan bir bağlayıcı oluşturuyorsunuz. Bağlayıcınız oldukça popüler hale geliyor ancak verileri getirdiğiniz harici API'de katı hız sınırları var. API verilerini yalnızca günlük olarak güncellediğinden, belirli bir posta kodu için aynı verilerin gün içinde birden fazla kez getirilmesine gerek yoktur. Bu çözüm kılavuzunu kullanarak her posta kodu için günlük önbellek uygulayabilirsiniz.
Şartlar
- Firebase Realtime Database Erişiminiz yoksa Google Cloud Platform (GCP) projesi oluşturun ve kendi Firebase Realtime Database örneğinizi oluşturmak için Başlangıç kılavuzundaki adımları uygulayın.
- Firebase Realtime Database'den veri okumak ve veriye yazmak için bir GCP hizmet hesabı.
- Bir kaynaktan veri getiren Topluluk Bağlayıcısı.
Sınırlamalar
- Bu çözüm, Looker Studio Gelişmiş Hizmetleri ile kullanılamaz. Looker Studio Gelişmiş Hizmetleri'ni kullandığınızda Apps Script'teki bağlayıcı kodunuz verilere erişemez. Bu nedenle, Apps Komut Dosyası'nı kullanarak verileri önbelleğe alamazsınız.
- Rapor düzenleyiciler ve görüntüleyenler bu belirli önbelleği sıfırlayamaz.
Çözüm
Hizmet hesabı uygulama
- Google Cloud projenizde bir hizmet hesabı oluşturun.
- Bu hizmet hesabının, bulut projesinde BigQuery erişimine sahip olduğundan emin olun.
- Gerekli Identity and Access Management (IAM) Rolleri:
Firebase Admin
- Gerekli Identity and Access Management (IAM) Rolleri:
- Hizmet hesabı anahtarlarını almak için JSON dosyasını indirin. Dosyanın içeriğini bağlayıcı projenizin komut dosyası özelliklerinde saklayın. Anahtarlar eklendikten sonra Apps Komut Dosyası kullanıcı arayüzünde şu şekilde görünmelidir:
- Apps Komut Dosyası projenize Apps Komut Dosyası için OAuth2 kitaplığını ekleyin.
- Hizmet hesabı için gerekli OAuth2 kodunu uygulayın:
Firebase'den okuma ve yazma için kod uygulama
Firebase Realtime Database'e okuma ve yazma işlemleri yapmak için Firebase Database REST API'yi kullanacaksınız. Aşağıdaki kod, bu API'ye erişmek için gereken yöntemleri uygular.
getData() işlevini uygulama
Önbelleğe alma olmadan mevcut getData()
kodunuzun yapısı şu şekilde görünmelidir:
getData()
kodunuzda önbelleğe almayı kullanmak için aşağıdaki adımları uygulayın:
- Önbelleğe alınması gereken veri "parçasını" veya "birimini" belirleyin.
Önbellekteki minimum veri birimini depolamak için benzersiz bir anahtar oluşturun.
Örnek uygulamada anahtar olarakzipcode
configparams
kullanılıyor.
İsteğe bağlı: Kullanıcı başına önbellek için temel anahtarla ve kullanıcı kimliğiyle birleşik anahtar oluşturun. Örnek uygulama:
js var baseKey = getBaseKey(request); var userEmail = Session.getEffectiveUser().getEmail(); var hasheduserEmail = getHashedValue(userEmail); var compositeKey = baseKey + hasheduserEmail;
Önbelleğe alınan veriler varsa önbelleğin güncel olup olmadığını kontrol edin.
Örnekte, belirli bir posta koduna ait önbelleğe alınmış veriler geçerli tarihle kaydedilir. Veriler önbellekten alındığında, önbelleğin tarihi geçerli tarihle karşılaştırılır.var cacheForZipcode = { data: <data being cached>, ymd: <current date in YYYYMMDD format> }
Önbelleğe alınmış veri yoksa veya önbelleğe alınmış veri güncel değilse verileri kaynaktan getirin ve önbellekte depolayın.
Aşağıdaki örnekte, main.js
, önbelleğe alma işleminin uygulandığı getData()
kodunu içerir.
Örnek kod
Ek kaynaklar
Chrome UX Connector, yaklaşık 20 GB'lık bir BigQuery tablosuna dayalı bir kontrol panelini binlerce kullanıcıya sunar. Bu bağlayıcı, iki katmanlı bir önbelleğe alma yaklaşımı için Apps Komut Dosyası Önbellek Hizmeti ile birlikte Firebase Realtime Database'i kullanır. Uygulama ayrıntıları için koda bakın.