Dans Excel 2013 ou une ultĂ©rieure, vous pouvez crĂ©er des modĂšles de donnĂ©es contenant des millions de lignes, puis effectuer de puissantes analyses de donnĂ©es sur ces modĂšles. Les modĂšles de donnĂ©es peuvent ĂȘtre crĂ©Ă©s avec ou sans le complĂ©ment Power Pivot pour permettre la prise en charge de tableaux croisĂ©s dynamiques, de graphiques et de visualisations Power View au sein du mĂȘme classeur.
Remarque : Cet article dĂ©crit les modĂšles de donnĂ©es disponibles Excel 2013. Toutefois, les mĂȘmes fonctionnalitĂ©s de modĂ©lisation des donnĂ©es et de Power Pivot introduites dans Excel 2013 sâappliquent Ă©galement Excel 2016. Il existe effectivement peu de diffĂ©rences entre ces versions de Excel.
Bien que vous puissiez facilement crĂ©er dâimposants modĂšles de donnĂ©es dans Excel, il existe plusieurs raisons de ne pas le faire. PremiĂšrement, les modĂšles de grande taille qui contiennent une multitude de tables et de colonnes sont trop complexes pour la plupart des analyses et produisent une liste de champs encombrante. DeuxiĂšmement, les modĂšles de grande taille utilisent une quantitĂ© importante de mĂ©moire, ce qui affecte nĂ©gativement les autres applications et rapports qui partagent les mĂȘmes ressources systĂšme. Enfin, dans Microsoft 365, SharePoint Online et Excel Web App limitent la taille dâun Excel Ă 10 Mo. Pour les modĂšles de donnĂ©es de classeurs qui contiennent des millions de lignes, la limite des 10 Mo est rapidement atteinte. Voir SpĂ©cification et limites du modĂšle de donnĂ©es.
Dans cet article, vous allez apprendre Ă crĂ©er un modĂšle optimal, plus simple Ă utiliser et qui consomme moins de mĂ©moire. Prendre le temps dâapprendre les meilleures pratiques en matiĂšre de conception de modĂšles efficaces sera payant par la suite pour tout modĂšle que vous crĂ©ez et utilisez, que vous lâaffichez dans Excel 2013, Microsoft 365 SharePoint Online, sur Office Web Apps Server ou dans SharePoint 2013.
Vous pouvez Ă©galement exĂ©cuter lâoptimiseur de la taille des classeurs. Il analyse votre classeur Excel et si possible, le compresse davantage. TĂ©lĂ©chargez lâoptimiseur de la taille des fichiers de travail.
Contenu de cet article
Taux de compression et moteur dâanalyse en mĂ©moire
Les modĂšles de donnĂ©es Excel utiliser le moteur dâanalyse en mĂ©moire pour stocker les donnĂ©es en mĂ©moire. Le moteur implĂ©mente de puissantes techniques de compression pour rĂ©duire les besoins de stockage, en rĂ©duisant un jeu de rĂ©sultats jusquâĂ ce quâil soit une fraction de sa taille dâorigine.
En moyenne, la taille dâun modĂšle de donnĂ©es peut ĂȘtre jusquâĂ 7 ou 10 fois plus petite que la taille des mĂȘmes donnĂ©es Ă lâorigine. Par exemple, si vous importez 7 Mo de donnĂ©es Ă partir dâune base de donnĂ©es SQL Server, le modĂšle de donnĂ©es dans Excel peut facilement correspondre Ă 1 Mo, voire moins. Le degrĂ© de compression rĂ©ellement atteint dĂ©pend essentiellement du nombre de valeurs uniques dans chaque colonne. Plus les valeurs uniques sont nombreuses, plus la mĂ©moire nĂ©cessaire Ă leur stockage est importante.
Pourquoi parlons-nous de compression et de valeurs uniques ? La crĂ©ation dâun modĂšle efficace qui minimise lâutilisation de mĂ©moire est une question dâoptimisation de compression. Le moyen le plus simple dây arriver consiste Ă supprimer toutes les colonnes dont vous nâavez pas vraiment besoin, en particulier si celles-ci incluent un grand nombre de valeurs uniques.
Remarque : Les diffĂ©rences de besoins en matiĂšre de stockage pour des colonnes individuelles peuvent ĂȘtre Ă©normes. Dans certains cas, il est prĂ©fĂ©rable dâavoir plusieurs colonnes avec un petit nombre de valeurs uniques plutĂŽt quâune seule colonne avec un grand nombre de valeurs uniques. La section consacrĂ©e Ă lâoptimisation de Datetime aborde cette technique en dĂ©tail.
Rien ne vaut une colonne inexistante pour rĂ©duire lâutilisation de la mĂ©moire
La colonne la plus Ă©conome en mĂ©moire est celle que vous nâavez jamais importĂ©e. Si vous voulez crĂ©er un modĂšle efficace, examinez chaque colonne et demandez-vous si elle contribue Ă lâanalyse que vous souhaitez effectuer. Si ce nâest pas le cas ou si vous en doutez, abstenez-vous. Vous pourrez toujours ajouter de nouvelles colonnes plus tard, si vous en avez besoin.
Deux exemples de colonnes qui doivent toujours ĂȘtre exclues
Le premier exemple porte sur des donnĂ©es qui proviennent dâun entrepĂŽt de donnĂ©es. Dans un entrepĂŽt de donnĂ©es, il est courant de trouver des artefacts de processus ETL qui chargent et actualisent les donnĂ©es dans lâentrepĂŽt. Les colonnes telles que celles qui sont relatives Ă la « date de crĂ©ation », la « date de mise Ă jour » et lâ« exĂ©cution ETL » sont crĂ©Ă©es quand les donnĂ©es sont chargĂ©es. Aucune de ces colonnes nâĂ©tant nĂ©cessaire dans le modĂšle, celles-ci doivent ĂȘtre dĂ©sĂ©lectionnĂ©es quand vous importez des donnĂ©es.
Le second exemple implique lâomission de la colonne clĂ© primaire durant lâimportation dâune table de faits.
De nombreuses tables, notamment les tables de faits, ont des clés primaires. Pour la plupart des tables, par exemple celles qui contiennent des données relatives aux clients, aux employés ou aux ventes, vous souhaiterez disposer de la clé primaire de la table pour pouvoir créer des relations dans le modÚle.
Les tables de faits sont diffĂ©rentes. Dans une table de faits, la clĂ© primaire est utilisĂ©e pour identifier chaque ligne de façon unique. Bien que cet aspect soit nĂ©cessaire en matiĂšre de normalisation, cela est moins utile dans un modĂšle de donnĂ©es oĂč vous voulez uniquement que les colonnes soient utilisĂ©es Ă des fins dâanalyse ou pour Ă©tablir des relations entre les tables. Pour cette raison, durant lâimportation dâune table de faits, nâincluez pas sa clĂ© primaire. Les clĂ©s primaires dâune table de faits occupent beaucoup dâespace dans le modĂšle mais ne prĂ©sentent aucun avantage, car elles ne peuvent pas ĂȘtre utilisĂ©es pour crĂ©er des relations.
Remarque : Dans les entrepĂŽts de donnĂ©es et les bases de donnĂ©es multidimensionnelles, les grandes tables composĂ©es principalement de donnĂ©es numĂ©riques sont souvent appelĂ©es « tables de faits ». Les tables de faits incluent gĂ©nĂ©ralement des donnĂ©es sur les performances ou les transactions, telles que les points de donnĂ©es des ventes et des coĂ»ts qui sont agrĂ©gĂ©s et alignĂ©s sur les unitĂ©s organisationnelles, les produits, les segments de marchĂ©, les rĂ©gions gĂ©ographiques, etc. Toutes les colonnes dâune table de faits qui contiennent des donnĂ©es mĂ©tiers ou qui peuvent ĂȘtre utilisĂ©es pour faire un renvoi aux donnĂ©es stockĂ©es dans dâautres tables doivent ĂȘtre incluses dans le modĂšle pour prendre en charge lâanalyse des donnĂ©es. La colonne que vous voulez exclure est la colonne clĂ© primaire de la table de faits, qui se compose de valeurs uniques qui existent uniquement dans la table de faits. Ătant donnĂ© que les tables de faits sont extrĂȘmement grandes, certains des gains les plus importants en matiĂšre dâefficacitĂ© des modĂšles sont dĂ©rivĂ©s de lâexclusion des lignes ou colonnes de tables de faits.
Comment exclure les colonnes inutiles
Les modĂšles efficaces contiennent uniquement les colonnes dont vous avez rĂ©ellement besoin dans votre classeur. Si vous souhaitez contrĂŽler le choix des colonnes incluses dans le modĂšle, vous devez utiliser lâAssistant Importation de table dans le complĂ©ment Power Pivot pour importer les donnĂ©es au lieu de la boĂźte de dialogue « Importer des donnĂ©es » dans Excel.
Quand vous dĂ©marrez lâAssistant Importation de table, vous sĂ©lectionnez les tables Ă importer.
Pour chaque table, vous pouvez cliquer sur Afficher un aperçu et filtrer, puis sĂ©lectionner les parties de la table dont vous avez vraiment besoin. Nous vous recommandons de dĂ©sactiver dâabord les cases Ă cocher de toutes les colonnes, puis dâactiver les cases Ă cocher des colonnes souhaitĂ©es, aprĂšs avoir dĂ©terminĂ© si elles sont nĂ©cessaires Ă lâanalyse.
Quâen est-il du filtrage des lignes nĂ©cessaires uniquement ?
De nombreuses tables de bases de donnĂ©es et dâentrepĂŽts de donnĂ©es dâentreprises contiennent des donnĂ©es historiques accumulĂ©es sur de longues pĂ©riodes. En outre, vous constaterez peut-ĂȘtre que les tables qui vous intĂ©ressent contiennent des informations sur des domaines de lâentreprise qui ne sont pas nĂ©cessaires pour votre analyse spĂ©cifique.
Ă lâaide de lâAssistant Importation de table, vous pouvez filtrer les donnĂ©es historiques ou les donnĂ©es non liĂ©es, et donc gagner beaucoup dâespace dans le modĂšle. Dans lâimage suivante, un filtre de date est utilisĂ© pour rĂ©cupĂ©rer uniquement les lignes qui contiennent les donnĂ©es de lâannĂ©e actuelle, en excluant les donnĂ©es historiques non nĂ©cessaires.
Si nous avons besoin de la colonne, pouvons-nous tout de mĂȘme rĂ©duire lâespace quâelle occupe ?
Il existe quelques techniques supplĂ©mentaires que vous pouvez appliquer pour optimiser la compression dâune colonne. Nâoubliez pas que la seule caractĂ©ristique de la colonne qui affecte la compression est le nombre de valeurs uniques. Dans cette section, vous apprendrez Ă modifier certaines colonnes pour rĂ©duire le nombre de valeurs uniques.
Modification des colonnes Datetime
Dans de nombreux cas, les colonnes Datetime occupent beaucoup dâespace. Heureusement, il existe un certain nombre de mĂ©thodes qui permettent de rĂ©duire les besoins de stockage pour ce type de donnĂ©es. Les techniques varient en fonction de la façon dont vous utilisez la colonne et de votre niveau dâexpertise en matiĂšre de crĂ©ation de requĂȘtes SQL.
Les colonnes Datetime comprennent une partie date et une partie heure. Quand vous vous demandez si vous avez besoin dâune colonne, posez-vous la mĂȘme question Ă plusieurs reprises pour une colonne Datetime :
-
Ai-je besoin de la partie date ?
-
Ai-je besoin de la partie heure au niveau des heures ? , des minutes ? , Secondes ? , millisecondes ?
-
Ai-je besoin de plusieurs colonnes Datetime pour calculer la différence qui existe entre elles ou tout simplement pour agréger les données par année, par mois, par trimestre, etc.
La façon dont vous rĂ©pondez Ă chacune de ces questions dĂ©termine vos options en matiĂšre de gestion dâune colonne Datetime.
Toutes ces solutions nĂ©cessitent la modification dâune requĂȘte SQL. Pour faciliter la modification des requĂȘtes, filtrez au moins une colonne de chaque table. GrĂące au filtrage dâune colonne, vous changez la construction des requĂȘtes en passant dâun format abrĂ©gĂ© (SELECT *) Ă une instruction SELECT qui comprend des noms de colonnes complets, lesquels sont beaucoup plus faciles Ă modifier.
Examinons les requĂȘtes crĂ©Ă©es pour vous. Dans la boĂźte de dialogue PropriĂ©tĂ©s de la table, vous pouvez passer Ă lâĂditeur de requĂȘte afin de voir la requĂȘte SQL active pour chaque table.
Dans PropriĂ©tĂ©s de la table, sĂ©lectionnez Ăditeur de requĂȘte.
LâĂditeur de requĂȘte affiche la requĂȘte SQL utilisĂ©e pour remplir la table. Si vous avez filtrĂ© une colonne durant lâimportation, votre requĂȘte comprend les noms de colonnes complets :
En revanche, si vous avez importĂ© une table dans son intĂ©gralitĂ© sans dĂ©sactiver la moindre colonne ou sans appliquer de filtre, vous verrez la requĂȘte sous la forme « Select * from », qui est plus difficile Ă modifier :
|
Modification de la requĂȘte SQL
Ă prĂ©sent, vous savez comment trouver la requĂȘte, vous pouvez ensuite la modifier afin de rĂ©duire davantage la taille de votre modĂšle.
-
Pour les colonnes contenant des donnĂ©es monĂ©taires ou dĂ©cimales, si vous nâavez pas besoin des dĂ©cimales, utilisez la syntaxe suivante pour supprimer ces derniĂšres :
« SĂLECTIONNER ARRONDI([Decimal_column_name],0)... .â
Si vous avez besoin de centimes mais pas de fractions de centimes, remplacez le 0 par 2. Si vous utilisez des nombres négatifs, vous pouvez les arrondir aux unités, aux dizaines, aux centaines, etc.
-
Si vous avez une colonne Datetime nommĂ©e dbo.Bigtable.[Date Time] et si vous nâavez pas besoin de la partie heure, utilisez la syntaxe suivante pour supprimer la partie heure :
« SELECT CAST (dbo.Bigtable.[Date time] as date) AS [Date time]) »
-
Si vous avez une colonne Datetime nommĂ©e dbo.Bigtable.[Date Time] et si vous avez besoin des parties date et heure, utilisez plusieurs colonnes dans la requĂȘte SQL au lieu de la colonne Datetime uniquement :
« SELECT CAST (dbo.Bigtable.[Date Time] as date) AS [Date Time],
datepart(hh, dbo.Bigtable.[Date Time]) as [Date Time Hours],
datepart(mi, dbo.Bigtable.[Date Time]) as [Date Time Minutes],
datepart(ss, dbo.Bigtable.[Date Time]) as [Date Time Seconds],
datepart(ms, dbo.Bigtable.[Date Time]) as [Date Time Milliseconds]â
Utilisez autant de colonnes que nécessaire pour stocker chaque partie dans des colonnes distinctes.
-
Si vous avez besoin des heures et des minutes, et si vous préférez les regrouper dans une seule colonne de temps, vous pouvez utiliser la syntaxe suivante :
Timefromparts(datepart(hh, dbo.Bigtable.[Date Time]), datepart(mm, dbo.Bigtable.[Date Time])) as [Date Time HourMinute]
-
Si vous avez deux colonnes datetime, par exemple [Start Time] et [End Time], et si vous avez besoin dâindiquer la diffĂ©rence en secondes entre ces colonnes sous la forme dâune colonne appelĂ©e [Duration], retirez les deux colonnes de la liste et ajoutez ce qui suit :
âdatediff(ss,[Start Date],[End Date]) as [Duration]â
Si vous utilisez le mot clé ms à la place de ss, vous obtiendrez la durée en millisecondes.
Utilisation de mesures calculées DAX à la place de colonnes
Si vous avez dĂ©jĂ utilisĂ© le langage dâexpressions DAX, vous savez sans doute que les colonnes calculĂ©es sont utilisĂ©es pour dĂ©river de nouvelles colonnes Ă partir dâune autre colonne du modĂšle, alors que les mesures calculĂ©es sont dĂ©finies une seule fois dans le modĂšle mais sont Ă©valuĂ©es uniquement quand elles sont utilisĂ©es dans un tableau croisĂ© dynamique ou tout autre rapport.
Il existe une technique dâĂ©conomie de mĂ©moire qui consiste Ă remplacer les colonnes ordinaires ou calculĂ©es par des mesures calculĂ©es. Lâexemple classique est celui des colonnes relatives au prix unitaire, Ă la quantitĂ© et au total. Si vous avez ces trois colonnes, vous pouvez gagner de lâespace en conservant seulement deux de ces colonnes et en calculant la troisiĂšme Ă lâaide dâexpressions DAX.
Quelles sont les 2 colonnes à garder ?
Dans lâexemple ci-dessus, gardez les colonnes relatives Ă la quantitĂ© et au prix unitaire. Ces deux colonnes ont moins de valeurs que la colonne de total. Pour calculer le total, ajoutez une mesure calculĂ©e comme suit :
âTotalSales:=sumx(âSales Tableâ,âSales Tableâ[Unit Price]*âSales Tableâ[Quantity])â
Les colonnes calculĂ©es sont comme des colonnes ordinaires dans la mesure oĂč toutes les deux occupent de lâespace dans le modĂšle. En revanche, les mesures calculĂ©es sont calculĂ©es Ă la volĂ©e et nâoccupent pas dâespace.
Conclusion
Dans cet article, nous avons dĂ©crit plusieurs approches qui peuvent vous aider Ă crĂ©er un modĂšle plus Ă©conome en mĂ©moire. Il est possible de limiter la taille du fichier et les besoins en mĂ©moire dâun modĂšle de donnĂ©es en rĂ©duisant le nombre total de colonnes et de lignes, ainsi que le nombre de valeurs uniques figurant dans chaque colonne. Voici quelques techniques que nous avons abordĂ©es :
-
La suppression de colonnes est Ă©videmment la meilleure façon de gagner de lâespace. DĂ©terminez quelles sont les colonnes dont vous avez rĂ©ellement besoin.
-
Parfois, vous pouvez supprimer une colonne et la remplacer par une mesure calculée dans la table.
-
Vous nâavez pas forcĂ©ment besoin de toutes les lignes dâune table. Vous pouvez filtrer les lignes dans lâAssistant Importation de table.
-
En rĂšgle gĂ©nĂ©rale, la rupture dâune colonne unique en plusieurs parties distinctes est un bon moyen de rĂ©duire le nombre de valeurs uniques dans une colonne. Chacune des parties aura un petit nombre de valeurs uniques, et le total combinĂ© sera plus petit que la colonne unifiĂ©e dâorigine.
-
Dans de nombreux cas, vous avez Ă©galement besoin dâutiliser les diffĂ©rentes parties sous forme de segments dans vos rapports. Le cas Ă©chĂ©ant, vous pouvez crĂ©er des hiĂ©rarchies basĂ©es sur des parties telles que les heures, les minutes et les secondes.
-
Bien souvent, les colonnes contiennent plus dâinformations que nĂ©cessaire. Par exemple, supposons quâune colonne stocke des dĂ©cimales, mais que vous avez appliquĂ© une mise en forme qui masque toutes les dĂ©cimales. Lâarrondi peut se rĂ©vĂ©ler trĂšs efficace pour rĂ©duire la taille dâune colonne numĂ©rique.
Maintenant que vous avez fait votre possible pour rĂ©duire la taille de votre classeur, envisagez dâexĂ©cuter lâoptimiseur de la taille des classeurs. Il analyse votre classeur Excel et si possible, le compresse davantage. TĂ©lĂ©chargez lâoptimiseur de la taille des fichiers de travail.
Liens connexes
Spécification et limites du modÚle de données
Optimiseur de la taille des livres de travail
PowerPivot : analyse et modélisation de données puissantes dans Excel