Tableau au détail, vraiment?

Le temps de rapport dans Excel s'épuise rapidement - la tendance des outils pratiques pour présenter et analyser les informations est visible dans tous les domaines. Nous avons longtemps discuté de la numérisation du bùtiment de génération de rapports et avons choisi le systÚme de visualisation et d'analyse en libre-service Tableau. Alexander Bezugly, chef du département des solutions analytiques et des rapports du groupe M. Video-Eldorado, a parlé de l'expérience et des résultats de la construction d'un tableau de bord de combat.

Je dois dire tout de suite que tout ce qui était prévu n'a pas été réalisé, mais l'expérience a été intéressante, j'espÚre qu'elle vous sera également utile. Et si quelqu'un arrive avec des idées sur la façon de faire mieux, je serai trÚs reconnaissant pour les conseils et les idées.



Sous la coupe de ce que nous avons rencontré et de ce que nous avons appris.

Par oĂč avons-nous commencĂ©


«M. Video-Eldorado» dispose d'un modÚle de données bien développé: des informations structurées avec la profondeur de stockage requise et un grand nombre de rapports de forme fixe (voir cet article pour plus de détails). Parmi ceux-ci, les analystes créent des tableaux croisés dynamiques ou des mailings formatés dans Excel, ou de belles présentations dans PowerPoint pour les utilisateurs finaux.

Il y a environ deux ans, au lieu de rapports d'un formulaire fixe, nous avons commencé à créer des rapports analytiques dans SAP Analysis (un complément pour Excel, en fait - un tableau croisé dynamique sur le moteur OLAP). Mais cet outil n'a pas été en mesure de répondre aux besoins de tous les utilisateurs, la plupart d'entre eux ont continué à utiliser des informations supplémentaires traitées par les analystes.

Nos utilisateurs finaux sont divisés en trois catégories:

Top management . Demande des informations sous une forme bien présentée et clairement compréhensible.

Gestion intermédiaire , utilisateurs avancés. Intéressé par la recherche de données et capable de créer indépendamment des rapports avec des outils. Ils sont devenus les principaux utilisateurs des rapports analytiques dans SAP Analysis.

Utilisateurs de masse . Pas intéressé par l'auto-analyse des données, utilisez des rapports avec un degré de liberté limité, au format des newsletters et des tableaux croisés dynamiques dans Excel.

Notre idée était de couvrir les besoins de tous les utilisateurs et de leur donner un outil pratique unique. Ils ont décidé de commencer par la haute direction. Ils avaient besoin de tableaux de bord pratiques pour analyser les résultats commerciaux clés. Nous avons donc commencé avec Tableau et pour commencer, nous avons choisi deux domaines: les ventes au détail et les ventes en ligne avec une profondeur et une étendue d'analyse limitées, qui couvriraient environ 80% des données demandées par la direction.

Étant donnĂ© que les utilisateurs des tableaux de bord Ă©taient des cadres supĂ©rieurs, un autre KPI supplĂ©mentaire du produit est apparu: la vitesse de rĂ©ponse. Personne n'attendra 20 Ă  30 secondes jusqu'Ă  ce que les donnĂ©es soient mises Ă  jour. La navigation devait tenir en 4-5 secondes, et il valait mieux s'entraĂźner instantanĂ©ment. Et nous, hĂ©las, n'y sommes pas parvenus.

Voici Ă  quoi ressemblait notre disposition de base du tableau de bord:



L'idée clé est de combiner les principaux pilotes KPI, qui sont au final 19, à gauche et de présenter leur dynamique et une répartition des principaux attributs à droite. La tùche semble simple, la visualisation est logique et compréhensible, jusqu'à ce que vous entriez dans les détails.

Détail 1. Volume de données


Le principal tableau des ventes de l'annĂ©e occupe environ 300 millions de lignes. Puisqu'il est nĂ©cessaire de reflĂ©ter la dynamique de la derniĂšre et de l'annĂ©e prĂ©cĂ©dente, la quantitĂ© de donnĂ©es sur les ventes rĂ©elles reprĂ©sente Ă  elle seule environ 1 milliard de lignes. Et les informations sur les donnĂ©es planifiĂ©es et une unitĂ© de vente en ligne sont Ă©galement stockĂ©es sĂ©parĂ©ment. Par consĂ©quent, mĂȘme si nous avons utilisĂ© la base de donnĂ©es en mĂ©moire SAP HANA en mĂ©moire, la vitesse de requĂȘte avec la sĂ©lection de tous les indicateurs pendant une semaine Ă  partir du stockage actuel Ă  la volĂ©e Ă©tait d'environ 15 Ă  20 secondes. La solution Ă  ce problĂšme se suggĂšre: une matĂ©rialisation supplĂ©mentaire des donnĂ©es. Mais il y a aussi des piĂšges, Ă  leur sujet ci-dessous.

Partie 2. Indicateurs non additifs


Nous avons de nombreux KPI liĂ©s au nombre de contrĂŽles. Et cet indicateur est un COUNT DISTINCT du nombre de lignes (en-tĂȘtes de rĂ©ception) et affiche des montants diffĂ©rents en fonction des attributs sĂ©lectionnĂ©s. Par exemple, comment cet indicateur et son dĂ©rivĂ© doivent ĂȘtre considĂ©rĂ©s:



Pour l'exactitude des calculs, vous pouvez:

  • Effectuer le calcul de ces indicateurs Ă  la volĂ©e dans le stockage;
  • Calculez la quantitĂ© totale de donnĂ©es dans Tableau, c'est-Ă -dire sur demande, dans Tableau, donnez toutes les donnĂ©es pour les filtres sĂ©lectionnĂ©s dans la granularitĂ© de la position de contrĂŽle;
  • Faire une vitrine matĂ©rialisĂ©e dans laquelle tous les indicateurs seront calculĂ©s dans toutes les variantes d'Ă©chantillons donnant diffĂ©rents rĂ©sultats non additifs.

Il est clair que dans l'exemple UTE1 et UTE2 sont des attributs matĂ©riels reprĂ©sentant la hiĂ©rarchie des produits. Ce n'est pas une chose statique, Ă  travers elle va la gestion au sein de l'entreprise, car diffĂ©rents groupes de produits sont responsables de diffĂ©rents gestionnaires. Nous avons eu de nombreuses rĂ©visions globales de cette hiĂ©rarchie, lorsque tous les niveaux ont changĂ©, lorsque les corrĂ©lations ont Ă©tĂ© rĂ©visĂ©es et des changements de points constants, lorsqu'un groupe se dĂ©place d'un nƓud Ă  un autre. Dans le reporting ordinaire, tout cela est considĂ©rĂ© Ă  la volĂ©e Ă  partir des attributs du matĂ©riel, en cas de matĂ©rialisation de ces donnĂ©es, il est nĂ©cessaire de dĂ©velopper un mĂ©canisme de suivi de ces changements et de surcharge automatique des donnĂ©es historiques. Une tĂąche trĂšs simple.

Détail 3. Comparaison des données


Cet article est similaire au précédent. L'essentiel est que lors de l'analyse d'une entreprise, il est habituel de former plusieurs niveaux de comparaison avec la période précédente:

Comparaison avec la période précédente (au jour le jour, de semaine en semaine, de mois en mois)

Dans cette comparaison, on suppose que, selon la période sélectionnée par l'utilisateur (par exemple, semaine 33 de l'année), nous devons montrer la dynamique à la semaine 32, si nous avons sélectionné des données pour le mois, par exemple, mai, cette comparaison montrerait la dynamique d'ici avril.

Comparaison avec l'année derniÚre

Ici, la principale mise en garde est que lorsque vous comparez par jour et par semaine, vous ne prenez pas le mĂȘme jour de l'annĂ©e derniĂšre, c'est-Ă -dire vous ne pouvez pas simplement mettre l'annĂ©e en cours moins un. Vous devez regarder le jour de la semaine comparĂ©. Et lorsque vous comparez des mois, au contraire, vous devez prendre exactement le mĂȘme jour civil l'annĂ©e derniĂšre. Il existe Ă©galement des nuances avec les annĂ©es bissextiles. Dans les rĂ©fĂ©rentiels source, toutes les informations sont distribuĂ©es par jour, il n'y a pas de champs sĂ©parĂ©s avec des semaines, des mois, des annĂ©es. Par consĂ©quent, pour obtenir une tranche analytique complĂšte dans le panel, il est nĂ©cessaire de considĂ©rer non pas une pĂ©riode, par exemple une semaine, mais 4 semaines, puis ces donnĂ©es doivent ĂȘtre comparĂ©es, reflĂ©ter la dynamique, les Ă©carts. En consĂ©quence, cette logique de formation de comparaisons en dynamique peut Ă©galement ĂȘtre implĂ©mentĂ©e soit dans Tableau, soit du cĂŽtĂ© de la vitrine. Oui, et bien sĂ»r, nous connaissions et pensions Ă  ces dĂ©tails au stade de la conception, mais leur impact sur les performances du tableau de bord final Ă©tait difficile Ă  prĂ©voir.

Avec l'introduction du tableau de bord, nous avons suivi un long chemin Agile. Notre tùche était de fournir un outil de travail avec les données nécessaires pour les tests le plus rapidement possible. Par conséquent, nous sommes allés sprints et avons commencé à minimiser le travail du cÎté du stockage actuel.

Partie 1. La foi dans Tableau


Pour simplifier le support informatique et implémenter rapidement les changements, nous avons décidé de faire la logique du calcul des indicateurs non additifs et de comparer les périodes passées dans Tableau.

Étape 1. Tout dans Live, aucune amĂ©lioration de l'habillage des fenĂȘtres.


À ce stade, nous avons connectĂ© Tableau aux vitrines actuelles et dĂ©cidĂ© de voir comment le nombre de chĂšques sera comptĂ© dans un an.

RĂ©sultat:

La rĂ©ponse Ă©tait dĂ©primante - 20 minutes. Distillation des donnĂ©es rĂ©seau, charge Ă©levĂ©e sur Tableau. Nous avons rĂ©alisĂ© que la logique avec des mĂ©triques non additives doit ĂȘtre implĂ©mentĂ©e sur HANA. Cela ne nous a pas beaucoup fait peur, nous avions dĂ©jĂ  une expĂ©rience similaire avec BO et Analysis et nous avons pu crĂ©er des vitrines rapides dans HANA qui produisent des indicateurs non additifs calculĂ©s correctement. Restait maintenant Ă  les modifier sous Tableau.

Étape 2. Nous rĂ©glons les fenĂȘtres, pas de matĂ©rialisation, tout est Ă  la volĂ©e.


Nous avons crĂ©Ă© une nouvelle vitrine distincte, qui a produit Ă  la volĂ©e les donnĂ©es requises pour TABLEAU. En gĂ©nĂ©ral, nous avons obtenu un bon rĂ©sultat, nous avons rĂ©duit le temps de formation de tous les indicateurs en une semaine Ă  9-10 secondes. Et nous nous attendions honnĂȘtement Ă  ce que dans Tableau, le temps de rĂ©ponse du tableau de bord soit de 20 Ă  30 secondes Ă  la premiĂšre ouverture, puis Ă  cause du cache de 10 Ă  12, ce qui nous conviendrait en gĂ©nĂ©ral.

RĂ©sultat:

Premier tableau de bord ouvert: 4-5 minutes
Tout clic: 3-4 minutes
Personne ne s'attendait à une telle augmentation supplémentaire du travail de la vitrine.

Partie 2. Immersion dans Tableau


Étape 1. Analyse des performances de Tableau et optimisation rapide


Nous avons commencĂ© Ă  analyser les dĂ©penses de Tableau la plupart du temps. Et pour cela, il existe une bonne boĂźte Ă  outils, qui, bien sĂ»r, est en plus de Tableau. Le principal problĂšme que nous avons identifiĂ© Ă©tait les requĂȘtes SQL trĂšs complexes crĂ©Ă©es par Tableau. Ils Ă©taient principalement associĂ©s Ă :

- transposition de donnĂ©es. Étant donnĂ© que Tableau ne dispose d'aucun outil pour transposer les ensembles de donnĂ©es, pour crĂ©er le cĂŽtĂ© gauche du tableau de bord avec une vue dĂ©taillĂ©e de tous les indicateurs de performance clĂ©s, nous avons dĂ» crĂ©er un tableau Ă  travers le cas. La taille des requĂȘtes SQL dans la base de donnĂ©es a atteint 120 000 caractĂšres.



- le choix de la pĂ©riode. Une telle requĂȘte au niveau de la base de donnĂ©es a pris plus de temps Ă  compiler qu'Ă  exĂ©cuter:



C'est-Ă -dire traitement des requĂȘtes 12 secondes + 5 secondes d'exĂ©cution.

Nous avons décidé de simplifier la logique des calculs cÎté Tableau et de transférer une autre partie des calculs au niveau de la vitrine et de la base de données. Cela a donné de bons résultats.

Tout d'abord, nous avons effectué la transposition à la volée, effectué une jointure externe complÚte au stade final du calcul VIEW, selon cette approche décrite sur le wiki Transpose - Wikipedia, l'encyclopédie gratuite et Elementary matrix - Wikipedia, l'encyclopédie gratuite .



Autrement dit, nous avons créé un tableau de réglage - la matrice de transposition (21x21) et obtenu tous les indicateurs dans une ventilation ligne par ligne.

C'Ă©tait:


C'est devenu:


La DB elle-mĂȘme ne passe guĂšre de temps Ă  se transposer. La demande pour tous les indicateurs de la semaine a Ă©tĂ© satisfaite comme auparavant en 10 secondes environ. Mais d'autre part, la flexibilitĂ© en termes de construction d'un tableau de bord par un indicateur spĂ©cifique, c'est-Ă -dire pour le cĂŽtĂ© droit du tableau de bord oĂč la dynamique et une ventilation dĂ©taillĂ©e d'un indicateur spĂ©cifique sont prĂ©sentĂ©es, la vitrine a fonctionnĂ© en 1 Ă  3 secondes avant, car la requĂȘte est allĂ©e sur un indicateur, et maintenant la base de donnĂ©es a toujours sĂ©lectionnĂ© tous les indicateurs et filtrĂ© le rĂ©sultat avant de renvoyer le rĂ©sultat Ă  Tableau.

En conséquence, la vitesse du tableau de bord a été réduite de prÚs de 3 fois.

RĂ©sultat:

  1. 5 secondes - analyse des tableaux de bord, visualisations
  2. 15-20 sec - prĂ©paration pour la compilation des requĂȘtes avec exĂ©cution des prĂ©calculs dans Tableau
  3. 35-45 sec - compilation de requĂȘtes SQL et leur exĂ©cution sĂ©quentielle parallĂšle dans Hana
  4. 5 sec - traitement des résultats, tri, recalcul des visualisations dans Tableau
  5. Bien sûr, ces résultats ne convenaient pas à l'entreprise et nous avons continué à optimiser.

Étape 2. Logique minimale dans Tableau, matĂ©rialisation complĂšte


