{"id":55144,"date":"2020-01-13T00:00:00","date_gmt":"2020-01-12T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/tableau-v-roznitse-realno"},"modified":"2020-02-18T14:03:13","modified_gmt":"2020-02-18T11:03:13","slug":"tableau-v-roznitse-realno","status":"publish","type":"post","link":"https:\/\/prohoster.info\/da\/blog\/news\/tableau-v-roznitse-realno","title":{"rendered":"Tableau i detailhandel, virkelig?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><b>Tiden til rapportering i Excel forsvinder hastigt \u2014 trenden mod brugervenlige v\u00e6rkt\u00f8jer til pr\u00e6sentation og analyse af information er synlig i alle omr\u00e5der. Vi har l\u00e6nge diskuteret digitalisering af rapporteringsopbygning og valgt visualiserings- og self-service analytics systemet Tableau. Alexander Bezugly, leder af analytiske l\u00f8sninger og rapportering i 'M.Video-Eldorado' gruppen, delte sin erfaring og resultaterne af opbygningen af et operationelt dashboard.<\/b><\/p>\n<p>Jeg siger med det samme, at ikke alt, hvad der var planlagt, blev realiseret, men erfaringen var interessant, og jeg h\u00e5ber, den vil v\u00e6re nyttig for jer ogs\u00e5. Og hvis nogen har ideer til, hvordan vi kunne have gjort det bedre, vil jeg v\u00e6re meget taknemmelig for r\u00e5d og id\u00e9er.<\/p>\n<p><img decoding=\"async\" alt=\"Tableau i detailhandel, virkelig?\" src=\"\/wp-content\/uploads\/2020\/01\/81c41899e9b3acf1858a4faa627c121b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUnder her om, hvad vi st\u00f8dte p\u00e5 og hvad vi l\u00e6rte.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>Hvordan vi startede<\/h4>\n<p>\nI 'M.Video-Eldorado' er der en veludviklet datamodel: struktureret information med den n\u00f8dvendige dybde af opbevaring og et stort antal faste rapporter (se n\u00e6rmere <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mvideo\/blog\/462015\/\">denne artikel<\/a><\/noindex>). Af dem laver analytikere enten pivottabeller eller formaterede forsendelser i Excel, eller flotte pr\u00e6sentationer i PowerPoint til slutbrugerne.<\/p>\n<p>For cirka to \u00e5r siden begyndte vi at skabe analytiske rapporter i SAP Analysis (et till\u00e6g til Excel, i bund og grund \u2014 en pivottabel over OLAP-motoren) i stedet for faste rapporter. Men dette v\u00e6rkt\u00f8j kunne ikke d\u00e6kke alle brugeres behov, og de fleste fortsatte med at bruge information, som analytikerne yderligere behandlede.<\/p>\n<p>Vores slutbrugere opdeles i tre kategorier:<\/p>\n<p><b>Topledelsen<\/b>. Anmoder om information i en godt pr\u00e6senteret og letforst\u00e5elig form.<\/p>\n<p><b>Mellemledelsen<\/b>, avancerede brugere. Er interesseret i dataforskning og i stand til at opbygge rapporter selv, n\u00e5r de har v\u00e6rkt\u00f8jerne. Det er netop dem, der blev de n\u00f8glebrugere af analytiske rapporter i SAP Analysis.<\/p>\n<p><b>Massebrugere<\/b>. Er ikke interesseret i selvst\u00e6ndig dataanalyse, bruger rapporter med begr\u00e6nset frihed, i form af forsendelser og pivottabeller i Excel.<\/p>\n<p>Vores id\u00e9 var at d\u00e6kke behovene hos alle brugere og give dem et enkelt, praktisk v\u00e6rkt\u00f8j. Vi besluttede at starte med topledelsen. De havde brug for brugervenlige dashboards til analyse af n\u00f8gleforretningsresultater. S\u00e5 vi startede med Tableau og valgte to omr\u00e5der: salgsresultater i detailhandel og online med en begr\u00e6nset dybde og bredde af analysen, som ville d\u00e6kke cirka 80% af de data, som topledelsen efterspurgte.<\/p>\n<p>Da brugerne af dashboards var topledelsen, kom der endnu en ekstra KPI til produktet \u2013 svartiden. Ingen vil vente 20-30 sekunder p\u00e5, at dataene opdateres. Navigationen skulle finde sted inden for 4-5 sekunder, og helst skulle det ske \u00f8jeblikkeligt. Og det lykkedes desv\u00e6rre ikke for os.<\/p>\n<p>S\u00e5dan s\u00e5 layoutet af vores prim\u00e6re dashboard ud:<\/p>\n<p><img decoding=\"async\" alt=\"Tableau i detailhandel, virkelig?\" src=\"\/wp-content\/uploads\/2020\/01\/a7a028feee6542dfbc1fd3c2feeaa3de.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDen n\u00f8gleid\u00e9 var at samle de vigtigste KPI-drivere, som endte med at blive 19, p\u00e5 venstre side og pr\u00e6sentere deres dynamik og opdeling efter de vigtigste attributter til h\u00f8jre. Opgaven virker enkel, visualiseringen er logisk og forst\u00e5elig, indtil man dykker ned i detaljerne.<\/p>\n<h2>Detail 1. M\u00e6ngden af data<\/h2>\n<p>\nDen prim\u00e6re tabel for salg i l\u00f8bet af \u00e5ret indeholder omkring 300 millioner r\u00e6kker. Da det er n\u00f8dvendigt at afspejle b\u00e5de dynamikken i forhold til sidste \u00e5r og det forrige \u00e5r, er m\u00e6ngden af data kun for faktiske salg omkring 1 milliard r\u00e6kker. Derudover opbevares oplysninger om planlagte data og blokken for internet-salg separat. S\u00e5 selvom vi brugte den kolonne-baserede in-memory DB SAP HANA, tog foresp\u00f8rgslen for at v\u00e6lge alle indikatorer for en uge fra de nuv\u00e6rende lager p\u00e5 farten omkring 15-20 sekunder. L\u00f8sningen p\u00e5 denne opgave er \u00e5benbar \u2013 yderligere materialisering af data. Men der er ogs\u00e5 faldgruber i den, som beskrevet nedenfor.<\/p>\n<h2>Detail 2. Ikke-additive indikatorer<\/h2>\n<p>\nMange af vores KPI'er er knyttet til antallet af kvitteringer. Denne indikator repr\u00e6senterer COUNT DISTINCT antallet af r\u00e6kker (overskrifter for kvitteringer) og viser forskellige bel\u00f8b afh\u00e6ngigt af de valgte attributter. For eksempel, hvordan denne indikator og dens afledte v\u00e6rdier skal beregnes:<\/p>\n<p><img decoding=\"async\" alt=\"Tableau i detailhandel, virkelig?\" src=\"\/wp-content\/uploads\/2020\/01\/0a6d676f0a5c2b779a5e7892b1f54929.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nFor at sikre korrektheden af beregningerne kan man:<\/p>\n<ul>\n<li>Udf\u00f8re beregningen af s\u00e5danne indikatorer p\u00e5 farten i lageret;\n<\/li>\n<li>Udf\u00f8re beregningen p\u00e5 hele datam\u00e6ngden i Tableau, dvs. ved foresp\u00f8rgsel i Tableau at returnere alle data i henhold til de valgte filtre i granuleringsniveauet for kvitteringspositioner;\n<\/li>\n<li>Opret en materialiseret visning, hvor alle m\u00e5linger beregnes i alle varianter af udtr\u00e6k, der giver forskellige ikke-additive resultater.\n<\/li>\n<\/ul>\n<p>\nDet er klart, at i eksemplet UTE1 og UTE2 repr\u00e6senterer disse materialeattributter den kommercielle hierarki. Det er ikke en statisk ting; der styres internt i virksomheden, da forskellige ledere har ansvar for forskellige produktgrupper. Vi har haft mange globale gennemgange af dette hierarki, hvor alle niveauer \u00e6ndres, n\u00e5r relationer revideres, samt konstant punktvise \u00e6ndringer, hvor en gruppe flyttes fra en node til en anden. I almindelig rapportering beregnes alt dette i realtid fra materialeattributterne. I tilf\u00e6lde af materialisering af disse data er det n\u00f8dvendigt at udvikle en mekanisme til at overv\u00e5ge s\u00e5danne \u00e6ndringer og automatisk genindl\u00e6se historiske data. Det er en ret ikke-trivial opgave.<\/p>\n<h2>Detalje 3. Sammenligning af data <\/h2>\n<p>\nDette punkt ligner det forrige. Essensen er, at virksomheden ved analyse plejer at danne flere niveauer af sammenligning med fortiden:<\/p>\n<p><i>Sammenligning med fortiden (dag til dag, uge til uge, m\u00e5ned til m\u00e5ned)<\/i><\/p>\n<p>I denne sammenligning antages det, at afh\u00e6ngigt af den periode, brugeren v\u00e6lger (for eksempel uge 33 i \u00e5ret), skal vi vise udviklingen fra uge 32. Hvis vi valgte data for en m\u00e5ned, for eksempel maj, ville denne sammenligning vise udviklingen i forhold til april.<\/p>\n<p><i>Sammenligning med sidste \u00e5r<\/i><\/p>\n<p>Den prim\u00e6re nuance her er, at n\u00e5r man sammenligner dage og uger, skal man ikke tage den samme dag fra \u00e5ret f\u00f8r, alts\u00e5 kan man ikke bare tage det nuv\u00e6rende \u00e5r minus \u00e9n. Man skal se p\u00e5 den sammenlignede ugedag. Men n\u00e5r man sammenligner m\u00e5neder, skal man derimod tage pr\u00e6cis samme kalenderdag fra \u00e5ret f\u00f8r. Der er ogs\u00e5 nuancer med skud\u00e5r. I de oprindelige datalagre er al information fordelt p\u00e5 dage, der er ingen separate felter for uger, m\u00e5neder, eller \u00e5r. Derfor, for at f\u00e5 et fuldst\u00e6ndigt analytisk indsigt i panelet, er man n\u00f8dt til at t\u00e6lle ikke bare \u00e9n periode, for eksempel en uge, men 4 uger, og derefter skal disse data sammenlignes for at afspejle dynamik og afvigelser. Denne logik for at skabe sammenligninger i dynamik kan ogs\u00e5 implementeres enten i Tableau eller p\u00e5 terminalens side. Ja, og vi vidste naturligvis om disse detaljer og t\u00e6nkte p\u00e5 dem allerede i designfasen, men det var sv\u00e6rt at forudse deres indflydelse p\u00e5 ydeevnen af det endelige dashboard.<\/p>\n<p>Ved implementeringen af dashboardet fulgte vi en lang Agile-rejse. Vores m\u00e5l var at kunne levere et fungerende v\u00e6rkt\u00f8j med de n\u00f8dvendige data til test s\u00e5 hurtigt som muligt. Derfor arbejdede vi i sprint og fokuserede p\u00e5 at minimere arbejdet p\u00e5 den nuv\u00e6rende datalager.<\/p>\n<h2>Del 1. Troen p\u00e5 Tableau<\/h2>\n<p>\nFor at forenkle IT-support og hurtigt implementere \u00e6ndringer besluttede vi at skabe logikken for beregningen af ikke-additive indikatorer og sammenligning af tidligere perioder i Tableau.<\/p>\n<h3>Trin 1. Alt Live, ingen tilpasninger til terminaler.<\/h3>\n<p>\nI denne fase tilsluttede vi Tableau til de nuv\u00e6rende terminaler og besluttede at se, hvordan antallet af kvitteringer ville blive beregnet over et \u00e5r.<\/p>\n<p><b>Resultat:<\/b><\/p>\n<p>Svaret var nedsl\u00e5ende \u2013 20 minutter. Dataoverf\u00f8rsel over netv\u00e6rket, h\u00f8j belastning p\u00e5 Tableau. Vi forstod, at logikken med ikke-additive indikatorer skulle implementeres p\u00e5 HANA. Dette skr\u00e6mte os ikke meget, da vi allerede havde erfaring med BO og Analyse og vidste, hvordan man bygger hurtige terminaler i HANA, som giver korrekt beregnede ikke-additive indikatorer. Nu skulle de bare tilpasses til Tableau.<\/p>\n<h3>Trin 2. Vi optimerer terminalerne, ingen materialisering, alt sker on-the-fly.<\/h3>\n<p>\nVi har oprettet et helt nyt dashboards, der on-the-fly genererede de n\u00f8dvendige data til TABLEAU. Alt i alt opn\u00e5ede vi et godt resultat, hvor vi reducerede tiden for at generere alle m\u00e5linger fra en uge til 9-10 sekunder. \u00c6rligt talt forventede vi, at svartiden for dashboardet i Tableau ville v\u00e6re 20-30 sekunder ved f\u00f8rste \u00e5bning og derefter, takket v\u00e6re cache, mellem 10 og 12, hvilket i det hele taget ville have v\u00e6ret acceptabelt for os.<\/p>\n<p><b>Resultat:<\/b><\/p>\n<p>F\u00f8rste \u00e5bning af dashboards: 4-5 minutter<br \/>\nEnhver klik: 3-4 minutter<br \/>\nIngen forventede en s\u00e5 stor forbedring i dashboards' arbejdstid.<\/p>\n<h2>Del 2. Dyk ned i Tableau<\/h2>\n<p><\/p>\n<h3>Trin 1. Analyse af Tableau-performance og hurtig optimering<\/h3>\n<p>\nVi begyndte at analysere, hvad Tableau bruger mest tid p\u00e5. Og der findes ganske gode v\u00e6rkt\u00f8jer til dette, hvilket naturligvis er et plus for Tableau. Den prim\u00e6re problemstilling, vi identificerede, var meget komplekse SQL-foresp\u00f8rgsler, som Tableau genererede. De var prim\u00e6rt relateret til:<\/p>\n<p> \u2014 transponering af data. Da Tableau ikke har v\u00e6rkt\u00f8jer til at transponere dataset, m\u00e5tte vi for at opbygge den venstre del af dashboardet med en detaljeret fremstilling af alle KPI'er, lave en tabel ved hj\u00e6lp af case. St\u00f8rrelsen p\u00e5 SQL-foresp\u00f8rgslerne i databasen n\u00e5ede 120.000 tegn.<\/p>\n<p><img decoding=\"async\" alt=\"Tableau i detailhandel, virkelig?\" src=\"\/wp-content\/uploads\/2020\/01\/8fc4d99017ddd604bbabb5ea0a19b38d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n \u2014 valg af tidsperiode. En s\u00e5dan foresp\u00f8rgsel p\u00e5 databasens niveau tog l\u00e6ngere tid at kompilere end at udf\u00f8re:<\/p>\n<p><img decoding=\"async\" alt=\"Tableau i detailhandel, virkelig?\" src=\"\/wp-content\/uploads\/2020\/01\/a9b9cc6ddd6b03c643935d070532728e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet vil sige, behandling af foresp\u00f8rgslen 12 sekunder + 5 sekunder udf\u00f8relse.<\/p>\n<p>Vi besluttede at forenkle logikken for beregningerne p\u00e5 Tableau-siden og flytte endnu en del af beregningerne til dashboardet og databaseniveauet. Det gav gode resultater.<\/p>\n<p>F\u00f8rst lavede vi transponeringen on-the-fly via en full outer join i den endelige beregning af VIEW, i henhold til denne tilgang beskrevet p\u00e5 wiki <noindex><a rel=\"nofollow\" href=\"http:\/\/en.wikipedia.org\/wiki\/Transpose\">Transpose \u2014 Wikipedia, the free encyclopedia<\/a><\/noindex> og <noindex><a rel=\"nofollow\" href=\"http:\/\/en.wikipedia.org\/wiki\/Elementary_matrix#Row-addition_transformations\">Elementary matrix \u2014 Wikipedia, the free encyclopedia<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"Tableau i detailhandel, virkelig?\" src=\"\/wp-content\/uploads\/2020\/01\/5259995831dc8ae379a34bfe84e52daa.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet vil sige, vi lavede en ops\u00e6tningsmatrix \u2013 en transponeringsmatrix (21x21) og fik alle m\u00e5linger opdelt i r\u00e6kker.<\/p>\n<p>Tidligere:<br \/>\n<img decoding=\"async\" alt=\"Tableau i detailhandel, virkelig?\" src=\"\/wp-content\/uploads\/2020\/01\/9382ee65a1482cc137a52b5f80c39eeb.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEr blevet:<br \/>\n<img decoding=\"async\" alt=\"Tableau i detailhandel, virkelig?\" src=\"\/wp-content\/uploads\/2020\/01\/1d6653ec427ce0621b441943f589d860.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTransponeringen af databasen tager n\u00e6sten ikke tid. Foresp\u00f8rgslen p\u00e5 alle parametre har taget cirka 10 sekunder som f\u00f8r. Men fleksibiliteten i opbygningen af dashboardet for det specifikke m\u00e5l er g\u00e5et tabt, dvs. for den h\u00f8jre del af dashboardet, hvor dynamik og detaljeret opdeling pr\u00e6senteres, arbejdede tidligere vinduet p\u00e5 1-3 sekunder, da foresp\u00f8rgslen gik efter \u00e9t m\u00e5l, men nu tr\u00e6kker databasen altid alle m\u00e5l og filtrerer resultatet, inden det returneres til Tableau.<\/p>\n<p>Som f\u00f8lge heraf er hastigheden p\u00e5 dashboardet n\u00e6sten faldet med 3 gange.<\/p>\n<p><b>Resultat:<\/b><\/p>\n<ol>\n<li>5 sek \u2013 parsing af dashboardet, visualiseringer<\/li>\n<li> 15-20 sek \u2013 forberedelse til kompilering af foresp\u00f8rgsler med udf\u00f8relse af forberegninger i Tableau<\/li>\n<li> 35-45 sek \u2013 kompilering af SQL-foresp\u00f8rgsler og samtidig sekventiel udf\u00f8relse i Hana<\/li>\n<li> 5 sek \u2013 behandling af resultater, sortering, genberegning af visualiseringer i Tableau<\/li>\n<li>Selvf\u00f8lgelig var s\u00e5danne resultater ikke acceptable for virksomheden, og vi fortsatte optimeringen.<\/li>\n<\/ol>\n<p><\/p>\n<h3>Trin 2. Minimalt logik i Tableau, fuld materialisering<\/h3>\n<p>\nVi forstod, at det var umuligt at bygge et dashboard med en responstid p\u00e5 et par sekunder p\u00e5 et vindue, der tager 10 sekunder, og overvejede muligheder for materialisering af data p\u00e5 databasesiden specifikt til det kr\u00e6vede dashboard. Men vi st\u00f8dte p\u00e5 det store problem beskrevet ovenfor \u2013 additive indikatorer. Vi kunne ikke f\u00e5 Tableau til fleksibelt at skifte mellem forskellige vinduer og niveauer, som var forudberegnet til forskellige produkthierarkier (i eksemplet giver tre foresp\u00f8rgsler uden UTE, med UTE1 og UTE2 forskellige resultater). Derfor besluttede vi at forenkle dashboardet, opgive det produktm\u00e6ssige hierarki i dashboardet og se, hvor hurtigt det kunne v\u00e6re i en forenklet version.<\/p>\n<p>S\u00e5 p\u00e5 dette sidste trin samlede vi et separat lager, hvor vi i transponeret form lagde alle KPI'er. P\u00e5 databasesiden tager enhver foresp\u00f8rgsel til et s\u00e5dant lager 0,1 \u2013 0,3 sekunder. I dashboardet fik vi f\u00f8lgende resultater:<\/p>\n<p>F\u00f8rste \u00e5bning: 8-10 sekunder<br \/>\nEnhver klik: 6-7 sekunder<\/p>\n<p>Tiden, som Tableau bruger, best\u00e5r af:<\/p>\n<ol>\n<li>0,3 sek. \u2013 parsing af dashboardet og kompilering af SQL-foresp\u00f8rgsler\n<\/li>\n<li>1,5-3 sek. \u2013 udf\u00f8relse af SQL-foresp\u00f8rgsler i Hana for de prim\u00e6re visualiseringer (startes samtidigt med punkt 1)\n<\/li>\n<li>1,5-2 sek. \u2014 rendering, genberegning af visualiseringer\n<\/li>\n<li>1,3 sek. \u2014 udf\u00f8relse af ekstra SQL-foresp\u00f8rgsler for at opn\u00e5 relevante filterv\u00e6rdier (Brand, Division, By, Butik), parsing af resultater\n<\/li>\n<\/ol>\n<p><\/p>\n<h3>For at opsummere kort<\/h3>\n<p>\nVi var glade for Tableau-v\u00e6rkt\u00f8jet med hensyn til visualisering. I designfasen overvejede vi forskellige visualiseringselementer, og vi fandt dem alle i bibliotekerne, herunder komplekse flerlagede segmenteringer og multitrekants waterfall.<\/p>\n<p>Ved implementering af dashboards med n\u00f8gle salgsindikatorer st\u00f8dte vi p\u00e5 pr\u00e6stationsvanskeligheder, som vi endnu ikke har kunnet overvinde. Vi brugte mere end to m\u00e5neder og fik et funktionelt ufuldst\u00e6ndigt dashboard, hvis reageringshastighed var p\u00e5 gr\u00e6nsen af acceptabelt. Og vi har konkluderet:<\/p>\n<ol>\n<li>Tableau kan ikke h\u00e5ndtere store m\u00e6ngder data. Hvis din datamodel har over 10 GB data (ca. 200 mio. x 50 r\u00e6kker), bliver dashboardet alvorligt langsomt \u2013 fra 10 sekunder til flere minutter pr. klik. Vi har eksperimenteret b\u00e5de med live-connection og med ekstrakter. Hastigheden er sammenlignelig.\n<\/li>\n<li>Begr\u00e6nsninger ved brug af flere datalagre (datas\u00e6t). Der er ikke mulighed for standardm\u00e6ssigt at angive relationen mellem datas\u00e6t. Hvis der anvendes workaround-l\u00f8sninger til at forbinde datas\u00e6t, vil det have stor indflydelse p\u00e5 pr\u00e6stationen. I vores tilf\u00e6lde overvejede vi muligheden for at materialisere data i hver n\u00f8dvendig dimension af visningerne og p\u00e5 disse materialiserede datas\u00e6t lave skift med bevarelse af tidligere valgte filtre \u2014 dette viste sig at v\u00e6re umuligt i Tableau.\n<\/li>\n<li>I Tableau er det umuligt at lave dynamiske parametre. Du kan ikke udfylde en parameter, der bruges til filtrering af datas\u00e6ttet i ekstrakten eller ved live-forbindelse, med resultatet af et andet udvalg fra datas\u00e6ttet eller resultatet af en anden SQL-foresp\u00f8rgsel, kun brugerens native input eller en konstant.\n<\/li>\n<li>Begr\u00e6nsninger relateret til opbygning af dashboards med OLAP|Pivot-tabel elementer. <br \/>\nI MSTR, SAP SAC, SAP Analysis, hvis du tilf\u00f8jer et datas\u00e6t til rapporten, s\u00e5 er alle objekter p\u00e5 det forbundet som standard. Dette findes ikke i Tableau, her skal forbindelsen indstilles manuelt. Det er sikkert mere fleksibelt, men for alle vores dashboards er dette et obligatorisk krav til elementerne \u2013 derfor er det ekstra arbejdsomkostninger. Desuden, hvis du laver relaterede filtre, s\u00e5 du for eksempel kun ser byer i en region ved filtrering af den region, s\u00e5 f\u00e5r du straks sekventielle foresp\u00f8rgsler til databasen eller ekstraktet, hvilket v\u00e6sentligt forsinker dashboardet.<\/li>\n<li>Begr\u00e6nsninger i funktioner. Hverken p\u00e5 ekstraktet eller IS\u00c6R p\u00e5 datas\u00e6ttet fra Live-connecta kan der laves masse\u00e6ndringer. Det kan g\u00f8res gennem Tableau Prep, men det kr\u00e6ver ekstra arbejdsomkostninger og endnu et v\u00e6rkt\u00f8j, som skal l\u00e6res og vedligeholdes. Du kan for eksempel ikke transponere data eller lave join med dem selv. Det lukkes via transformationer af enkelte kolonner eller felter, der skal v\u00e6lges gennem case eller if, hvilket skaber meget komplekse SQL-foresp\u00f8rgsler, hvor databasen bruger det meste af tiden p\u00e5 at kompilere foresp\u00f8rgsesteksten. Disse begr\u00e6nsninger i v\u00e6rkt\u00f8jet m\u00e5tte l\u00f8ses p\u00e5 niveauet for vinduet, hvilket f\u00f8rer til en kompleks opbevaringsstruktur, ekstra belastninger og transformationer.\n<\/li>\n<\/ol>\n<p>\nVi har ikke opgivet Tableau. Men som et v\u00e6rkt\u00f8j, der er i stand til at bygge industrielle dashboards og som et middel til at erstatte og digitalisere hele virksomhedens rapporteringssystem, betragter vi ikke Tableau.<\/p>\n<p>Vi udvikler i \u00f8jeblikket et lignende dashboard i et andet v\u00e6rkt\u00f8j og pr\u00f8ver parallelt at revurdere arkitekturen af dashboardet i Tableau for at forenkle det endnu mere. Hvis samfundet er interesseret, vil vi dele resultaterne.<\/p>\n<p>Vi ser ogs\u00e5 frem til jeres ideer eller r\u00e5d om, hvordan man i Tableau kan bygge hurtige dashboards over s\u00e5danne store datam\u00e6ngder, da vi har en hjemmeside, hvor dataene er langt st\u00f8rre end i detailhandlen.<br \/>\n<br \/>Kilde: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mvideo\/blog\/483656\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0440\u0435\u043c\u044f \u043e\u0442\u0447\u0451\u0442\u043d\u043e\u0441\u0442\u0438 \u0432 Excel \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0445\u043e\u0434\u0438\u0442 \u2014 \u0442\u0440\u0435\u043d\u0434 \u043d\u0430 \u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432\u0438\u0434\u0435\u043d \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u0444\u0435\u0440\u0430\u0445. \u041c\u044b \u0434\u0430\u0432\u043d\u043e \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u043b\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u0446\u0438\u0444\u0440\u043e\u0432\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043e\u0442\u0447\u0451\u0442\u043d\u043e\u0441\u0442\u0438 \u0438 \u0432\u044b\u0431\u0440\u0430\u043b\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 self-service \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 Tableau. \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0411\u0435\u0437\u0443\u0433\u043b\u044b\u0439, \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043e\u0442\u0434\u0435\u043b\u0430 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0438 \u043e\u0442\u0447\u0451\u0442\u043d\u043e\u0441\u0442\u0438 \u0413\u0440\u0443\u043f\u043f\u044b \u00ab\u041c.\u0412\u0438\u0434\u0435\u043e-\u042d\u043b\u044c\u0434\u043e\u0440\u0430\u0434\u043e\u00bb, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b \u043e\u0431 \u043e\u043f\u044b\u0442\u0435 \u0438 \u0438\u0442\u043e\u0433\u0430\u0445 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0431\u043e\u0435\u0432\u043e\u0433\u043e \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430. \u0421\u043a\u0430\u0436\u0443 \u0441\u0440\u0430\u0437\u0443, \u043d\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-55144","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0440\u0435\u043c\u044f \u043e\u0442\u0447\u0451\u0442\u043d\u043e\u0441\u0442\u0438 \u0432 Excel \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0445\u043e\u0434\u0438\u0442 \u2014 \u0442\u0440\u0435\u043d\u0434 \u043d\u0430 \u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432\u0438\u0434\u0435\u043d \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u0444\u0435\u0440\u0430\u0445.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/da\/blog\/news\/tableau-v-roznitse-realno\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Tableau \u0432 \u0440\u043e\u0437\u043d\u0438\u0446\u0435, \u0440\u0435\u0430\u043b\u044c\u043d\u043e? | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0440\u0435\u043c\u044f \u043e\u0442\u0447\u0451\u0442\u043d\u043e\u0441\u0442\u0438 \u0432 Excel \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0445\u043e\u0434\u0438\u0442 \u2014 \u0442\u0440\u0435\u043d\u0434 \u043d\u0430 \u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432\u0438\u0434\u0435\u043d \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u0444\u0435\u0440\u0430\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/da\/blog\/news\/tableau-v-roznitse-realno\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-01-12T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:03:13+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Tableau i detailhandlen, er det virkelig? | ProHoster","description":"Tiden for rapportering i Excel forsvinder hastigt \u2013 trenden mod nemme v\u00e6rkt\u00f8jer til pr\u00e6sentation og analyse af information ses i alle sektorer.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/news\/tableau-v-roznitse-realno","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Tableau \u0432 \u0440\u043e\u0437\u043d\u0438\u0446\u0435, \u0440\u0435\u0430\u043b\u044c\u043d\u043e? | ProHoster","og:description":"\u0412\u0440\u0435\u043c\u044f \u043e\u0442\u0447\u0451\u0442\u043d\u043e\u0441\u0442\u0438 \u0432 Excel \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0445\u043e\u0434\u0438\u0442 \u2014 \u0442\u0440\u0435\u043d\u0434 \u043d\u0430 \u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432\u0438\u0434\u0435\u043d \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u0444\u0435\u0440\u0430\u0445.","og:url":"https:\/\/prohoster.info\/da\/blog\/news\/tableau-v-roznitse-realno","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-01-12T21:00:00+00:00","article:modified_time":"2020-02-18T11:03:13+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"55144","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:50:02","updated":"2022-10-05 23:10:07","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/55144","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=55144"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/55144\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=55144"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=55144"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=55144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}