Tableau inom detaljhandeln, Àr det verkligt?

Rapporteringstiden i Excel försvinner snabbt — trenden med anvĂ€ndarvĂ€nliga verktyg för presentation och analys av information syns inom alla omrĂ„den. Vi har lĂ€nge diskuterat digitalisering av rapporteringsprocessen och valt visualiserings- och sjĂ€lvbetjĂ€ningsanalysystemet Tableau. Alexander Bezugly, chef för avdelningen för analytiska lösningar och rapportering hos gruppen "M.Video-El Dorado", berĂ€ttade om erfarenheterna och resultaten frĂ„n att skapa en realtidsdashboard.

Jag kan direkt sĂ€ga att inte allt som planerades lyckades, men erfarenheten var intressant, och jag hoppas att den kommer att vara till nytta för er ocksĂ„. Och om nĂ„gon har idĂ©er om hur det kunde göras bĂ€ttre – skulle jag vara mycket tacksam för rĂ„d och idĂ©er.

Tableau inom detaljhandeln, Àr det verkligt?

Under gÄr vi igenom vad vi stötte pÄ och vad vi lÀrde oss.

Hur vi började

Hos "M.Video-El Dorado" finns en vÀl genomarbetad datamodell: strukturerad information med nödvÀndig lagringsdjup och ett stort antal fasta rapporter (se mer detaljerat denna artikel). Av dessa gör analytiker antingen pivottabeller eller formaterade e-postutskick i Excel, eller vackra presentationer i PowerPoint för slutanvÀndarna.

För ungefĂ€r tvĂ„ Ă„r sedan började vi istĂ€llet för fasta rapporter att skapa analytiska rapporter i SAP Analysis (ett tillĂ€gg till Excel, i sjĂ€lva verket — en pivottabell ovanför en OLAP-motor). Men det hĂ€r verktyget kunde inte tillfredsstĂ€lla behoven hos alla anvĂ€ndare, de flesta fortsatte att anvĂ€nda information som var ytterligare bearbetad av analytiker.

VÄra slutanvÀndare delas in i tre kategorier:

Högsta ledningen. BegÀr information i ett vÀl presenterat och lÀttförstÄeligt format.

Mellanledningen, avancerade anvÀndare. Intresserade av datanalys och kapabla att sjÀlva skapa rapporter med tillgÄng till verktyg. Det Àr de som blev de nyckelanvÀndare av analytiska rapporter i SAP Analysis.

Massa anvÀndare. Inte intresserade av att analysera data sjÀlva, de anvÀnder rapporter med begrÀnsad frihet, i form av e-postutskick och pivottabeller i Excel.

VÄr idé var att tillfredsstÀlla behoven hos alla anvÀndare och ge dem ett enhetligt och bekvÀmt verktyg. Vi började med ledningen, som behövde praktiska paneler för att analysera grundlÀggande affÀrsresultat. Vi startade med Tableau och valde först tvÄ omrÄden: försÀljningsindikatorer för detaljhandel och online med begrÀnsad djup och bredd pÄ analysen, som skulle tÀcka ungefÀr 80 % av de uppgifter som ledningen efterfrÄgade.

Eftersom anvĂ€ndarna av instrumentpanelen var ledningen, kom ytterligare en KPI för produkten – svarstiden. Ingen kommer att vĂ€nta 20-30 sekunder pĂ„ att data ska uppdateras. Navigeringen skulle ta 4-5 sekunder, helst omedelbart.Och detta lyckades vi tyvĂ€rr inte uppnĂ„.

SÄ hÀr sÄg layouten för vÄr huvudinstrumentpanel ut:

Tableau inom detaljhandeln, Àr det verkligt?

Huvudkonceptet var att samla de viktigaste KPI-drivarna, som totalt blev 19, till vÀnster och visa deras dynamik och uppdelning efter huvudattribut till höger. Uppgiften verkar inte svÄr, visualiseringen logisk och förstÄelig, tills man dyker ner i detaljerna.

Detalj 1. Datavolym

Huvudtabellen över försĂ€ljning under Ă„ret innehĂ„ller cirka 300 miljoner rader. Eftersom det Ă€r nödvĂ€ndigt att visa bĂ„de dynamiken frĂ„n föregĂ„ende och det föregĂ„ende Ă„ret, Ă€r datavolymen bara för faktiska försĂ€ljningar cirka 1 miljard rader. Dessutom lagras information om planerade data och blocket för internetförsĂ€ljning separat. DĂ€rför, trots att vi anvĂ€nde den kolumnbaserade in-memory databasen SAP HANA, tog en frĂ„ga om att hĂ€mta alla indikatorer under en vecka frĂ„n aktuella datalager i realtid cirka 15-20 sekunder. Lösningen pĂ„ denna uppgift föreslĂ„r sig sjĂ€lv – ytterligare materialisering av data. Men det finns Ă€ven fallgropar i detta, som beskrivs nedan.

Detalj 2. Icke-additiva indikatorer

MÄnga av vÄra KPI:er Àr kopplade till antalet kvitton. Denna indikator Àr en COUNT DISTINCT av antalet rader (huvudrader av kvitton) och visar olika belopp beroende pÄ valda attribut. Som exempel, hur denna indikator och dess derivat bör berÀknas:

Tableau inom detaljhandeln, Àr det verkligt?

För att sÀkerstÀlla noggranna berÀkningar kan man:

  • Genomföra berĂ€kningen av dessa indikatorer i realtid i datalager;
  • Utföra berĂ€kningen pĂ„ hela datavolymen i Tableau, det vill sĂ€ga att ge alla data med valda filter i granualiteten av kvitton.
  • Skapa en materialiserad vy dĂ€r alla mĂ€tvĂ€rden berĂ€knas för alla urvalsvarianter, vilket ger olika icke-additiva resultat.

Det Àr tydligt att i exemplet representerar UTE1 och UTE2 materialegenskaper som utgör en produktstruktur. Detta Àr inget statiskt, utan en del av företagets styrning eftersom olika chefer ansvarar för olika produktgrupper. Vi har genomfört mÄnga globala översyner av denna hierarki, dÀr alla nivÄer har Àndrats, dÀr relationer har setts över, liksom kontinuerliga punktinsatser nÀr en grupp flyttas frÄn en nod till en annan. I vanlig rapportering berÀknas allt detta i realtid utifrÄn materialattribut, men i fallet med materialisering av dessa data mÄste en mekanism utarbetas för att spÄra sÄdana förÀndringar och automatiskt ladda om historiska data. Detta Àr en ganska komplicerad uppgift.

Del 3. JÀmförelse av data

Detta punkt liknar den föregÄende. KÀrnan Àr att företaget vid analys föredrar att skapa flera nivÄer av jÀmförelse med föregÄende period:

JÀmförelse med tidigare period (dag för dag, vecka för vecka, mÄnad för mÄnad)

I denna jÀmförelse antas att beroende pÄ den period som anvÀndaren vÀljer (till exempel vecka 33 av Äret) mÄste vi visa dynamiken i jÀmförelse med vecka 32, och om vi valde data för en mÄnad, till exempel maj, skulle denna jÀmförelse visa dynamiken i förhÄllande till april.

JÀmförelse med föregÄende Är

Det huvudsakliga temat hÀr Àr att nÀr man jÀmför efter dagar och veckor ska man inte ta samma dag förra Äret, det vill sÀga man kan inte bara ta nuvarande Är minus ett. Man mÄste istÀllet titta pÄ den jÀmförda veckodagen. NÀr man dÀremot jÀmför mÄnader, mÄste man ta exakt samma datum frÄn förra Äret. Det finns ocksÄ sÀrskilda aspekter kring skottÄr. I de ursprungliga lagren Àr all information distribuerad efter dagar, det finns inga separata fÀlt för veckor, mÄnader eller Är. DÀrför, för att fÄ en fullstÀndig analytisk översikt i panelen, mÄste man rÀkna inte bara en period, till exempel en vecka, utan 4 veckor, och sedan jÀmföra dessa data för att reflektera dynamik och avvikelser. DÀrmed kan denna logik för att skapa jÀmförelse i dynamik ocksÄ realiseras antingen i Tableau eller pÄ vitrinsidan. Ja, och vi var medvetna om dessa detaljer och diskuterade dem redan i designfasen, men att förutspÄ deras pÄverkan pÄ den slutliga instrumentpanelen var svÄrt.