Nous avons compris qu'il Ă©tait impossible de crĂ©er un tableau de bord avec un temps de rĂ©ponse de plusieurs secondes dans une fenĂȘtre de magasin qui a fonctionnĂ© pendant 10 secondes, et nous avons envisagĂ© des options pour matĂ©rialiser les donnĂ©es cĂŽtĂ© base de donnĂ©es spĂ©cifiquement pour le tableau de bord requis. Mais face au problĂšme global dĂ©crit ci-dessus - des indicateurs non additifs. Nous ne pouvions pas faire en sorte que lors du changement de filtres ou d'analyses, Tableau bascule de maniĂšre flexible entre diffĂ©rentes vitrines et niveaux calculĂ©s pour diffĂ©rentes hiĂ©rarchies de produits (dans l'exemple, trois requĂȘtes sans UTE, avec UTE1 et UTE2 forment des rĂ©sultats diffĂ©rents). Par consĂ©quent, nous avons dĂ©cidĂ© de simplifier le tableau de bord, d'abandonner la hiĂ©rarchie des produits dans le tableau de bord et de voir Ă  quelle vitesse il peut ĂȘtre dans la version simplifiĂ©e.

Ainsi, à cette derniÚre étape, nous avons constitué un référentiel séparé dans lequel tous les KPI ont été transposés. Du cÎté de la base de données, toute demande adressée à un tel référentiel est satisfaite en 0,1 à 0,3 seconde. Dans le tableau de bord, nous avons obtenu les résultats suivants:

PremiĂšre ouverture: 8-10 secondes
Tout clic: 6-7 secondes

Le temps que Tableau passe comprend:

  1. 0,3 sec - analyser les tableaux de bord et compiler les requĂȘtes SQL
  2. 1,5-3 sec. - exĂ©cution de requĂȘtes SQL dans Hana pour les visualisations de base (elle dĂ©marre en parallĂšle avec le point 1)
  3. 1,5-2 sec. - rendu, recalcul des visualisations
  4. 1,3 s - exĂ©cution de requĂȘtes SQL supplĂ©mentaires pour obtenir des valeurs de filtre pertinentes (marque, division, ville, boutique), analyse des rĂ©sultats

Pour résumer


Nous avons aimé l'outil Tableau en termes de visualisation. Au stade du prototypage, nous avons examiné divers éléments de visualisation et les avons tous trouvés dans des bibliothÚques, y compris des segmentations complexes à plusieurs niveaux et une cascade multi-pilotes.

En prĂ©sentant des tableaux de bord avec des indicateurs de vente clĂ©s, nous avons rencontrĂ© des difficultĂ©s de performance que nous n'avons pas encore pu surmonter. Nous avons passĂ© plus de deux mois et obtenu un tableau de bord fonctionnellement incomplet, dont la vitesse de rĂ©ponse est sur le point d'ĂȘtre admissible. Et pour moi, nous avons conclu:

  1. Tableau ne sait pas comment travailler avec de grandes quantités de données. Si, dans le modÚle de données d'origine, vous disposez de plus de 10 Go de données (environ 200 millions de lignes X 50), le tableau de bord est sérieusement ralenti - de 10 secondes à plusieurs minutes par clic. Nous avons expérimenté à la fois la connexion en direct et l'extrait. La vitesse de travail est comparable.
  2. Restriction lors de l'utilisation de plusieurs stockages (jeux de données). Il n'y a aucun moyen d'indiquer la relation des ensembles de données à l'aide d'outils standard. Si vous utilisez des solutions de contournement pour connecter des ensembles de données, cela affectera considérablement les performances. Dans notre cas, nous avons envisagé la possibilité de matérialiser les données dans chaque section souhaitée des représentations, et sur ces ensembles de données matérialisées pour effectuer la commutation en enregistrant les filtres précédemment sélectionnés - cela s'est avéré impossible à faire dans Tableau.
  3. Dans Tableau, il n'est pas possible de crĂ©er des paramĂštres dynamiques. Vous ne pouvez pas utiliser le paramĂštre utilisĂ© pour filtrer l'ensemble de donnĂ©es dans l'extrait, ni pendant la connexion en direct, pour remplir le rĂ©sultat d'une autre sĂ©lection Ă  partir de l'ensemble de donnĂ©es ou le rĂ©sultat d'une autre requĂȘte SQL, uniquement une entrĂ©e utilisateur native ou constante.
  4. Limitations associées à la création d'un tableau de bord avec des éléments OLAP | Tableau croisé dynamique.
    Dans MSTR, SAP SAC, SAP Analysis, si vous ajoutez un jeu de donnĂ©es Ă  un rapport, tous les objets qu'il contient sont connectĂ©s par dĂ©faut les uns aux autres. Dans Tableau, ce n'est pas le cas, la connexion doit ĂȘtre configurĂ©e manuellement. C'est probablement plus flexible, mais pour tous nos tableaux de bord, c'est une exigence obligatoire pour les Ă©lĂ©ments - c'est donc un coĂ»t de main-d'Ɠuvre supplĂ©mentaire. De plus, si vous effectuez des filtres associĂ©s afin que, par exemple, lors du filtrage d'une rĂ©gion, la liste des villes soit limitĂ©e uniquement aux villes de cette rĂ©gion, vous obtiendrez immĂ©diatement des requĂȘtes consĂ©cutives dans la base de donnĂ©es ou extrairez, ce qui ralentit sensiblement le tableau de bord.
  5. Restrictions de fonctionnalitĂ©s. Tant sur l'extrait que sur l'ensemble de donnĂ©es de Live-connecta, vous ne pouvez pas effectuer de conversions en masse. Cela peut ĂȘtre fait via Tableau Prep, mais c'est un travail supplĂ©mentaire et un autre outil qui doit ĂȘtre Ă©tudiĂ© et entretenu. Par exemple, vous ne pouvez pas transposer des donnĂ©es, faites-les rejoindre vous-mĂȘme. Ce qui se termine par des transformations sur des colonnes ou des champs individuels qui doivent ĂȘtre sĂ©lectionnĂ©s via la casse ou si et cela gĂ©nĂšre des requĂȘtes SQL trĂšs complexes, dans lesquelles la base de donnĂ©es passe la plupart du temps Ă  compiler le texte de la requĂȘte. Ces raideurs des instruments ont dĂ» ĂȘtre rĂ©solues au niveau de la devanture, ce qui conduit Ă  un stockage plus compliquĂ©, des charges et des transformations supplĂ©mentaires.

Nous n'avons pas mis fin à Tableau. Mais en tant qu'outil capable de créer des tableaux de bord industriels et un outil avec lequel vous pouvez remplacer et numériser l'intégralité du systÚme de reporting d'entreprise de l'entreprise, Tableau n'est pas considéré.

Maintenant, nous développons activement un tableau de bord similaire sur un autre outil et en parallÚle, nous essayons de réviser l'architecture du tableau de bord dans Tableau afin de le simplifier encore plus. Si la communauté est intéressée, nous vous informerons des résultats.

Nous attendons Ă©galement vos idĂ©es ou vos conseils sur la façon dont Tabeau peut crĂ©er des tableaux de bord rapides sur des volumes de donnĂ©es aussi importants, car nous avons Ă©galement un site Web oĂč il y a beaucoup plus de donnĂ©es que dans le commerce de dĂ©tail.

Source: https://habr.com/ru/post/fr483656/


All Articles