Știința datelor și analiza pentru afaceri provocări și soluții

Pe măsură ce mai multe companii descoperă importanța științei datelor și a analizelor avansate pentru linia lor de jos, a început o ciocnire a culturilor. Cum pot aceste câmpuri de creștere rapidă să devină parte a ecosistemului unei companii, în special pentru companiile stabilite care au fost în jur de un deceniu sau mai mult? 

Cercetătorii de date și profesioniștii în domeniul IT au nevoi foarte diferite atunci când vine vorba de infrastructură. Aici, voi stabili unele dintre aceste cerințe și vom discuta cum să trecem dincolo de ele - și să evoluăm împreună.

Departamentul Perspective

La pornirea programelor de știință a datelor în cadrul companiilor, cele mai mari probleme nu apar adesea din tehnologia însăși, ci din simpla comunicare necorespunzătoare. Interpretăriile interdepartamentale pot duce la o mulțime de dereglări între echipele de știință și departamentele IT. 

Pentru a combate acest lucru, vom examina ambele perspective și vom lua în considerare fiecare dintre nevoile lor. Vom începe prin definirea a ceea ce un profesionist IT necesită pentru a menține un flux de lucru de succes și apoi vom analiza ceea ce un om de știință are nevoie pentru o eficiență maximă. În cele din urmă, vom găsi terenul comun: cum să-l folosim pentru a pune în aplicare o infrastructură sănătoasă pentru a putea înflori atât.

Are nevoie

Să începem să aruncăm o privire asupra unei infrastructuri tipice de date pentru IT și dezvoltare software.

În ceea ce privește datele, există trei premise esențiale pe care orice departament IT se va concentra pe: 

  • date care sunt sigure
  • date care sunt eficiente
  • date care sunt consecvente

Din acest motiv, o mare parte din IT utilizează scheme bazate pe tabele și utilizează adesea SQL (Structured Query Language) sau una dintre variantele sale.

Această configurație înseamnă că există un număr mare de mese pentru fiecare scop. Fiecare dintre aceste tabele este separată una de cealaltă, cu chei străine care le conectează. Din cauza acestei configurații, interogările pot fi executate rapid, eficient și cu siguranță în minte. Acest lucru este important pentru dezvoltarea de software, unde datele trebuie să rămână intacte și fiabile.

Cu această structură, hardware-ul necesar este adesea minimal în comparație cu nevoile științei datelor. Datele stocate sunt bine definite și evoluează într-un ritm previzibil. Micile date se repetă, iar procesul de interogare reduce cantitatea de resurse de procesare necesare. 

Să vedem cum diferă știința datelor.

Cerințe privind științele datelor

Pe de altă parte, știința datelor are un set diferit de nevoi. Cercetătorii de date au nevoie de libertatea de mișcare cu datele lor și de flexibilitatea de a-și modifica rapid datele. Ei trebuie să poată muta datele în moduri nestandardizate și pot procesa cantități mari la un moment dat.

Aceste nevoi sunt greu de implementat folosind baze de date foarte structurate. Știința datelor necesită o infrastructură diferită, bazându-se în schimb pe date nestructurate și scheme fără tabele.

Când ne referim la date nestructurate, vorbim despre date fără o definiție intrinsecă. Este nebulos până la forma dată de un om de știință. Pentru majoritatea dezvoltării, fiecare câmp trebuie să fie de un tip definit - cum ar fi un întreg sau un șir. Cu toate acestea, pentru știința datelor, este vorba despre susținerea unor puncte de date care nu sunt bine definite.

Schemele fără tabele adaugă mai multă versatilitate acestei configurații cvasi-haotice, permițând tuturor informațiilor să trăiască într-un singur loc. Este util în special pentru oamenii de știință care au nevoie periodic de fuzionarea datelor în moduri creative și nestructurate. Opțiunile populare includ variante sau structuri NoSQL care permit mai multe dimensiuni, cum ar fi cuburile OLAP.

Ca rezultat, hardware-ul necesar pentru știința datelor este adesea mai substanțial. Va trebui să dețină întreaga informație utilizată, precum și submulțimile acestor date (deși acest lucru este deseori împărțit între mai multe structuri sau servicii). Hardware-ul poate necesita, de asemenea, resurse considerabile de procesare deoarece cantități mari de date sunt mutate și agregate.

Distilarea are nevoie de acțiune

Cu aceste două seturi de nevoi în minte, putem vedea acum cât de necorespunzătoare pot apărea. Să luăm aceste perspective și să le folosim pentru a defini ce schimbări căutăm și cum. Ce probleme trebuie rezolvate atunci când aduceți știința datelor într-un mediu IT tradițional?

Ușurința manipulării datelor

Într-o configurație IT tradițională, bazele de date ale unei anumite întreprinderi ar putea urma o structură rigidă, cu tabele împărțite pentru a corespunde nevoilor specifice, o schemă adecvată pentru a defini fiecare bucată de date și chei străine pentru a le uni toate împreună. Acest lucru face ca un sistem eficient de interogare a datelor. Natura exploratorie a unor metode de știință a datelor poate împinge acest lucru la limitele sale.

Atunci când o sarcină obișnuită ar putea necesita aderarea la o duzină sau mai multe mese, beneficiile structurilor bazate pe tabele devin mai puțin vizibile. O metodă populară de a gestiona acest lucru este implementarea unei baze de date secundare NoSQL sau multidimensionale. Această bază de date secundară folosește reguli ETL (Extract, Transform, Încărcare) pentru a-și păstra informațiile în stare proaspătă. Acest lucru adaugă costul suplimentar al hardware-ului sau al serviciilor de cloud service, dar minimizează orice alte dezavantaje.

Rețineți că, în unele cazuri, adăugarea unei baze de date separate pentru știința datelor poate fi mai accesibilă decât utilizarea aceleiași baze de date (mai ales atunci când problemele complicate de licențiere intră în joc).

Ușor de scalare a datelor

Această problemă specifică acoperă două neconcordanțe menționate:

  1. cresteri regulate ale datelor din proceduri
  2. o nevoie de tipuri de date nestructurate

În IT-ul tradițional, dimensiunea bazei dvs. de date este bine definită, fie că rămâne la aceeași dimensiune, fie că crește într-un ritm modest. Atunci când folosiți o bază de date pentru știința datelor, această creștere poate fi exponențială. Este comună adăugarea de gigaocteți de date în fiecare zi (sau mai mult). Cu dimensiunea exactă a acestui tip de date, o afacere va trebui să includă un plan pentru scalarea arhitecturii interne sau să utilizeze o soluție cloud adecvată.

În ceea ce privește datele nestructurate, aceasta poate necesita o mulțime de resurse în ceea ce privește capacitatea de stocare și procesare, în funcție de utilizările specifice. Din acest motiv, este adesea ineficient să păstrați totul într-o bază de date care ar putea fi utilizată în alte scopuri. Soluția este similară scalării în general. Vom avea nevoie fie de un plan pentru a diminua arhitectura noastră internă pentru a răspunde acestor nevoi, fie va trebui să găsim o soluție cloud adecvată.

Utilizarea resurselor

Ultima diferență majoră pe care o vom vorbi este folosirea resurselor. Pentru IT, utilizarea resurselor este de obicei eficientă, bine definită și consecventă. Dacă o bază de date deține un site de eCommerce, există constrângeri cunoscute. Un profesionist IT va ști cât de mulți utilizatori vor fi într-o anumită perioadă de timp, astfel încât să își poată planifica furnizarea de hardware pe baza cantității de informații necesare pentru fiecare utilizator.

Cu infrastructura IT tradițională, nu se vor întâmpla probleme dacă un proiect utilizează doar câteva sute de rânduri dintr-o mână de mese. Dar un proiect care necesită fiecare rând din două duzini de mese poate deveni rapid o problemă. În domeniul științei datelor, nevoile în ceea ce privește prelucrarea și stocarea se schimbă de la proiect la proiect - și acest tip de imprevizibilitate poate fi dificil de suportat.

În IT-ul tradițional, resursele pot fi împărtășite cu alte părți, care ar putea fi un site de producție live sau o echipă internă dev. Riscul de aici este că desfășurarea unui proiect de științe la scară largă ar putea bloca potențial ceilalți utilizatori pentru o perioadă de timp. Un alt risc este că serverele care dețin o bază de date ar putea să nu poată gestiona cantitatea de procesare necesară. Apelarea a 200.000 de rânduri din 15 tabele și solicitarea agregării datelor de la început devine o problemă. Această magnitudine de interogări poate fi extrem de impozabilă pe un server care ar putea gestiona în mod normal o mie de utilizatori simultan.

Soluția ideală se reduce la prelucrarea cloud. Aceasta se referă la doi factori cheie. Primul este că permite efectuarea interogării departe de orice bază de date importantă. Al doilea este că oferă resurse de scalare care se pot potrivi fiecărui proiect.

Deci, care este lista finală a cerințelor pentru ambele?

Acum că am vorbit despre nevoi în profunzime, să le rezumăm. Un departament de informatică și de date va avea nevoie de următoarele pentru succesul pe termen lung:

  • o bază de date separată pentru a reduce impactul asupra altor părți interesate
  • o soluție de stocare a scalării pentru a permite modificarea datelor
  • o soluție de procesare a scalării pentru a se potrivi diferitelor tipuri de proiecte
  • o bază de date nestructurată care să asigure recuperarea și stocarea eficientă a unor date foarte diferite

Construirea unui caz pentru știința datelor

Să facem totul în specificații, astfel încât să putem pune împreună o soluție reciproc avantajoasă. Acum, vom analiza modul de definire a resurselor specifice necesare unei organizații:

Cercetarea specificațiilor

Din partea IT, există trei definiții principale necesare pentru a crea infrastructura necesară. Acestea sunt: 

  1. cantitatea de date
  2. în ce măsură are nevoie de prelucrare
  3. modul în care datele vor ajunge la soluția de stocare

Iată cum puteți determina fiecare.

Necesități de stocare a datelor

Totul începe cu dimensiunea inițială necesară a datelor și cu estimările adăugate în curs de desfășurare.

Pentru nevoile dvs. inițiale de date, luați dimensiunea definită a bazei dvs. de date curente. Acum scăpați toate coloanele sau tabelele pe care nu le veți avea nevoie în proiectele privind științele datelor. Luați acest număr și adăugați mărimea datelor pentru orice sursă nouă pe care o introduceți. Noi surse ar putea include date sau informații Google Analytics de la sistemul Point of Sale. Acest total va fi stocarea datelor pe care vom căuta să o obținem în avans.

În timp ce nevoile inițiale de stocare sunt utile în avans, va trebui totuși să țineți cont de nevoile de date în curs de desfășurare - cum probabil veți adăuga mai multe informații în baza de date în timp. Pentru a afla aceste informații, puteți calcula datele adăugate zilnic din datele disponibile în mod curent. Aruncați o privire asupra cantității de informații care au fost adăugate în baza dvs. de date în ultimele 30 de zile și apoi divizați-le cu 30. Apoi repetați pentru fiecare sursă de informații pe care o veți utiliza și adăugați-le împreună. 

În timp ce acest lucru nu este precis, există o mantră de dezvoltare veche, care ar trebui să vă dubleze estimarea și vom folosi asta aici. De ce? Vrem să răspundem pentru modificări imprevizibile care ar putea afecta nevoile dvs. de stocare a datelor cum ar fi creșterea companiei, necesitățile per-proiect sau numai zonele generale.

Cu acest număr acum definit, înmulțiți-l cu 365. Aceasta este acum data creșterii datelor dvs. proiectată pentru un an, care, atunci când este adăugată la suma inițială, va determina cât de mult ar trebui să vă uitați la stocarea.

Prelucrarea nevoilor resurselor

Spre deosebire de nevoile de stocare a datelor, nevoile de prelucrare sunt mult mai greu de calculat exact. Scopul principal aici este de a decide dacă doriți să puneți ridicarea greoaie pe interogări sau pe o mașină locală (sau un cloud instanță). Rețineți că atunci când vorbesc despre o mașină locală, nu înseamnă doar calculatorul pe care îl utilizați în mod normal - probabil că veți avea nevoie de un anumit post de lucru optimizat pentru calculele mai intense.

Pentru a face această alegere, vă ajută să vă gândiți la cel mai mare proiect de date științifice pe care ați putea să-l desfășurați în anul următor. Poate soluția dvs. de date să gestioneze o interogare de aceeași dimensiune fără a deveni inaccesibilă tuturor celorlalte părți interesate? Dacă se poate, atunci sunteți bine să mergeți fără resurse suplimentare necesare. Dacă nu, atunci va trebui să planificați să obțineți o stație de lucru cu dimensiuni corespunzătoare sau instanțe cloud scalare.

ETL (extracție, transformare, încărcare) procese

După ce ați decis unde să stocați și să procesați datele, următoarea decizie este cum. Crearea unui proces ETL va păstra baza de date a științei datelor ordonată și actualizată și va împiedica utilizarea de resurse inutile din altă parte.

