Бөлшек саудадағы кесте, шынымен де?

Excel бағдарламасында есеп беру уақыты тез жоғалып барады - ақпаратты ұсыну және талдау үшін ыңғайлы құралдарға тенденция барлық салаларда көрінеді. Біз есептілікті цифрландыруды ұзақ уақыт бойы іштей талқылап, Tableau визуализациясы мен өзіне-өзі қызмет көрсету талдау жүйесін таңдадық. М.Видео-Эльдорадо тобының аналитикалық шешімдер және есеп беру бөлімінің бастығы Александр Безуглы жауынгерлік бақылау тақтасын құру тәжірибесі мен нәтижелері туралы айтты.

Мен бірден айтамын, жоспарланғанның бәрі орындалмады, бірақ тәжірибе қызықты болды, бұл сізге де пайдалы болады деп үміттенемін. Егер кімде мұны қалай жақсырақ жасауға болатыны туралы қандай да бір идеялар болса, мен сіздің кеңестеріңіз бен идеяларыңызға өте риза болар едім.

Бөлшек саудадағы кесте, шынымен де?

Төменде біз нені кездестірдік және не туралы білдік.

Біз неден бастадық?

M.Video-Eldorado жақсы дамыған деректер моделіне ие: қажетті сақтау тереңдігі бар құрылымдық ақпарат және тіркелген пішінді есептердің үлкен саны (толығырақ ақпаратты қараңыз). Бұл мақалада). Олардың ішінен талдаушылар Excel бағдарламасында жиынтық кестелерді немесе пішімделген ақпараттық бюллетеньдерді немесе соңғы пайдаланушылар үшін әдемі PowerPoint көрсетілімдерін жасайды.

Шамамен екі жыл бұрын біз бекітілген пішінді есептердің орнына SAP Analysis (Excel қондырмасы, OLAP қозғалтқышының үстіндегі жиынтық кесте) аналитикалық есептерді жасай бастадық. Бірақ бұл құрал барлық пайдаланушылардың қажеттіліктерін қанағаттандыра алмады, көпшілігі талдаушылар қосымша өңдеген ақпаратты пайдалануды жалғастырды.

Біздің соңғы тұтынушыларымыз үш санатқа бөлінеді:

Жоғарғы басшылық. Ақпаратты жақсы ұсынылған және түсінікті түрде сұрайды.

Орташа басшылық, озық пайдаланушылар. Деректерді зерттеуге қызығушылық танытады және құралдар бар болса, есептерді дербес құра алады. Олар SAP Analysis жүйесіндегі аналитикалық есептердің негізгі пайдаланушылары болды.

Жаппай пайдаланушылар. Олар деректерді дербес талдауға қызығушылық танытпайды, олар Excel бағдарламасындағы ақпараттық бюллетеньдер және жиынтық кестелер пішіміндегі шектеулі еркіндік дәрежесі бар есептерді пайдаланады.

Біздің ойымыз барлық пайдаланушылардың қажеттіліктерін қанағаттандыру және оларға бір, ыңғайлы құрал беру болды. Біз топ-менеджменттен бастауды шештік. Негізгі бизнес нәтижелерін талдау үшін оларға пайдалану оңай бақылау тақталары қажет болды. Осылайша, біз Tableau-дан бастадық және алдымен екі бағытты таңдадық: бөлшек сауда және онлайн-сату көрсеткіштері шектеулі тереңдігі мен кеңдігі бар, олар топ-менеджмент сұраған деректердің шамамен 80% қамтиды.

Бақылау тақталарын пайдаланушылар топ-менеджмент болғандықтан, өнімнің тағы бір қосымша KPI - жауап беру жылдамдығы пайда болды. Деректердің жаңартылуын ешкім 20-30 секунд күтпейді. Навигация 4-5 секунд ішінде немесе одан да жақсысы бірден жасалуы керек еді. Ал біз, өкінішке орай, бұған қол жеткізе алмадық.

Біздің негізгі бақылау тақтасының орналасуы келесідей болды:

Бөлшек саудадағы кесте, шынымен де?

Негізгі идея - сол жақта барлығы 19 болатын негізгі KPI драйверлерін біріктіру және оң жақта олардың динамикасы мен негізгі атрибуттары бойынша бөлінуін көрсету. Тапсырма қарапайым болып көрінеді, визуализация егжей-тегжейге сүңгігенше логикалық және түсінікті.

Толығырақ 1. Деректер көлемі

