Quest-ce que le self en Python ? Exemples concrets
Qu'est-ce que le self en Python ? Exemples concrets
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.
Qu'est-ce que le self en Python ? Exemples concrets
Vous apprendrez à enregistrer et à charger des objets à partir d'un fichier .rds dans R. Ce blog expliquera également comment importer des objets de R vers LuckyTemplates.
Dans ce didacticiel sur le langage de codage DAX, découvrez comment utiliser la fonction GENERATE et comment modifier dynamiquement le titre d'une mesure.
Ce didacticiel explique comment utiliser la technique Multi Threaded Dynamic Visuals pour créer des informations à partir de visualisations de données dynamiques dans vos rapports.
Dans cet article, je vais parcourir le contexte du filtre. Le contexte de filtrage est l'un des principaux sujets que tout utilisateur de LuckyTemplates doit d'abord connaître.
Je souhaite montrer comment le service en ligne LuckyTemplates Apps peut aider à gérer différents rapports et informations générés à partir de diverses sources.
Découvrez comment calculer les modifications de votre marge bénéficiaire à l'aide de techniques telles que la création de branches de mesure et la combinaison de formules DAX dans LuckyTemplates.
Ce didacticiel abordera les idées de matérialisation des caches de données et comment elles affectent les performances des DAX dans la fourniture de résultats.
Si vous utilisez encore Excel jusqu'à présent, c'est le meilleur moment pour commencer à utiliser LuckyTemplates pour vos besoins en matière de rapports commerciaux.
Qu'est-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir