Conducta de Business Intelligence bazată pe servicii AWS – studiu de caz
Publicat: 2019-05-16În ultimii ani, am observat un interes crescut pentru analiza big data. Directorii, managerii și alte părți interesate din afaceri folosesc Business Intelligence (BI) pentru a lua decizii informate. Le permite să analizeze imediat informațiile critice și să ia decizii bazate nu numai pe intuiția lor, ci și pe ceea ce pot învăța din comportamentul real al clienților.
Când decideți să creați o soluție BI eficientă și informativă, unul dintre primii pași pe care trebuie să-i facă echipa de dezvoltare este să planificați arhitectura conductei de date. Există mai multe instrumente bazate pe cloud care pot fi aplicate pentru a construi o astfel de conductă și nu există o singură soluție care ar fi cea mai bună pentru toate afacerile. Înainte de a vă decide asupra unei anumite opțiuni, ar trebui să luați în considerare stiva dvs. actuală de tehnologie, prețul instrumentelor și setul de abilități ale dezvoltatorilor dvs. În acest articol, voi arăta o arhitectură construită cu instrumente AWS care a fost implementată cu succes ca parte a aplicației Timesheets.
Privire de ansamblu asupra arhitecturii
Foile de pontaj este un instrument de urmărire și raportare a timpului angajat. Poate fi folosit prin aplicații web, iOS, Android și desktop, chatbot integrat cu Hangouts și Slack și acțiune pe Google Assistant. Deoarece există multe tipuri de aplicații disponibile, există și o mulțime de date diverse de urmărit. Datele sunt colectate prin Revolt Analytics, stocate în Amazon S3 și procesate cu AWS Glue și Amazon SageMaker. Rezultatele analizei sunt stocate în Amazon RDS și sunt folosite pentru a construi rapoarte vizuale în Google Data Studio. Această arhitectură este prezentată în graficul de mai sus.
În următoarele paragrafe, voi descrie pe scurt fiecare dintre instrumentele Big Data utilizate în această arhitectură.
Revolt Analytics
Revolt Analytics este un instrument dezvoltat de Miquido pentru a urmări și analiza datele din aplicații de toate tipurile. Pentru a simplifica implementarea Revolt în sistemele client, au fost construite SDK-uri iOS, Android, JavaScript, Go, Python și Java. Una dintre caracteristicile cheie ale Revolt este performanța sa: toate evenimentele sunt puse în coadă, stocate și trimise în pachete, ceea ce asigură că sunt livrate atât rapid, cât și eficient. Revolt oferă proprietarului aplicației posibilitatea de a identifica utilizatorii și de a urmări comportamentul acestora în aplicație. Acest lucru ne permite să construim modele de învățare automată aducătoare de valoare, cum ar fi sisteme de recomandare complet personalizate și modele de predicție a abandonului și pentru crearea de profiluri a clienților pe baza comportamentului utilizatorului. Revolt oferă, de asemenea, o funcție de sesiune. Cunoștințele despre căile și comportamentul utilizatorilor în aplicații vă pot ajuta să înțelegeți obiectivele și nevoile clienților dvs.
Revolt poate fi instalat pe orice infrastructură pe care o alegeți. Această abordare vă oferă control total asupra costurilor și evenimentelor urmărite. În cazul Timesheets prezentat în acest articol, acesta a fost construit pe infrastructura AWS. Datorită accesului deplin la stocarea datelor, proprietarii de produse pot obține cu ușurință informații despre aplicația lor și pot folosi acele date în alte sisteme.
SDK-urile Revolt sunt adăugate la fiecare componentă a sistemului Timesheets, care constă din:
- Aplicații Android și iOS (construite cu Flutter)
- Aplicație desktop (construită cu Electron)
- Aplicație web (scrisă în React)
- Backend (scris în Golang)
- Hangouts și chat-uri online Slack
- Acțiune pe Asistentul Google
Revolt oferă administratorilor Timesheets cunoștințe despre dispozitivele (de exemplu, marca dispozitivului, modelul) și sistemele (de exemplu versiunea sistemului de operare, limba, fusul orar) utilizate de clienții aplicației. În plus, trimite diverse evenimente personalizate asociate cu activitatea utilizatorilor în aplicații. În consecință, administratorii pot analiza comportamentul utilizatorilor și pot înțelege mai bine obiectivele și așteptările acestora. De asemenea, aceștia pot verifica capacitatea de utilizare a caracteristicilor implementate și pot evalua dacă aceste caracteristici îndeplinesc ipotezele proprietarului de produs cu privire la modul în care ar fi utilizate.

AWS Glue
AWS Glue este un serviciu ETL (extragere, transformare și încărcare) care ajută la pregătirea datelor pentru sarcini analitice. Rulează joburi ETL într-un mediu fără server Apache Spark. De obicei, constă din următoarele trei elemente:
- Definiția crawlerului – Un crawler este utilizat pentru a scana datele din tot felul de depozite și surse, pentru a le clasifica, pentru a extrage informații despre schemă din acestea și pentru a stoca metadatele despre ele în Catalogul de date. Poate, de exemplu, să scaneze jurnalele stocate în fișiere JSON pe Amazon S3 și să stocheze informațiile despre schema lor în Catalogul de date.
- Script de job – joburile AWS Glue transformă datele în formatul dorit. AWS Glue poate genera automat un script pentru a vă încărca, curăța și transforma datele. De asemenea, puteți furniza propriul script Apache Spark scris în Python sau Scala, care ar rula transformările dorite. Acestea ar putea include sarcini precum gestionarea valorilor nule, sesiuni, agregări etc.
- Declanșatoare – Crawlerele și joburile pot fi executate la cerere sau pot fi configurate să pornească atunci când apare un declanșator specificat. Un declanșator poate fi un program bazat pe timp sau un eveniment (de exemplu, o execuție cu succes a unui job specificat). Această opțiune vă oferă posibilitatea de a gestiona fără efort actualitatea datelor din rapoartele dvs.
În arhitectura noastră Timesheets, această parte a conductei se prezintă după cum urmează:
- Un declanșator bazat pe timp începe un job de preprocesare, care execută curățarea datelor, atribuie jurnalele de evenimente adecvate sesiunilor și calculează agregările inițiale. Datele rezultate ale acestui job sunt stocate pe AWS S3.
- Al doilea declanșator este configurat să ruleze după executarea completă și cu succes a jobului de preprocesare. Acest declanșator pornește un job care pregătește date care sunt utilizate direct în rapoartele analizate de către Product Owners.
- Rezultatele celui de-al doilea job sunt stocate într-o bază de date AWS RDS. Acest lucru le face ușor accesibile și utilizabile în instrumente de Business Intelligence precum Google Data Studio, PowerBI sau Tableau.
AWS SageMaker
Amazon SageMaker oferă module pentru a construi, antrena și implementa modele de învățare automată.
Permite antrenarea și reglarea modelelor la orice scară și permite utilizarea algoritmilor de înaltă performanță furnizați de AWS. Cu toate acestea, puteți utiliza și algoritmi personalizați după ce furnizați o imagine docker adecvată. AWS SageMaker simplifică, de asemenea, reglarea hiperparametrului cu joburi configurabile care compară valorile pentru diferite seturi de parametri de model.
În Timesheets, SageMaker Notebook Instances ne ajută să explorăm datele, să testăm scripturi ETL și să pregătim prototipuri de diagrame de vizualizare pentru a fi utilizate într-un instrument BI pentru crearea de rapoarte. Această soluție sprijină și îmbunătățește colaborarea oamenilor de știință de date, deoarece asigură că aceștia lucrează în același mediu de dezvoltare. În plus, acest lucru ajută la asigurarea faptului că nicio dată sensibilă (care poate face parte din ieșirea celulelor notebook-urilor) nu este stocată în afara infrastructurii AWS, deoarece notebook-urile sunt stocate numai în compartimente AWS S3 și nu este nevoie de un depozit git pentru a partaja munca între colegi. .
Învelire
Decizia ce instrumente de Big Data și Machine Learning să folosească este crucială în proiectarea unei arhitecturi pipeline pentru o soluție de Business Intelligence. Această alegere poate avea un impact substanțial asupra capacităților sistemului, costurilor și ușurinței de a adăuga noi funcții în viitor. Instrumentele AWS merită cu siguranță luate în considerare, dar ar trebui să selectați o tehnologie care se va potrivi cu stiva dvs. actuală de tehnologie și cu abilitățile echipei de dezvoltare.
Profitați de experiența noastră în construirea de soluții orientate spre viitor și contactați-ne!