Жылдық сатылымға арналған негізгі кестеміз шамамен 300 миллион жолды алады. Өткен жылдың және оның алдындағы жылдың динамикасын көрсету қажет болғандықтан, тек нақты сату бойынша деректер көлемі шамамен 1 миллиард жолды құрайды. Жоспарланған деректер мен онлайн сату блогы туралы ақпарат бөлек сақталады. Сондықтан, біз бағаналы жадтағы DB SAP HANA пайдаланғанымызға қарамастан, ағымдағы сақтаудан бір апта ішінде барлық көрсеткіштерді таңдау арқылы сұрау жылдамдығы шамамен 15-20 секундты құрады. Бұл мәселені шешу өзін ұсынады - деректерді қосымша материалдандыру. Бірақ оның да қателері бар, олар туралы төменде толығырақ.

Толығырақ 2. Аддитивті емес көрсеткіштер

Біздің көптеген KPI көрсеткіштері түбіртектердің санына байланысты. Және бұл көрсеткіш жолдар санының COUNT DISTINCT (тексеру тақырыптары) көрсетеді және таңдалған атрибуттарға байланысты әртүрлі сомаларды көрсетеді. Мысалы, бұл көрсеткішті және оның туындысын қалай есептеу керек:

Бөлшек саудадағы кесте, шынымен де?

Есептерді дұрыс жасау үшін мына әрекеттерді орындауға болады:

  • Мұндай көрсеткіштерді қоймада жылдам есептеңіз;
  • Кестедегі деректердің бүкіл көлемі бойынша есептеулерді орындаңыз, яғни. Кестеде сұрау бойынша барлық деректерді түбіртек позициясының түйіршіктілігінде таңдалған сүзгілерге сәйкес қамтамасыз етіңіз;
  • Әртүрлі қоспасыз нәтижелерді беретін барлық үлгі нұсқаларында барлық көрсеткіштер есептелетін материалдандырылған витрина жасаңыз.

Мысалда UTE1 және UTE2 өнім иерархиясын білдіретін материалдық атрибуттар екені анық. Бұл статикалық нәрсе емес, компания ішіндегі басқару сол арқылы жүзеге асады, өйткені Әртүрлі өнім топтарына әртүрлі менеджерлер жауапты. Бізде осы иерархияның көптеген жаһандық қайта қараулары болды, барлық деңгейлер өзгерген кезде, қарым-қатынастар қайта қаралған кезде және бір топ бір түйіннен екіншісіне ауысқан кезде тұрақты нүкте өзгерген. Кәдімгі есеп беруде мұның бәрі материалдың атрибуттарынан бірден есептеледі, бұл деректер материалданған жағдайда мұндай өзгерістерді қадағалау және тарихи деректерді автоматты түрде қайта жүктеу механизмін әзірлеу қажет. Өте тривиальды емес тапсырма.

Толығырақ 3. Мәліметтерді салыстыру

Бұл нүкте алдыңғыға ұқсас. Қорытындысы, компанияны талдау кезінде алдыңғы кезеңмен салыстырудың бірнеше деңгейін қалыптастыру әдеттегідей:

Өткен кезеңмен салыстыру (күннен күнге, аптадан аптаға, айдан айға)

Бұл салыстыру кезінде пайдаланушы таңдаған кезеңге байланысты (мысалы, жылдың 33-ші аптасы) динамикасын 32-ші аптаға көрсету керек деп болжанады; егер біз бір айға деректерді таңдасақ, мысалы, мамыр , онда бұл салыстыру сәуір айындағы динамикасын көрсетеді.

Өткен жылмен салыстыру

Мұндағы басты нюанс - күн мен апта бойынша салыстыру кезінде сіз өткен жылдың дәл күнін қабылдамайсыз, яғни. ағымдағы жылды бір минус қоюға болмайды. Салыстыратын аптаның күнін қарау керек. Айларды салыстыру кезінде, керісінше, өткен жылдың дәл сол күнтізбелік күнін алу керек. Кібісе жылдармен нюанстар да бар. Бастапқы репозитарийлерде барлық ақпарат күн бойынша таратылады, апталар, айлар немесе жылдар бар жеке өрістер жоқ. Сондықтан, панельде толық аналитикалық қиманы алу үшін бір кезеңді емес, мысалы, аптаны емес, 4 аптаны санау керек, содан кейін осы деректерді салыстыру, динамикасын, ауытқуларды көрсету керек. Тиісінше, динамикадағы салыстыруларды құруға арналған бұл логиканы кестеде немесе дүкеннің бет жағында да іске асыруға болады. Иә, және, әрине, біз бұл бөлшектерді жобалау кезеңінде білдік және ойладық, бірақ олардың соңғы бақылау тақтасының жұмысына әсерін болжау қиын болды.