Vid implementeringen av instrumentpanelen tog vi en lÄng Agile-vÀg. VÄrt mÄl var att sÄ snabbt som möjligt tillhandahÄlla ett fungerande verktyg för testning med nödvÀndiga data. DÀrför arbetade vi i sprinter och fokuserade pÄ att minimera arbetet pÄ den nuvarande lagersidan.

Del 1. Tro pÄ Tableau

För att förenkla IT-stödet och möjliggöra snabba förÀndringar beslutade vi att göra logiken för berÀkning av icke-additiva indikatorer och jÀmförelse av tidigare perioder i Tableau.

Steg 1. Allt i Live, inga utvecklingar av vitrin.

I detta steg kopplade vi Tableau till de aktuella vitrinerna och beslutade att se hur antalet kvitton skulle berÀknas över ett Är.

Resultatet:

Svaret var nedslĂ„ende – 20 minuter. Datatransfer över nĂ€tverket, hög belastning pĂ„ Tableau. Vi insĂ„g att logiken för icke-additiva indikatorer behövde implementeras i HANA. Detta skrĂ€mde oss inte sĂ„ mycket, vi hade redan liknande erfarenheter med BO och Analysis och kunde bygga snabba vitriner i HANA som ger korrekt berĂ€knade icke-additiva indikatorer. Nu Ă„terstod bara att anpassa dem till Tableau.

Steg 2. Vi finjusterar vitrinerna, ingen materialisering, allt pÄ sprÄng.

Vi har skapat en ny, separat vitrin som pÄ sprÄng levererade de nödvÀndiga data för TABLEAU. Sammantaget fick vi ett bra resultat; vi minskade tiden för att generera alla indikatorer frÄn en vecka till 9-10 sekunder. Vi förvÀntade oss Àrligt att svarstiden för instrumentpanelen i Tableau skulle vara 20-30 sekunder vid första öppningen och dÀrefter, tack vare cachen, mellan 10 och 12, vilket skulle vara acceptabelt för oss.

Resultatet:

Första öppna instrumentpanelen: 4-5 minuter
Varje klick: 3-4 minuter
Ingen förvÀntade sig nÄgot sÄdant ytterligare tillskott till vitrinens arbete.

Del 2. Fördjupning i Tableau

Steg 1. Analys av Tableau-prestanda och snabb justering

Vi började analysera vad Tableau spenderade mest tid pÄ. Det finns faktiskt mycket bra verktyg för detta, vilket Àr en fördel med Tableau. Det största problemet vi identifierade var mycket komplexa SQL-frÄgor som Tableau skapade. Dessa var frÀmst kopplade till:

— transponering av data. Eftersom Tableau inte har verktyg för att transponera dataset, var vi tvungna att skapa en tabell genom case för att bygga den vĂ€nstra delen av instrumentpanelen med detaljerad information om alla KPI. Storleken pĂ„ SQL-frĂ„gorna i databasen nĂ„dde 120 000 tecken.

Tableau inom detaljhandeln, Àr det verkligt?

— val av tidsperiod. En sĂ„dan frĂ„ga pĂ„ databasenivĂ„ tog lĂ€ngre tid att kompilera Ă€n att genomföra:

Tableau inom detaljhandeln, Àr det verkligt?

Det vill sÀga, bearbetning av frÄgan 12 sekunder + 5 sekunder utförande.

Vi beslutade att förenkla berÀkningslogiken pÄ Tableau-sidan och flytta en annan del av berÀkningarna till vitrin och databasenivÄ. Detta gav bra resultat.

Först gjorde vi transponeringen i realtid, genomförde den via full outer join i det sista steget av berĂ€kningen av VIEW, enligt ett sĂ„dant tillvĂ€gagĂ„ngssĂ€tt som beskrivs pĂ„ wiki. Transpose — Wikipedia, den fria encyklopedin och Elementary matrix — Wikipedia, den fria encyklopedin.

