Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article présente la sémantique générale de l’agrégation et aborde les différences entre les résultats calculés à l’aide de requêtes par lots, de vues matérialisées et de la diffusion en continu.
Agrégats par lots
L’agrégation par lots est le comportement par défaut observé lors de l’exécution d’une requête ad hoc dans SQL ou le traitement de données avec des DataFrames Apache Spark.
Une requête d’agrégation écrite sur une table ou une source de données calcule les statistiques d’agrégation pour tous les enregistrements de la source de données. Azure Databricks tire profit des optimisations et des métadonnées chaque fois que cela est possible pour optimiser ces requêtes et peut calculer de nombreux agrégats de manière efficace pour des jeux de données volumineux.
La latence et les coûts de calcul de l’agrégation par lots peuvent augmenter à mesure que la taille des données augmente, et les valeurs d’agrégation précalculées et fréquemment référencées peuvent faire économiser beaucoup de temps et d’argent aux utilisateurs. Databricks recommande d’utiliser des vues matérialisées pour mettre à jour de manière incrémentielle les valeurs d’agrégation. Consultez Agrégats incrémentiels.
Agrégats avec état
Les agrégats définis dans les charges de travail de diffusion en continu sont des agrégats avec état. Les agrégats avec état suivent les enregistrements observés au fil du temps et recalculent les résultats lors du traitement de nouvelles données.
Vous devez utiliser des filigranes lors du calcul d’agrégats avec état. L’omission d’un filigrane dans une requête d’agrégation avec état entraîne une accumulation infinie d’informations d’état au fil du temps. Il en résulte des ralentissements de traitement, ce qui peut aboutir à des erreurs de mémoire insuffisante.
Vous ne devez pas utiliser un agrégat avec état pour calculer des statistiques sur un jeu de données entier. Databricks recommande d’utiliser des vues matérialisées pour le calcul d’agrégats incrémentiels sur un jeu de données entier. Consultez Agrégats incrémentiels.
Pour configurer des charges de travail qui calculent efficacement et correctement des agrégats avec état, vous devez comprendre comment les données arrivent des systèmes sources et comment Azure Databricks utilise les filigranes, modes de sortie et intervalles de déclenchement pour contrôler l’état des requêtes et le calcul des résultats.
Agrégats incrémentiels
Vous pouvez utiliser des vues matérialisées pour calculer de nombreuses valeurs d’agrégation de manière incrémentielle. Les vues matérialisées suivent automatiquement les modifications apportées à la source de données et appliquent les mises à jour appropriées aux valeurs d’agrégation lors de l’actualisation. Les résultats retournés par une vue matérialisée sont équivalents à ceux retournés par le recalcul des résultats d’agrégation sur les données sources avec un programme de traitement par lots ou une requête ad hoc.
Agrégats approximatifs
Bien qu’Azure Databricks excelle dans l’informatique sur des jeux de données extrêmement volumineux, l’utilisation d’une approximation pour les agrégats peut accélérer le traitement des requêtes et réduire les coûts lorsque vous n’avez pas besoin de résultats précis.
Des instructions LIMIT sont parfois suffisantes pour obtenir un instantané rapide des données, mais elles n’introduisent aucun caractère aléatoire et ne garantissent pas la répartition de l’échantillonnage sur l’ensemble du jeu de données.
Spark SQL propose les méthodes natives suivantes pour générer des agrégations approximatives sur des données numériques ou catégorielles :
-
approx_count_distinctfonction d’agrégation -
approx_percentilefonction d’agrégation -
approx_top_kfonction d’agrégation
Vous pouvez également spécifier un pourcentage d’échantillon avec TABLESAMPLE pour générer un échantillon aléatoire à partir d’un jeu de données et calculer des agrégats approximatifs. Consultez la TABLESAMPLEclause .
Monitorer des jeux de données à l’aide de statistiques d’agrégation
Le profilage des données utilise des statistiques agrégées et des distributions de données pour suivre la qualité des données au fil du temps. Vous pouvez générer des rapports pour visualiser les tendances et planifier des alertes pour signaler des changements inattendus dans les données. Consultez le profilage des données.