Бақылау тақтасын енгізу кезінде біз ұзақ Agile жолын ұстандық. Біздің міндетіміз тестілеу үшін қажетті деректермен жұмыс құралын мүмкіндігінше жылдам қамтамасыз ету болды. Сондықтан біз спринттерге шығып, ағымдағы қойма жағындағы жұмысты азайтудан бастадық.

1-бөлім: Кестеге сену

АТ қолдауын жеңілдету және өзгерістерді жылдам енгізу үшін біз кестеде қосымша емес көрсеткіштерді есептеу және өткен кезеңдерді салыстыру логикасын жасауды шештік.

1-кезең. Барлығы тікелей эфирде, терезе өзгерістері жоқ.

Осы кезеңде біз Tableau-ны ағымдағы дүкен сөрелеріне қосып, бір жылдағы түбіртектердің саны қалай есептелетінін көруді шештік.

нәтижесі:

Жауап көңілсіз болды – 20 минут. Мәліметтерді желі арқылы тасымалдау, Tableau-да жоғары жүктеме. Біз HANA-да қосымша емес индикаторлары бар логиканы енгізу қажет екенін түсіндік. Бұл бізді қатты қорқытқан жоқ, бізде BO және Analysis бойынша ұқсас тәжірибе болды және біз HANA-да дұрыс есептелген қоспасыз көрсеткіштерді шығаратын жылдам витриналарды қалай құру керектігін білдік. Енді оларды Кестеге бейімдеу ғана қалды.

2-кезең. Біз дисплейлерді баптаймыз, материализация жоқ, барлығы жылдам.

Біз TABLEAU үшін қажетті деректерді жылдам шығаратын жеке жаңа көрмені жасадық. Жалпы алғанда біз жақсы нәтиже алдық, бір апта ішінде барлық көрсеткіштерді генерациялау уақытын 9-10 секундқа дейін қысқарттық. Біз шынын айтсақ, Tableau-да бақылау тақтасының жауап беру уақыты бірінші ашылғанда 20-30 секунд болады, содан кейін кэшке байланысты 10-нан 12-ге дейін болады, бұл жалпы бізге сәйкес келеді.

нәтижесі:

Бірінші ашық бақылау тақтасы: 4-5 минут
Кез келген басу: 3-4 минут
Дүкен сөркесінің жұмысы мұндай қосымша өседі деп ешкім күтпеген еді.

2-бөлім. Кестеге сүңгу

1-кезең. Кесте өнімділігін талдау және жылдам баптау

Біз Tableau көп уақытын қайда өткізетінін талдауды бастадық. Бұл үшін өте жақсы құралдар бар, бұл, әрине, Tableau плюс. Біз анықтаған негізгі мәселе Tableau құрастырған өте күрделі SQL сұраулары болды. Олар, ең алдымен, байланысты болды:

— мәліметтерді транспозициялау. Tableau-да деректер жиынын көшіруге арналған құралдар жоқ болғандықтан, бақылау тақтасының сол жағын барлық KPI егжей-тегжейлі көрсетуімен құру үшін, біз кейсті пайдаланып кесте құруға тура келді. Дерекқордағы SQL сұрауларының көлемі 120 000 таңбаға жетті.

Бөлшек саудадағы кесте, шынымен де?

- уақыт кезеңін таңдау. Дерекқор деңгейіндегі мұндай сұрауды орындауға қарағанда құрастыруға көбірек уақыт қажет болды:

Бөлшек саудадағы кесте, шынымен де?

Анау. сұрауды өңдеу 12 секунд + 5 секунд орындау.

Біз Кесте жағындағы есептеу логикасын жеңілдетіп, есептеулердің басқа бөлігін дүкен сөресі мен дерекқор деңгейіне жылжытуды шештік. Бұл жақсы нәтижелер әкелді.

Біріншіден, біз транспозицияны жылдам орындадық, біз оны викиде сипатталған осы тәсілге сәйкес VIEW есептеуінің соңғы кезеңінде толық сыртқы біріктіру арқылы жасадық. Transpose - Уикипедия, еркін энциклопедия и Элементарлы матрица – Уикипедия, еркін энциклопедия.

Бөлшек саудадағы кесте, шынымен де?

Яғни, біз орнату кестесін - транспозициялық матрицаны (21x21) жасадық және барлық көрсеткіштерді жолдар бойынша бөлуде алдық.