Tableau inom detaljhandeln, Àr det verkligt?

Vi skapade alltsĂ„ en instĂ€llningstabell – en transponeringsmatris (21x21) och fick alla indikatorer i radbrytning.

Förut:
Tableau inom detaljhandeln, Àr det verkligt?

Nu:
Tableau inom detaljhandeln, Àr det verkligt?

SjÀlva transponeringen av databasen tar nÀstan ingen tid. FrÄgan för alla indikatorer under veckan svarade fortfarande pÄ ungefÀr 10 sekunder. Men flexibiliteten i att bygga en dashboard för en specifik indikator förlorades, dvs. för den högra delen av dashboards dÀr dynamik och detaljerad uppdelning av en specifik indikator presenterades, svarade skylten tidigare pÄ 1-3 sekunder, eftersom frÄgan gick pÄ en indikator, men nu valde databasen alltid alla indikatorer och filtrerade resultatet innan det returnerades till Tableau.

Som ett resultat minskade hastigheten pÄ dashboarden nÀstan tre gÄnger.

Resultatet:

  1. 5 sek - parsing av dashboard, visualiseringar
  2. 15-20 sek - förberedelse för kompilering av frÄgor med förreduceringar i Tableau
  3. 35-45 sek - kompilering av SQL-frÄgor och parallell-sekventiell utförande i Hana
  4. 5 sek - bearbetning av resultat, sortering, omberÀkning av visualiseringar i Tableau
  5. SjÀlvklart var sÄdana resultat oacceptabla för verksamheten, och vi fortsatte med optimeringen.

Steg 2. Minst logik i Tableau, full materialisering

Vi förstod att det var omöjligt att bygga en dashboard med en svarstid pĂ„ nĂ„gra sekunder pĂ„ en skylta som arbetar pĂ„ 10 sekunder och undersökte möjligheter för materialisering av data pĂ„ databasens sida specifikt för den nödvĂ€ndiga dashboarden. Men vi stötte pĂ„ ett globalt problem som beskrivits ovan – icke-additativa indikatorer. Vi kunde inte fĂ„ Tableau att flexibelt vĂ€xla mellan olika skylta och nivĂ„er, förberĂ€knade för olika produkt hierarkier (i exemplet ger tre frĂ„gor utan UTE, med UTE1 och UTE2 olika resultat). DĂ€rför beslutade vi att förenkla dashboarden, avstĂ„ frĂ„n produkt hierarkin i dashboarden och se hur snabbt den kunde bli i en förenklad version.

SÄ, i detta sista steg samlade vi ett separat lager dÀr vi lagrade alla KPI i transponerad form. PÄ databassidan bearbetas varje frÄga till ett sÄdant lager pÄ 0,1 - 0,3 sekunder. I dashboarden fick vi följande resultat:

Första öppningen: 8-10 sekunder
Varje klick: 6-7 sekunder

Tiden som Tableau spenderar bestÄr av:

  1. 0,3 sek - parsing av dashboard och kompilering av SQL-frÄgor
  2. 1,5-3 sek - utförande av SQL-frÄgor i Hana för de viktigaste visualiseringarna (startar parallellt med punkt 1)
  3. 1,5-2 sek. — rendering, omberĂ€kning av visualiseringar
  4. 1,3 sek. — utförande av ytterligare SQL-frĂ„gor för att fĂ„ relevanta vĂ€rden för filter (MĂ€rke, Division, Stad, AffĂ€r), parse av resultat

Om vi sammanfattar kort

Vi gillade verktyget Tableau sett ur ett visualiseringsperspektiv. Under designfasen övervÀgde vi olika visualiseringselement och vi fann alla i biblioteken, inklusive komplexa flerskiktade segmenteringar och flerdelade waterfall.