Iată ce ar trebui să aveți în documentația dvs. ETL:

  • orice proceduri de rezervă care ar trebui să aibă loc
  • unde vor veni date și unde va merge
  • dimensiunile exacte care ar trebui mutate
  • cât de des ar trebui să se efectueze transferul
  • dacă transferul trebuie să fie completat (rescrie întreaga bază de date) sau poate fi aditiv (deplasați doar peste lucruri noi)

Pregătirea unei soluții

Cu toate punctele de date în mână, este timpul să alegeți o soluție. Această parte va face un pic de cercetare și se va baza foarte mult pe nevoile dvs. specifice, deoarece pe suprafața ei au tendința de a avea o mulțime de asemănări.

Trei dintre cele mai mari soluții cloud - Amazon Web Services (AWS), Google Cloud Platform (GCP) și Microsoft Azure - oferă unele dintre cele mai bune prețuri și caracteristici. Toate cele trei au costuri relativ similare, deși AWS este în mod deosebit mai dificil de calculat pentru (datorită costurilor) a la carte structura prețurilor).

Dincolo de preț, fiecare oferă stocare scalabilă a datelor și capacitatea de a adăuga instanțe de procesare, deși fiecare își numește "instanțele" printr-un nume diferit. Atunci când cercetați ce trebuie să utilizați pentru propria infrastructură, luați în considerare tipurile de proiecte pe care le veți folosi cel mai mult, deoarece acestea pot schimba valoarea fiecărui preț și a setului de funcții.

Cu toate acestea, multe companii selectează pur și simplu oricare dintre ele se aliniază cu stivele tehnologice existente.

Puteți, de asemenea, doriți să vă configurați infrastructura proprie, deși aceasta este mult mai complexă și nu pentru cei slabi de inimă.

Sfaturi suplimentare pentru implementarea netedă

Cu toate rațele dvs. într-un rând, puteți începe punerea în aplicare! Pentru a vă ajuta, iată câteva sfaturi utile pentru a face proiectul dvs. mai ușor - de la pitch la execuție.

Testați-vă procesul ETL

Când ați realizat pentru prima dată procesul ETL, nu testați întregul lucru pe rând! Acest lucru poate afecta serios resursele dvs. și poate crește drastic costurile pentru cloud dacă există o greșeală sau dacă trebuie să încercați procesul de mai multe ori.

În schimb, este o idee bună să rulați procesul folosind doar primele 100 de rânduri din tabelele dvs. de origine la început. Apoi rulați transferul complet după ce știți că va funcționa.

Testați-vă și întrebările

Același lucru este valabil și pentru orice interogare mare pe care o rulați pe o instanță cloud. Efectuarea unei greșeli care atrage milioane de fragmente de date este mult mai dificilă pentru un sistem decât unul care atrage doar câțiva - mai ales când plătiți pe GB.

Creați o strategie de rezervă pentru stocare

Majoritatea operatorilor de cloud oferă această caracteristică, deci nu trebuie să vă faceți griji. Echipa dvs. ar trebui totuși să discute dacă ar dori să își creeze propriile copii de rezervă ale datelor, sau dacă ar fi mai eficient să reconstruiască datele în cazul în care va apărea necesitatea.

Securitate și confidențialitate

Atunci când transferați datele clienților către nor, asigurați-vă că toți cei implicați sunt conștienți de politicile de administrare a datelor ale companiei dvs. pentru a preveni problemele de pe drum. Acest lucru vă poate ajuta să economisiți niște bani cu privire la cantitatea de date stocate în cloud.

Denumirea numelui în timpul ETL

Atunci când efectuați ETL-ul dintr-o bază de date bazată pe tabelă pe o bază nestructată, aveți grijă să procedați la numire. În cazul în care numele de nume sunt doar en-gros transferate peste, veți avea probabil o mulțime de câmpuri de la diferite tabele care au același nume. O modalitate ușoară de a depăși acest lucru la început este să numiți noile dimensiuni în baza de date nestructurată ca Oldtablename _ ColumnName și apoi redenumiți-le de acolo.

Ia-ți motorul!

Acum puteți planifica elementele de bază ale infrastructurii dvs. de analiză și știință a datelor. Cu multe dintre întrebările și răspunsurile cheie definite, procesul de implementare și obținerea unui buy-in managerial ar trebui să meargă mult mai bine. 

Având dificultăți în găsirea de răspunsuri pentru propria companie? Am strălucit ceva important? Anunță-mă în comentariile!

Cod