Gestion des erreurs dans Power Automate via le branchement parallèle
Découvrez l
Dans ce didacticiel, vous découvrirez les différentes techniques de compression LuckyTemplates dans qui vous aideront à optimiser votre rapport.
Une fois les données chargées segment par segment par Analysis Services dans LuckyTemplates Power Pivot et SSAS , deux événements se produisent. La première est qu'ils essaient d'utiliser différentes méthodes d'encodage pour compresser les colonnes afin de réduire la taille globale de la RAM . La seconde est qu'ils essaient de financer le meilleur ordre de tri qui place les valeurs répétitives ensemble. Cette méthode augmente également la compression et, à son tour, réduit la pression sur la mémoire.
Il existe différentes techniques de compression utilisées par Analysis Services. Ce didacticiel couvre trois méthodes, en particulier, à savoir le codage de valeur, le codage de longueur d'exécution et le codage de dictionnaire. Dans la dernière section de ce didacticiel, nous verrons comment trier les travaux de commande dans Analysis Services.
Table des matières
Technique de compression LuckyTemplates #1 : Encodage de valeur
Le premier s'appelle Value Encoding.
L'encodage de valeur recherche une relation mathématique entre chaque valeur d'une colonne pour réduire la mémoire. Voici un exemple dans Microsoft Excel :
Cette colonne nécessite 16 384 bits pour stocker les valeurs.
Pour calculer les bits requis, utilisez d'abord la fonction MAX() dans Excel pour obtenir la valeur la plus élevée dans les colonnes. Dans ce cas, il s'agit de 9144. Ensuite, utilisez la fonction POWER() pour calculer les bits requis. Utilisez l'argument POWER(2, X) où X est toute valeur positive qui renverra une réponse supérieure à la valeur MAX. X, dans ce cas, représente également les bits requis. Ainsi, pour cet exemple, la valeur de X est 14, ce qui donne 16 384 . Par conséquent, la colonne nécessite 14 bits de stockage.
Pour réduire les bits requis à l'aide de Value Encoding, VertiPaq recherche la valeur MIN dans la colonne et la soustrait de chaque valeur. Dans ce cas, la valeur MIN dans la colonne est 9003. Si vous la soustrayez de la colonne, elle renverra ces valeurs :
En utilisant les mêmes fonctions et arguments, vous pouvez voir que pour la nouvelle colonne, la valeur MAX est 141. Et en utilisant 8 comme valeur de X, on obtient 256 . Par conséquent, la nouvelle colonne ne nécessite que 8 bits.
Vous pouvez voir à quel point la seconde est compressée par rapport à la première colonne.
Une fois les données compressées et que vous essayez d'interroger la nouvelle colonne, le moteur de stockage ou Vertipaq analyse cette colonne. Ils ne renverront pas simplement les nouvelles valeurs de la colonne. Au lieu de cela, ils ajoutent la valeur soustraite avant de renvoyer le résultat à l'utilisateur.
Cependant, Value Encoding ne fonctionne que sur les colonnes contenant des entiers ou des valeurs avec des nombres décimaux fixes.
Technique de compression LuckyTemplates #2 : Encodage de longueur d'exécution
La deuxième méthode de codage est appelée Run Length Encoding.
Run Length Encoding crée une structure de données qui contient la valeur distincte, une colonne Start et une colonne Count.
Prenons un exemple :
Dans ce cas, il identifie qu'une valeur rouge est disponible dans la première ligne. Il découvre ensuite que la valeur noire commence à la deuxième ligne et est disponible pour les quatre cellules suivantes. Il passe à la troisième valeur, Blue , qui commence à la sixième ligne et est disponible pour les trois lignes suivantes. Et cela continue jusqu'à ce qu'il atteigne la dernière valeur de la colonne.
Ainsi, au lieu de stocker la colonne entière, il crée une structure de données qui contient uniquement des informations sur le début et la fin d'une valeur particulière, ainsi que sur le nombre de doublons dont elle dispose.
Pour les colonnes ayant la même structure, les données peuvent être davantage compressées en organisant les valeurs dans l'ordre croissant ou décroissant.
Avec cette colonne correctement triée, vous pouvez voir que la méthode Run Length Encoding renvoie désormais une structure de données avec une ligne de moins.
Donc, si vous avez affaire à de nombreuses valeurs distinctes, il est recommandé de trier la colonne de la manière la plus optimale possible. Cela vous donnera une structure de données avec moins de lignes qui à son tour occupe moins de RAM.
Le codage de longueur d'exécution ne peut pas être appliqué aux clés primaires car les colonnes de clé primaire ne contiennent que des valeurs uniques. Ainsi, au lieu de stocker une ligne pour chaque valeur, il stockera la colonne telle quelle.
Technique de compression LuckyTemplates #3 : Encodage de dictionnaire
La troisième méthode de codage est appelée Dictionary Encoding.
Dictionary Encoding crée une structure semblable à un dictionnaire qui contient la valeur distincte d'une colonne. Il attribue également un index à cette valeur unique.
En utilisant l'exemple précédent, regardons comment fonctionne l'encodage du dictionnaire. Dans ce cas, les valeurs Rouge, Noir et Bleu reçoivent un indice de 0, 1 et 2, respectivement.
Il crée ensuite une structure de données similaire à celle de Run Length Encoding. Cependant, au lieu de stocker les valeurs réelles, Dictionary Encoding stocke l'index attribué à chaque valeur.
Cela réduit encore la RAM consommée car les nombres occupent moins d'espace que les valeurs de chaîne.
L'encodage du dictionnaire rend également le type de données tabulaire indépendant. Autrement dit, peu importe si vous avez une colonne qui peut être stockée dans différents types de données, cela n'aura pas d'importance puisque la structure de données ne stockera que la valeur d'index.
Cependant, même s'il est indépendant, le type de données aura toujours un effet sur la taille du dictionnaire. Selon le type de données dans lequel vous choisissez d'enregistrer la colonne, la taille du dictionnaire (ou de la structure de données) fluctuera. Mais la taille de la colonne elle-même restera la même.
Ainsi, selon le type de données que vous choisirez, une fois le codage de dictionnaire appliqué à la colonne, le codage de longueur d'exécution peut être appliqué par la suite.
Dans ce cas, Analysis Services créera deux structures de données. Il va d'abord créer un dictionnaire, puis appliquer le Run Length Encoding dessus pour augmenter encore la compression de la colonne.
Ordre de tri dans Analysis Services
Pour la dernière partie de ce didacticiel, expliquons comment Analysis Services décide de la manière la plus optimale de trier les données.
Prenons l'exemple d'une colonne contenant des valeurs Rouge, Bleu, Noir, Vert et Rose. Les numéros 1 à 5 leur ont également été attribués. Ceci agit comme le dictionnaire de notre colonne.
Maintenant, remplissez une colonne entière dans Excel avec ces valeurs. Utilisez cet argument pour générer une colonne contenant ces valeurs au hasard.
Faites glisser la formule jusqu'à la dernière ligne. Cliquez sur OK si la fenêtre contextuelle Grande opération s'affiche. Voici maintenant à quoi cela ressemblera :
Ensuite, copiez la colonne entière et collez-la en tant que Value .
Maintenant, si vous accédez à l' option Fichier dans votre document Excel et cliquez sur Info , vous pouvez voir que la colonne consomme 14,1 Mo .
Pour réduire la quantité de RAM consommée, vous pouvez trier la colonne de A à Z. Si vous vérifiez à nouveau la taille, vous pouvez voir qu'elle a été réduite à 12,5 Mo .
La réduction de 1,9 Mo peut sembler peu. En effet, l'exemple a utilisé une seule colonne dans Excel pour illustrer. Excel n'est limité qu'à 1 million de lignes. Cependant, dans LuckyTemplates, vos données peuvent contenir des milliards de lignes et de colonnes. La réduction de l'espace utilisé croît de manière exponentielle.
Conclusion
Une fois vos données triées de la manière la plus optimale, Analysis Services applique l'une des trois techniques de compression en fonction du type de données.
Cela augmente la compression de vos données, ce qui réduit considérablement la quantité de mémoire consommée sur votre appareil. Cela rend votre rapport plus optimal, ce qui facilite son exécution et son chargement.
Découvrez l
Découvrez comment comparer facilement des tables dans Power Query pour signaler les différences et optimiser vos analyses de données.
Dans ce blog, vous découvrirez comment diviser les colonnes dans LuckyTemplates par délimiteurs à l'aide de DAX, une méthode efficace pour gérer des modèles de données complexes.
Découvrez comment récolter une valeur avec SELECTEDVALUE DAX pour des calculs dynamiques dans LuckyTemplates.
Calculez la marge en pourcentage à l
Dans ce didacticiel, nous allons explorer une méthode rapide pour convertir du texte en formats de date à l
Dans ce blog, vous apprendrez à enregistrer automatiquement la pièce jointe d
Découvrez comment adapter les cellules Excel au texte avec ces 4 solutions simples pour améliorer la présentation de vos données.
Dans ce didacticiel SSRS Report Builder, découvrez comment utiliser le générateur d
Découvrez les outils pour créer un thème de couleur efficace pour vos rapports LuckyTemplates et améliorer leur apparence.