NÀr vi implementerade dashboards med viktiga försÀljningsindikatorer stötte vi pÄ prestandasvÄrigheter som vi Ànnu inte har kunnat övervinna. Vi spenderade mer Àn tvÄ mÄnader och fick en funktionellt ofullstÀndig dashboard vars svarstid ligger pÄ grÀnsen av det acceptabla. Vi drog slutsatser:

  1. Tableau klarar inte av stora datamĂ€ngder. Om din ursprungliga datamodell har mer Ă€n 10 GB data (ungefĂ€r 200 miljoner x 50 rader), sĂ„ saktar dashboarden ner avsevĂ€rt – frĂ„n 10 sekunder till flera minuter per klick. Vi experimenterade bĂ„de med live-anslutning och med extrahering. Arbetsfarten var jĂ€mförbar.
  2. BegrĂ€nsningar vid anvĂ€ndning av flera datalager (datasets). Det gĂ„r inte att anvĂ€nda standardmetoder för att ange relationen mellan datasets. Om man anvĂ€nder omvĂ€gar för att koppla datasets kommer det att pĂ„verka prestandan kraftigt. I vĂ„rt fall övervĂ€gde vi att materialisera data i varje nödvĂ€ndig dimension av visualiseringar och göra byten pĂ„ dessa materialiserade datasets med bibehĂ„llna tidigare valda filter – detta visade sig vara omöjligt att göra i Tableau.
  3. I Tableau Àr det omöjligt att skapa dynamiska parametrar. Du kan inte fylla en parameter, som anvÀnds för att filtrera ett dataset i extraheringen eller vid live-anslutningen, med resultatet frÄn ett annat urval frÄn datasetet eller resultatet av en annan SQL-frÄga, endast anvÀndarens inmatning eller en konstant.
  4. BegrÀnsningar relaterade till skapandet av dashboards med OLAP|Pivot-tabeller.
    I MSTR, SAP SAC, SAP Analysis, nĂ€r du lĂ€gger till ett dataset i rapporten Ă€r alla objekt kopplade till varandra som standard. Det finns inte i Tableau; kopplingen mĂ„ste stĂ€llas in manuellt. Det Ă€r kanske mer flexibelt, men för alla vĂ„ra instrumentpaneler Ă€r detta ett obligatoriskt krav pĂ„ elementen – dĂ€rför innebĂ€r det extra arbetsinsatser. Dessutom, om du gör relaterade filter, sĂ„ att till exempel nĂ€r du filtrerar regionen Ă€r listan över stĂ€der begrĂ€nsad till endast stĂ€der i den regionen, hamnar du genast i sekventiella databasfrĂ„gor eller extrakt, vilket mĂ€rkbar saktar ner instrumentpanelen.
  5. BegrĂ€nsningar i funktionerna. BĂ„de över extraktet och SÅ MYCKET mer över datasetet frĂ„n Live-connect fĂ„r man inte göra massiva omvandlingar. Det kan göras via Tableau Prep, men det innebĂ€r ytterligare arbetsinsatser och ytterligare ett verktyg som mĂ„ste lĂ€ras in och underhĂ„llas. Till exempel kan du inte transponera data eller göra en join av dem sjĂ€lva. Det stĂ€ngs av genom omvandlingar av individuella kolumner eller fĂ€lt som mĂ„ste vĂ€ljas via case eller if, vilket ger upphov till mycket komplexa SQL-frĂ„gor dĂ€r databasen huvudsakligen spenderar tid pĂ„ att kompilera texten i frĂ„gan. Dessa brister i verktyget har vi varit tvungna att lösa pĂ„ nivĂ„ av en vy, vilket leder till en komplicering av lagret, extra belastningar och omvandlingar.

Vi har inte gett upp pÄ Tableau. Men som ett verktyg som kan bygga industriella instrumentpaneler och ett medel som kan ersÀtta och digitalisera hela systemet för företagsrapportering, betraktar vi inte Tableau.

Vi utvecklar för nÀrvarande en liknande instrumentpanel i ett annat verktyg och samtidigt försöker vi ompröva arkitekturen i instrumentpanelen i Tableau för att förenkla den Ànnu mer. Om kommuniteten Àr intresserad kommer vi att berÀtta om resultaten.

Vi ser ocksÄ fram emot era idéer eller rÄd om hur man i Tableau kan bygga snabba instrumentpaneler över sÄdana stora datamÀngder, dÄ vi har en webbplats dÀr datan Àr mycket större Àn i detaljhandeln.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster