ABONAMENTE VIDEO REDACȚIA
RO
EN
NOU
Numărul 150
Numărul 149 Numărul 148 Numărul 147 Numărul 146 Numărul 145 Numărul 144 Numărul 143 Numărul 142 Numărul 141 Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ LISTĂ EDIȚII ▼
Numărul 45
Abonament PDF

Arhitectura unui Data Lake scalabil în AWS

George Ciobanu
Associate Architect @Betfair



PROGRAMARE


Până de curând, orice companie respectabilă construia un Data Warehouse - o bază de date de dimensiuni considerabile, în care se "strâng" datele din cât mai multe sisteme operaționale ale organizației. Cu ceva efort, în fiecare noapte acele date eterogene sunt curățate, standardizate, legate între ele și, cu puțin noroc, gata de interogare în dimineața zilei următoare. 

Data Warehouse-ul a fost "sfântul Graal" al arhitecților, analiștilor și decidenților de business, în special din două motive: primul se referă la speranța că se va răspunde tuturor întrebărilor și al doilea, la dificultatea de ajunge cu implementarea până la scopul final. Bineînțeles, avantajul unei baze de date centralizate, unice, care să aibă răspunsuri pentru orice întrebare legată de activitatea organizației, este incontestabil. Dar la fel de incontestabile sunt și rezultatele - studii bine documentate au arătat că majoritatea proiectelor de a construi un Enterprise Data Warehouse eșuează, iar cele declarate un succes sunt doar parțial terminate și sunt folosite doar pentru anumite scopuri, fără să devină acel multdorit centru complet de date al companiei.

Epoca acestor monoliți a trecut fără îndoială. Și aceasta nu din pricina eforturilor mari necesare pentru dezvoltare, nici din cauza costurilor sau a complexității proceselor de implementat, ci din cauza lipsei de adaptabilitate și scalabilitate. Structurile din baza de date au devenit încetul cu încetul un corset, limitând drastic agilitatea necesară provocărilor din prezent. Analiștii doresc acum să aibă la dispoziție noi și noi seturi de date, unele semi- sau chiar ne-structurate, vor să folosească instrumente precum Prelucrarea Limbajului Natural (NLP) și sentiment analysis pe date din social media. Nu în ultimul rând, datele de ieri nu mai sunt foarte utile astăzi - majoritatea deciziilor se iau "la cald", pe baza informațiilor obținute în timp real. Pe scurt, organizația modernă are nevoie de date mai multe, mai repede, mai ușor de accesat și interogat.

Articolul de față își propune să analizeze atributele cheie ale unui nou tip de Data Warehous, cel așa numit Data Lake, deși de cele mai multe ori Data Lake este privit ca fiind complementar unui Data Warehouse și nu un înlocuitor. Pentru exemplificare, în continuare voi menționa serviciile oferite de cel mai important provider de soluții Cloud - Amazon Web Services (AWS), cu mențiunea că în general și ceilalți jucători mari de pe această piață (Microsoft Azure, Google Cloud Platform) oferă produse similare.

Decuplarea Stocării datelor (Storage) de Procesarea datelor (Compute)

Aceasta a fost prima schimbare fundamentală, introdusă de apariția Hadoop și a ecosistemului de aplicații din jurul Hadoop. Acestea s-au potrivit ca o mănușă peste infrastructura din Cloud, permițând utilizatorilor să folosească (și să plătească) doar pentru volumul de date și puterea de calcul necesare la un anumit moment dat. De asemenea, a flexibilizat structura datelor care pot fi ingerate, întrucât nu mai suntem legați de un format proprietar de stocare. Nu în ultimul rând, a permis pătrunderea seturilor de date nestructurate, care nu ar fi avut niciodată un loc într-un Star Schema.

Latență scăzută