Бұл:
Бөлшек саудадағы кесте, шынымен де?

Қосылды:
Бөлшек саудадағы кесте, шынымен де?

Деректер базасын транспозициялаудың өзіне дерлік уақыт жұмсалмайды. Аптадағы барлық көрсеткіштер бойынша сұраныс шамамен 10 секундта өңделуін жалғастырды. Бірақ екінші жағынан, белгілі бір көрсеткішке негізделген бақылау тақтасын құру тұрғысынан икемділік жоғалды, яғни. динамикасы мен нақты индикатордың егжей-тегжейлі бөлінуі ұсынылған бақылау тақтасының оң жағында, бұрын дисплей 1-3 секундта жұмыс істеді, өйткені сұрау бір көрсеткішке негізделді, енді дерекқор әрқашан нәтижені Кестеге қайтармас бұрын барлық көрсеткіштерді таңдап, нәтижені сүзеді.

Нәтижесінде бақылау тақтасының жылдамдығы 3 есеге жуық төмендеді.

нәтижесі:

  1. 5 сек – бақылау тақталарын, визуализацияларды талдау
  2. 15-20 секунд – кестеде алдын ала есептеулерді орындай отырып, сұраныстарды құрастыруға дайындық
  3. 35-45 сек – SQL сұраныстарын құрастыру және олардың Хана тілінде параллельді-тізбекті орындалуы
  4. 5 сек – кестеде нәтижелерді өңдеу, сұрыптау, визуализацияларды қайта есептеу
  5. Әрине, мұндай нәтижелер бизнеске сәйкес келмеді және біз оңтайландыруды жалғастырдық.

2-кезең. Кестедегі минималды логика, толық материализация

Біз 10 секунд жұмыс істейтін дүкен сөресіне жауап беру уақыты бірнеше секунд болатын бақылау тақтасын құру мүмкін емес екенін түсіндік және қажетті бақылау тақтасы үшін арнайы дерекқор жағында деректерді материалдандыру нұсқаларын қарастырдық. Бірақ біз жоғарыда сипатталған жаһандық проблемаға тап болдық - аддитивті емес көрсеткіштер. Сүзгілерді немесе егжей-тегжейлерді өзгерткен кезде Tableau әртүрлі өнім иерархиялары үшін алдын ала әзірленген әртүрлі көрме сөрелер мен деңгейлер арасында икемді түрде ауысатынына көз жеткізе алмадық (мысалы, UTE жоқ үш сұрау, UTE1 және UTE2 әртүрлі нәтижелерді жасайды). Сондықтан біз бақылау тақтасын жеңілдетуді, бақылау тақтасындағы өнім иерархиясынан бас тартуды және оның жеңілдетілген нұсқада қаншалықты жылдам болатынын көруді шештік.

Осылайша, осы соңғы кезеңде біз барлық KPIлерді транспозицияланған түрде қосқан бөлек репозиторийді жинадық. Дерекқор жағында мұндай қоймаға кез келген сұрау 0,1 - 0,3 секундта өңделеді. Бақылау тақтасында біз келесі нәтижелерді алдық:

Бірінші ашу: 8-10 секунд
Кез келген басу: 6-7 секунд

Tableau өткізетін уақыт мыналардан тұрады:

  1. 0,3 сек. — бақылау тақтасын талдау және SQL сұраныстарын құрастыру
  2. 1,5-3 сек. — негізгі визуализациялар үшін Hana тілінде SQL сұрауларын орындау (1-қадаммен параллель орындалады)
  3. 1,5-2 сек. — көрнекіліктерді көрсету, қайта есептеу
  4. 1,3 сек. — сәйкес сүзгі мәндерін (бренд, бөлім, қала, дүкен) алу үшін қосымша SQL сұрауларын орындау, нәтижелерді талдау

Қысқаша қорытындыласақ

Бізге Tableau құралы визуализация тұрғысынан ұнады. Прототип жасау кезеңінде біз әртүрлі визуализация элементтерін қарастырдық және олардың барлығын кітапханалардан, соның ішінде күрделі көп деңгейлі сегментацияны және көп драйверді сарқырамаларды таптық.

