Accélérez vos requêtes grâce à la fonction Aggregate Awarenes de Looker

Kevin Marr et Joel McKelvey, Gestion des produits Looker, Google Cloud et Gestion du marketing produits Looker, Google Cloud

11 août 2020

Si vous vous fondez sur vos données pour prendre des décisions commerciales, il est crucial d'assurer que les requêtes soient rapides et efficaces.

Pour atteindre des requêtes performantes et efficaces, la plupart des outils analytiques emploient des techniques qui ont un élément en commun : elles limitent la taille du jeu de données recherchés. Pour ce faire, les outils analytiques de bureau utilisent des cubes ou des extraits de données. Avec d'autres anciens outils, l'accélération des requêtes passe par la transformation, le formatage ou l'agrégation des données. Certains systèmes sont conçus pour séparer les données en sous-jeux et à la classifier, ne faisant alors appel qu'à un sous-jeu pour la requête.

Bien que ces stratégies soient efficaces pour empêcher les bases de données lentes et les anciens outils d'être surchargés, ces approches présentent des désavantages lors du traitement des données de la plupart des entreprises. Les extraits de données peuvent devenir obsolètes et difficiles à gérer. La création de sous-jeux et les transformations complexes sont des opérations complexes qui demandent beaucoup de ressources et sont susceptibles aux erreurs. De plus, lorsqu'on traite des données extraites, on perd en granularité et les analystes ne sont pas en mesure d'aller plus loin pour obtenir plus d'informations.

Les bases de données modernes résolvent la plupart des problèmes de performance grâce à leur faible coût et à leur évolutivité. L'usage d'une base de données moderne dotée d'une architecture analytique interne, comme la solution Looker, peut résoudre les problèmes des données obsolètes et cloisonnées, éliminer les extraits, et réduire le besoin de flux d'alimentation de données transformatifs. Qu'en est-il de la performance des requêtes ? Quelles peuvent être la vitesse et l'efficacité des requêtes traitant l'ensemble du jeu de données ?

Looker offre des requêtes très performantes et efficaces à l'aide de la fonction Aggregate Awareness. Tout comme les approches précédentes, Aggregate Awareness permet aux équipes de données de limiter la quantité de données de la requête tout en évitant les inconvénients des données extraites pour les équipes analytiques.

Avec Aggregate Awareness, le modèle Looker peut matérialiser des agrégats au sein de la base de données de l'utilisateur, puis prioriser cette matérialisation pour les requêtes suivantes. Ces vues (tableaux agrégés) contiennent moins de rangs de données et sont donc plus rapidement traitées qu'une requête ordinaire. De plus, comme ces tableaux agrégés se basent sur des données en temps réel, il est possible de les rafraîchir automatiquement à une fréquence déterminée. La gestion d'agrégats dans d'autres outils peut être une opération laborieuse. Cependant, avec Looker, les éléments comme Flow Logic, le rafraîchissement ou la reconstitution, et l'intégrité référentielle du modèle sont tous gérés automatiquement, une approche unique à Looker.

Il est également important de noter que la fonction Aggregate Awareness ne limite pas les requêtes aux données des tableaux agrégés. Looker peut automatiquement joindre des nouvelles données à votre tableau agrégé avec l'opération UNION, utilisant l'agrégat si possible et comblant les écarts avec des données non-agrégées si nécessaire. Par exemple, vous pourriez disposer d'un agrégat qui inclut les données de vente du mois précédent. Cet agrégat ne comprendra pas les dernières données car il aura été généré à la fin du mois dernier sans les données du mois en cours. Looker peut tout de même utiliser le tableau agrégé pour accélérer une requête portant sur les données du mois précédent et du mois en cours en joignant les derniers résultats au tableau agrégé par l'opération UNION. Grâce à cette réponse unifiée, vous profitez de la performance et de l'efficacité d'un agrégat ainsi que d'un jeu de données complet.

Les tableaux agrégés sont définis par le paramètre aggregate_table dans LookML. Après sa définition, le tableau agrégé est enregistré dans votre base de données, tout comme un tableau dérivé persistent (PDT). Il est possible de générer des agrégats automatiquement, ce qui rend le développement aussi facile qu'un simple copier-coller. Les tableaux peuvent aussi être définis manuellement. Retrouvez ci-dessous un exemple de code LookML contenant un tableau défini intitulé sales_monthly, l'agrégat des données de ventes d'un mois.


explore: orders {
    label: "Sales Totals" 
    aggregate_table: sales_monthly {
        materialization: {
            datagroup_trigger: orders_datagroup
        } 
        query: {
            dimensions: [created_month] 
            measures: [order_items.total_sales]
            timezone: America/Los_Angeles
        }
    } 
    # other explore parameters
}

La possibilité d'utiliser la fonction Aggregate Awareness dépend du dialecte de base de données de votre connexion Looker. Pour en savoir plus sur les dialectes compatibles avec la fonction Aggregate Awareness, veuillez consulter notre documentation.

Pour les utilisateurs de Looker en mode de développement, il est possible de vérifier les données et les tableaux agrégés traités par la requête en lançant vos requêtes dans Explore. Cette fonction peut vous aider à développer des agrégats qui optimiseront vos requêtes courantes tout en réduisant leurs délais et coûts.

Découvrez comment la fonction Aggregate Awareness peut améliorer la performance de vos requêtes et réduire le nombre de rangs traités par chaque requête dans notre documentation Looker.

Suivant Précédent

S'inscrire pour lire les dernières publications