Looker Studio dispose de son propre système de mise en cache pour les rapports. Lorsque vous créez votre vous pouvez implémenter un cache personnalisé pour générer plus rapidement des rapports évitez les taux TAEG.
Par exemple, vous créez un connecteur qui fournit des données météorologiques historiques. au cours des sept derniers jours pour un code postal spécifique. Votre connecteur va bientôt commencer populaire, mais l'API externe à partir de laquelle vous récupérez les données a un taux strict des limites. L'API ne met à jour ses données que quotidiennement. Par conséquent, pour un code postal spécifique, n'a pas besoin d'extraire les mêmes données plusieurs fois au cours d'une même journée. Utilisation vous pouvez mettre en œuvre un cache quotidien pour chaque code postal.
Conditions requises
- Une base de données Firebase Realtime Si vous n'en avez pas, créez un projet Google Cloud Platform (GCP) et suivez le Guide de démarrage pour créer votre propre Firebase Instance Realtime Database.
- Un compte de service GCP pour lire et écrire des données à partir de Firebase Realtime base de données.
- Un connecteur de communauté qui récupère des données à partir d'une source.
Limites
- Cette solution ne peut pas être utilisée avec les services avancés Looker Studio. Quand ? vous utilisez les services avancés de Looker Studio, votre code de connecteur dans les applications. Le script n'a pas accès aux données. Vous ne pouvez donc pas mettre en cache les données à l'aide d'Apps Script.
- Les lecteurs et les éditeurs du rapport ne peuvent pas réinitialiser ce cache spécifique.
Solution
Implémenter un compte de service
- Créez un compte de service dans votre projet Google Cloud.
- Assurez-vous que ce compte de service dispose d'un accès BigQuery dans le projet Cloud.
- Rôles IAM (Identity and Access Management) requis:
Firebase Admin
- Rôles IAM (Identity and Access Management) requis:
- Téléchargez le fichier JSON pour obtenir les clés de comptes de service. Stockez le fichier
dans les propriétés de script de votre projet de connecteur. Après avoir ajouté
doivent ressembler à ceci dans l'interface utilisateur d'Apps Script:
- Incluez la bibliothèque OAuth2 for Apps Script dans votre projet Apps Script.
- Implémentez le code OAuth2 requis pour le compte de service:
Implémenter du code pour lire et écrire des données depuis Firebase
Vous utiliserez l'API REST Firebase Database pour lire et écrire des données dans un projet Firebase Realtime Database. Le code suivant implémente les méthodes nécessaires pour qui accèdent à cette API.
Implémenter getData()
La structure de votre code getData()
existant sans mise en cache doit se présenter comme suit :
comme ceci:
Pour utiliser la mise en cache dans votre code getData()
, procédez comme suit:
- Déterminer le fragment ou 'unité' de données à mettre en cache.
Créez une clé unique pour stocker l'unité minimale de données dans le cache.
Pour l'exemple d'implémentation,zipcode
deconfigparams
est utilisé. comme clé.
Facultatif: Pour le cache par utilisateur, créez une clé composite avec la clé de base et identité de l'utilisateur. Exemple d'implémentation:
js var baseKey = getBaseKey(request); var userEmail = Session.getEffectiveUser().getEmail(); var hasheduserEmail = getHashedValue(userEmail); var compositeKey = baseKey + hasheduserEmail;
Si des données mises en cache existent, vérifiez si le cache est à jour.
Dans cet exemple, les données mises en cache d'un code postal spécifique sont enregistrées à l'aide de l'attribut la date actuelle. Lorsque les données sont extraites du cache, la date du cache est par rapport à la date du jour.var cacheForZipcode = { data: <data being cached>, ymd: <current date in YYYYMMDD format> }
Si les données mises en cache n'existent pas ou si les données mises en cache ne sont pas récentes, récupérez les données depuis la source et les stocker dans le cache.
Dans l'exemple suivant, main.js
inclut du code getData()
avec mise en cache.
mise en œuvre.
Exemple de code
Ressources supplémentaires
Le connecteur d'expérience utilisateur Chrome permet d'obtenir un tableau de bord basé sur un volume BigQuery d'environ 20 Go à des milliers d'utilisateurs. Ce connecteur utilise Firebase Realtime Database en plus du service de cache Apps Script pour une mise en cache à deux couches. Voir code pour obtenir plus d'informations sur l'implémentation.