Deux façons d’améliorer et de multiplier par 4 les performances de tableau de bord des requêtes fusionnées

S’abonner

Le problème

Si vous utilisez des requêtes fusionnées de plusieurs sources dans BIME (et pas seulement dans BIME, mais dans n’importe quelle plateforme utilisant les requêtes multiples en temps réel pour présenter une visualisation), vous avez peut-être remarqué que dans certains cas, le décalage est considérable. Au premier chargement, une attente de quelques secondes est normale, mais si vous utilisez des filtres de données (qui, contrairement à ce qui se passe dans les tableaux croisés dynamiques Excel, ne fonctionnent pas en mémoire), l’analyse approfondie devient compliquée quand vous devez attendre plusieurs secondes à chaque clic.

La raison de ce problème réside dans le fait que le moteur interroge à nouveau la source pour chaque changement de valeur de filtre, en temps réel. Donc, si vous voulez par exemple « fusionner » les résultats des API Facebook et Google, et alterner la totalité de votre tableau de bord entre Android et iOS, un travail fastidieux vous attend.

 

La solution

Si vous êtes prêt à renoncer aux requêtes en temps réel (personnellement, nous exécutons tous nos rapports jusqu’au jour précédent, donc je ne me soucie pas de ne pas avoir des résultats de dernière minute), il y a au moins deux façons de quadrupler la vitesse de votre tableau de bord. Je vais décrire les deux méthodes : l’une est conçue pour les personnes qui maîtrisent SQL et qui peuvent donc travailler directement dans le stockage géré de BIME (une instance Amazon Redshift) ou leur propre base de données, l’autre pour les analystes qui souhaitent utiliser Query Blender tel quel, sans gérer les jointures SQL

Méthode 1 - Évitez Query Blender, créez les jointures dans la base de données

Le stockage géré de BIME est une base de données relationnelle Redshift. Si vous l’utilisez, vous devrez peut-être utiliser RazorSQL ou WorkbenchJS, car il ne fonctionne pas bien avec les agents comme Heidisql. La procédure est simple :

  1. Créez un connecteur vers chacun des services auxquels vous envoyez des requêtes (ex. : Google Adwords, Facebook Ads, Google Analytics) 
  2. Créez un résultat de requête dans BIME avec tous les éléments de jointure dont vous aurez besoin pour créer une jointure SQL dans la base de données pour chaque connecteur. 
  3. Exportez les requêtes sous forme d’URL CSV ou Excel.
  4. Créez de nouveaux connecteurs d’URL à partir de l’URL d’exportation et stockez-les dans le stockage géré de BIME ou utilisez-les comme flux de données externes vers votre propre base de données (ce que je préfère). 
  5. Vous pouvez maintenant joindre les nouveaux tableaux de base de données directement dans la base de données, ce qui crée une seule sortie de tableau. 
  6. Créez un nouveau connecteur dans BIME et ajoutez-le au tableau joint comme source unique.

Méthode 2 - Utilisez Query Blender de façon intelligente pour créer un flux de données unique

Mon expérience SQL étant limitée, j’ai utilisé cette méthode pendant un moment avant d’avoir suffisamment d’assurance avec SQL, et elle m’a bien servi. En gros, nous utilisons Query Blender pour créer une requête fusionnée et sortir les résultats dans une requête, puis l’exporter et la réimporter dans une nouvelle source.

  1. Utilisez Query Blender pour créer la requête de votre choix. 
  2. Sortez la requête sous forme de tableau. 
  3. Exportez-la au format CSV ou Excel.
  4. Créez un nouveau connecteur d’URL dans BIME à partir du lien d’exportation, ce qui ajoute la requête fusionnée dans BIME sous la forme d’une seule source de tableau. 

Conseils supplémentaires

Les deux méthodes marchent bien et dans mon expérience, la vitesse de chargement est 3 à 4 fois supérieure. Mais il faut faire attention à quelques autres points :

  •         N’oubliez pas d’importer automatiquement vos « nouveaux » connecteurs (ne les laissez pas en importation manuelle).
  •         Placez vos données de connecteurs en cache et assurez-vous que, quel que soit le jour que vous choisissez de le faire, vous les mettez en cache APRÈS l’heure d’importation du jour.
  •         Quand vous créez vos « nouveaux » connecteurs d’URL, donnez un nom aux tableaux si vous voulez utiliser la méthode 1 avec le stockage géré BIME. Le stockage géré BIME affecte des noms arbitraires aux tableaux, avec de longues séquences alphanumériques : vous risquez d’avoir du mal à vous y retrouver quand vous travaillez avec la base de données.

J’espère que tout cela vous sera utile !

 

Vous avez d’autres questions ? Envoyer une demande

0 Commentaires

Veuillez vous connecter pour laisser un commentaire.
Réalisé par Zendesk