Low Latency - un atribut crucial al unui Data Lake - derivă din capacitatea acestuia de a ingera și de a lucra cu date în timp real din stream-uri. Se reduce sau chiar dispare cu totul nevoia de pre-procesare. Aceste date pot fi interogate și analizate aproape instantaneu, imediat ce au ajuns pe disc, sau chiar în timp ce se află în mișcare (vezi Amazon QuickSight).

Granularitate

Soluțiile de stocare în Cloud (AWS S3) oferă practic spațiu nelimitat, încât nu trebuie să ne mai îngrijorăm vreodată că depozitul de date a crescut prea mult. Acest aspect a condus la posibilitatea de a stoca datele la granularitate foarte mică, renunțând la pașii de agregare întâlniți frecvent într-un Data Warehouse și permițând astfel analize mult mai rafinate, până la nivel de tranzacție (de exemplu, analiza comportamentului clienților).

Metadata Lake

Când stocarea datelor se face în simple fișiere (obiecte) în S3, se pune imediat problema unui catalog descriptiv al datelor, flexibil dar similar structurilor dintr-o bază de date tradițională, structură în lipsa căreia analiza datelor devine frustrantă sau chiar imposibilă. În practică, menținerea separată a unui catalog de metadate este destul de dificilă atunci când structurile se schimbă frecvent. De aceea, se recurge de regulă la fișiere în format autodescriptiv, precum Parquet, Avro, ORC, JSON, XML etc., care conțin atât datele cât și structura lor.

Imaginea de ansamblu

Când punem la un loc toate componentele amintite, o arhitectură minimalistă pentru un Data Lake în AWS ar putea arăta ca în diagrama de mai jos:

Vom tinde spre achiziția datelor în timp real (cozi SQS, Kinesis sau Kafka), fără să excludem totuși metodele tradiționale de replicare, de exemplu prin fișiere.

S3 devine instrumentul central pentru stocare într-un Data Lake, cu opțiunea de a arhiva datele foarte puțin accesate în Glacier, pentru un cost infim.

Partea de procesare, clar delimitată de stocare, se poate realiza într-unul sau mai multe clustere EMR (Amazon Elastic MapReduce, distribuția oficială de Hadoop din AWS). Acesta are avantajul că poate scala, adăugând mai multe noduri la nevoie. Totodată, EMR suportă și alte framework-uri distribuite, precum Apache Spark sau Presto. Este posibil totuși ca S3 și EMR să nu înlocuiască total nevoia unui Data Warehouse clasic, în special când vorbim de modele dimensionale; aici Amazon vine cu un produs numit Redshift - un Data Warehouse ultrarapid și administrat automat, care scalează la nivel de petabytes.

În final, layer-ul de consumare a datelor deschis utilizatorului final poate acoperi cu ușurință instrumentele clasice de raportare și BI, dar vine și cu o serie de elemente noi. Aș aminti aici QuickSight (instrumentul de BI de la AWS) și platforma de Machine Learning, care deși nu impresionează deocamdată prin diversitatea algoritmilor, garantează o scalabilitate de până la miliarde de predicții pe zi, chiar și în timp real.

Ar mai fi aspecte de adăugat, precum controlul accesului și securitatea datelor în Cloud, recuperarea în caz de dezastru, costul migrării datelor către și dinspre Cloud și multe altele care pot face însă obiectul unui articol dedicat.

În concluzie, Big Data și infrastructura ca serviciu în Cloud au adus schimbări fundamentale în abordarea arhitecturii depozitelor de date. Pe de o parte, schimbări cantitative așa cum arată  explozia volumului de date stocate practic și scăderea granularității, iar pe de alta, schimbări calitative reflectate în accesul mult mai rapid la informație și date nestructurate. Sistemele distribuite au devenit standardul, iar sistemele-monolit dispar sub greutatea Big Data. A îmbrățișa acest curent este acum sinonim cu asigurarea pentru companie a unui avantaj competitiv vital - informația.

NUMĂRUL 149 - Development with AI

Sponsori

  • Accenture
  • BT Code Crafters
  • Accesa
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • Colors in projects