Негізгі сатылым көрсеткіштері бар бақылау тақталарын енгізу кезінде біз әлі жеңе алмаған өнімділік қиындықтарына тап болдық. Біз екі айдан астам уақыт өткіздік және функционалдық толық емес бақылау тақтасын алдық, оның жауап беру жылдамдығы қолайлы шегінде. Біз өзіміз үшін қорытынды жасадық:

  1. Tableau үлкен көлемдегі деректермен жұмыс істей алмайды. Егер бастапқы деректер үлгісінде сізде 10 ГБ-тан астам деректер (шамамен 200 миллион X 50 жол) болса, онда бақылау тақтасы айтарлықтай баяулайды - әр басу үшін 10 секундтан бірнеше минутқа дейін. Біз live-connect және сығынды арқылы тәжірибе жасадық. Жұмыс жылдамдығы салыстырмалы.
  2. Бірнеше жадты (деректер жиынын) пайдалану кезіндегі шектеулер. Стандартты құралдарды пайдаланып деректер жиындары арасындағы қатынасты көрсетудің ешқандай жолы жоқ. Деректер жиынын қосу үшін уақытша шешімдерді пайдалансаңыз, бұл өнімділікке айтарлықтай әсер етеді. Біздің жағдайда біз әрбір талап етілетін көрініс бөлімінде деректерді материалдандыру опциясын қарастырдық және бұрын таңдалған сүзгілерді сақтай отырып, осы материалдандырылған деректер жиынына ауысулар жасау мүмкіндігін қарастырдық - мұны Tableau-да орындау мүмкін емес болып шықты.
  3. Кестеде динамикалық параметрлерді жасау мүмкін емес. Үзіндідегі деректер жиынын сүзу үшін немесе тікелей қосылу кезінде пайдаланылатын параметрді деректер жиынынан басқа таңдау нәтижесімен немесе басқа SQL сұрауының нәтижесімен толтыра алмайсыз, тек жергілікті пайдаланушы енгізуі немесе тұрақты мән.
  4. OLAP|PivotTable элементтері бар бақылау тақтасын құруға байланысты шектеулер.
    MSTR, SAP SAC, SAP талдауларында есепке деректер жиынын қоссаңыз, ондағы барлық нысандар әдепкі бойынша бір-бірімен байланысты болады. Tableau-да бұл жоқ; қосылымды қолмен конфигурациялау керек. Бұл неғұрлым икемді болуы мүмкін, бірақ біздің барлық бақылау тақталары үшін бұл элементтерге қойылатын міндетті талап, сондықтан бұл қосымша еңбек шығындары. Сонымен қатар, мысалы, аймақты сүзгілеу кезінде қалалар тізімі тек осы аймақтың қалаларымен шектелетіндей сәйкес сүзгілерді жасасаңыз, сіз дереу дерекқорға немесе үзіндіге кезекті сұраулармен аяқталасыз, бұл айтарлықтай баяулайды. бақылау тақтасы.
  5. Функциялардағы шектеулер. Жаппай түрлендірулерді үзіндіде де, ӘСІРЕСЕ, Live-connecta деректер жинағында да орындау мүмкін емес. Мұны Tableau Prep арқылы жасауға болады, бірақ бұл қосымша жұмыс және үйренуге және қолдауға арналған басқа құрал. Мысалы, сіз деректерді ауыстыра алмайсыз немесе оны өзіңізбен біріктіре алмайсыз. Жеке бағандардағы немесе өрістердегі түрлендірулер арқылы не жабылады, олар регистр немесе егер арқылы таңдалуы керек және бұл өте күрделі SQL сұрауларын жасайды, онда дерекқор уақытының көп бөлігін сұрау мәтінін құрастыруға жұмсайды. Құралдың бұл икемсіздігін витрина деңгейінде шешуге тура келді, бұл күрделірек сақтауға, қосымша жүктеулер мен түрлендірулерге әкеледі.

Біз кестеден бас тартқан жоқпыз. Бірақ біз Tableau-ны өнеркәсіптік бақылау тақталарын құруға қабілетті құрал және компанияның бүкіл корпоративтік есеп беру жүйесін ауыстыру және цифрландыру құралы ретінде қарастырмаймыз.

Біз қазір басқа құралда ұқсас бақылау тақтасын белсенді түрде дамытып жатырмыз және сонымен бірге оны одан да жеңілдету үшін Tableau бағдарламасындағы бақылау тақтасының архитектурасын қайта қарауға тырысамыз. Қауымдастық қызығушылық танытса, нәтижесін айтамыз.

Сондай-ақ біз Tabeau-да осындай үлкен көлемдегі деректерге жылдам бақылау тақталарын қалай құруға болатыны туралы идеяларыңызды немесе кеңестеріңізді күтеміз, өйткені бізде бөлшек саудаға қарағанда әлдеқайда көп деректер бар веб-сайт бар.

Ақпарат көзі: www.habr.com

пікір қалдыру