Potrebujeme dátové jazero? Čo robiť s dátovým skladom?

Tento článok je prekladom môjho článku o médiu - Začíname s Data Lake, ktorý sa ukázal byť pomerne populárny, pravdepodobne pre svoju jednoduchosť. Preto som sa rozhodol napísať to v ruštine a trochu pridať, aby bolo bežnému človeku, ktorý nie je dátovým špecialistom, jasné, čo je dátový sklad (DW) a čo je dátové jazero (Data Lake) a ako vychádzať spolu.

Prečo som chcel písať o dátovom jazere? S údajmi a analytikou pracujem už viac ako 10 rokov a teraz určite pracujem s veľkými údajmi v Amazon Alexa AI v Cambridge, čo je v Bostone, hoci žijem vo Victorii na ostrove Vancouver a často navštevujem Boston, Seattle Vo Vancouveri a niekedy dokonca aj v Moskve vystupujem na konferenciách. Z času na čas píšem aj ja, ale píšem hlavne po anglicky a už som aj písal niektoré knihy, Tiež sa potrebujem podeliť o analytické trendy zo Severnej Ameriky a občas napíšem telegram.

Vždy som pracoval s dátovými skladmi a od roku 2015 som začal úzko spolupracovať s Amazon Web Services a vo všeobecnosti som prešiel na cloudovú analytiku (AWS, Azure, GCP). Pozoroval som vývoj analytických riešení od roku 2007 a dokonca som pracoval pre dodávateľa dátového skladu Teradata a implementoval som ho v Sberbank, a vtedy sa objavili Big Data s Hadoopom. Všetci začali hovoriť, že éra ukladania pominula a teraz je všetko na Hadoope, a potom sa opäť začalo rozprávať o Data Lake, že teraz definitívne nastal koniec dátového skladu. Ale našťastie (možno bohužiaľ pre niektorých, ktorí zarobili veľa peňazí nastavením Hadoopu), dátový sklad nezmizol.

V tomto článku sa pozrieme na to, čo je to dátové jazero. Tento článok je určený pre ľudí, ktorí majú malé alebo žiadne skúsenosti s dátovými skladmi.

Potrebujeme dátové jazero? Čo robiť s dátovým skladom?

Na obrázku je jazero Bled, toto je jedno z mojich najobľúbenejších jazier, hoci som tam bol len raz, pamätal som si to na celý život. Ale budeme sa baviť o inom type jazera – dátovom jazere. Možno mnohí z vás už o tomto termíne viackrát počuli, no ešte jedna definícia nikomu neuškodí.

Po prvé, tu sú najobľúbenejšie definície Data Lake:

„súborové úložisko všetkých typov nespracovaných údajov, ktoré je k dispozícii na analýzu komukoľvek v organizácii“ – Martin Fowler.

„Ak si myslíte, že dátový obchod je fľaša vody – vyčistená, zabalená a zabalená na pohodlnú konzumáciu, potom dátové jazero je obrovským rezervoárom vody vo svojej prirodzenej forme. Používatelia, môžem si pre seba nazbierať vodu, ponoriť sa hlboko, preskúmať“ - James Dixon.

Teraz už s istotou vieme, že dátové jazero je o analytike, umožňuje nám ukladať veľké množstvo dát v ich pôvodnej podobe a máme k nim potrebný a pohodlný prístup.

Často rád veci zjednodušujem, ak viem vysvetliť zložitý pojem jednoduchými slovami, tak sám pochopím, ako to funguje a na čo je to potrebné. Jedného dňa som sa prehrabával vo fotogalérii iPhonu a došlo mi, toto je skutočné dátové jazero, dokonca som urobil snímku na konferencie:

Potrebujeme dátové jazero? Čo robiť s dátovým skladom?

Všetko je veľmi jednoduché. Fotografujeme na telefóne, fotografia sa uloží do telefónu a dá sa uložiť do iCloud (cloudové úložisko súborov). Telefón tiež zhromažďuje metadáta fotografií: to, čo sa zobrazuje, geografická značka, čas. Vďaka tomu môžeme použiť užívateľsky prívetivé rozhranie iPhonu na nájdenie našej fotografie a dokonca vidíme indikátory, napríklad keď hľadám fotografie so slovom oheň, nájdem 3 fotografie s obrázkom ohňa. Pre mňa je to niečo ako nástroj Business Intelligence, ktorý funguje veľmi rýchlo a presne.

A samozrejme nesmieme zabúdať na bezpečnosť (autorizáciu a autentifikáciu), inak môžu naše dáta ľahko skončiť vo verejnej doméne. Je veľa noviniek o veľkých korporáciách a startupoch, ktorých dáta sa stali verejne dostupnými pre nedbalosť vývojárov a nedodržiavanie jednoduchých pravidiel.

Aj takýto jednoduchý obrázok nám pomáha predstaviť si, čo je to dátové jazero, jeho rozdiely od tradičného dátového skladu a jeho hlavné prvky:

  1. Načítavajú sa údaje (Požitie) je kľúčovou súčasťou dátového jazera. Dáta môžu vstupovať do dátového skladu dvomi spôsobmi – dávkovým (načítanie v intervaloch) a streamingom (dátový tok).
  2. Ukladanie súborov (Storage) je hlavnou súčasťou Data Lake. Potrebovali sme, aby bolo úložisko ľahko škálovateľné, mimoriadne spoľahlivé a malo nízke náklady. Napríklad v AWS je to S3.
  3. Katalóg a vyhľadávanie (Katalóg a vyhľadávanie) - aby sme sa vyhli Data Swamp (to je, keď vyhodíme všetky dáta na jednu kopu a potom sa s nimi nedá pracovať), musíme vytvoriť metadátovú vrstvu na klasifikáciu dát aby používatelia mohli jednoducho nájsť údaje, ktoré potrebujú na analýzu. Okrem toho môžete použiť ďalšie riešenia vyhľadávania, ako napríklad ElasticSearch. Vyhľadávanie pomáha používateľovi nájsť požadované údaje prostredníctvom používateľsky príjemného rozhrania.
  4. spracovanie (Proces) - tento krok je zodpovedný za spracovanie a transformáciu údajov. Dokážeme transformovať dáta, meniť ich štruktúru, čistiť ich a oveľa viac.
  5. zabezpečenia (Bezpečnosť) – Je dôležité venovať čas návrhu zabezpečenia riešenia. Napríklad šifrovanie údajov počas ukladania, spracovania a načítania. Je dôležité používať metódy autentifikácie a autorizácie. Nakoniec je potrebný nástroj auditu.

Z praktického hľadiska môžeme dátové jazero charakterizovať tromi atribútmi:

  1. Zbierajte a ukladajte čokoľvek — dátové jazero obsahuje všetky údaje, nespracované údaje za akékoľvek časové obdobie, ako aj spracované/vyčistené údaje.
  2. Hlboké skenovanie — dátové jazero umožňuje používateľom skúmať a analyzovať údaje.
  3. Flexibilný prístup — Dátové jazero poskytuje flexibilný prístup k rôznym údajom a rôznym scenárom.

Teraz môžeme hovoriť o rozdiele medzi dátovým skladom a dátovým jazerom. Zvyčajne sa ľudia pýtajú:

  • A čo dátový sklad?
  • Nahrádzame dátový sklad dátovým jazerom alebo ho rozširujeme?
  • Dá sa to ešte zaobísť bez dátového jazera?

Jednoznačná odpoveď skrátka neexistuje. Všetko závisí od konkrétnej situácie, schopností tímu a rozpočtu. Napríklad migrácia dátového skladu do Oracle na AWS a vytvorenie dátového jazera dcérskou spoločnosťou Amazonu – Woot – Náš príbeh dátového jazera: Ako Woot.com vybudoval dátové jazero bez servera na AWS.

Na druhej strane, predajca Snowflake hovorí, že už nemusíte myslieť na dátové jazero, keďže ich dátová platforma (do roku 2020 to bol dátový sklad) vám umožňuje kombinovať dátové jazero aj dátový sklad. So Snowflake som veľa nepracoval a je to skutočne jedinečný produkt, ktorý to dokáže. Iná vec je cena emisie.

Na záver, môj osobný názor je taký, že stále potrebujeme dátový sklad ako hlavný zdroj dát pre naše reportingy a čokoľvek, čo sa nezmestí, uložíme do dátového jazera. Úlohou analytiky je poskytnúť podnikom jednoduchý prístup k rozhodnutiam. Čokoľvek možno povedať, podnikoví používatelia pracujú efektívnejšie s dátovým skladom ako dátovým jazerom, napríklad v Amazone – existuje Redshift (analytický dátový sklad) a Redshift Spectrum/Athena (rozhranie SQL pre dátové jazero v S3 založené na Úľ/Presto). To isté platí pre ostatné moderné analytické dátové sklady.

Pozrime sa na typickú architektúru dátového skladu:

Potrebujeme dátové jazero? Čo robiť s dátovým skladom?

Toto je klasické riešenie. Máme zdrojové systémy, pomocou ETL/ELT kopírujeme dáta do analytického dátového skladu a pripájame ich k riešeniu Business Intelligence (moje obľúbené je Tableau, a čo vaše?).

Toto riešenie má nasledujúce nevýhody:

  • Operácie ETL/ELT vyžadujú čas a zdroje.
  • Pamäť na ukladanie údajov v analytickom dátovom sklade spravidla nie je lacná (napríklad Redshift, BigQuery, Teradata), pretože musíme kúpiť celý klaster.
  • Firemní používatelia majú prístup k vyčisteným a často agregovaným údajom a nemajú prístup k nespracovaným údajom.

Samozrejme, všetko závisí od vášho prípadu. Ak nemáte problémy s dátovým skladom, potom dátové jazero vôbec nepotrebujete. Ale keď sa vyskytnú problémy s nedostatkom miesta, energie alebo cena hrá kľúčovú úlohu, potom môžete zvážiť možnosť dátového jazera. To je dôvod, prečo je dátové jazero veľmi populárne. Tu je príklad architektúry dátového jazera:
Potrebujeme dátové jazero? Čo robiť s dátovým skladom?
Pomocou prístupu dátového jazera načítame nespracované údaje do nášho dátového jazera (dávky alebo streaming), potom údaje podľa potreby spracujeme. Dátové jazero umožňuje podnikovým používateľom vytvárať vlastné transformácie údajov (ETL/ELT) alebo analyzovať údaje v riešeniach Business Intelligence (ak je k dispozícii potrebný ovládač).

Cieľom každého analytického riešenia je slúžiť podnikovým používateľom. Preto musíme vždy pracovať podľa obchodných požiadaviek. (V Amazone je to jeden z princípov – práca spätne).

Pri práci s dátovým skladom aj dátovým jazerom môžeme obe riešenia porovnať:

Potrebujeme dátové jazero? Čo robiť s dátovým skladom?

Hlavným záverom, ktorý možno vyvodiť, je, že dátový sklad nekonkuruje dátovému jazeru, ale ho dopĺňa. Je však na vás, aby ste sa rozhodli, čo je pre váš prípad správne. Vždy je zaujímavé vyskúšať si to a vyvodiť správne závery.

Tiež by som vám rád povedal jeden z prípadov, keď som začal používať prístup data lake. Všetko je celkom triviálne, skúšal som použiť nástroj ELT (mali sme Matillion ETL) a Amazon Redshift, moje riešenie fungovalo, ale nespĺňalo požiadavky.

Potreboval som vziať webové denníky, transformovať ich a agregovať, aby som poskytol údaje pre 2 prípady:

  1. Marketingový tím chcel analyzovať aktivitu robotov pre SEO
  2. IT sa chcelo pozrieť na metriky výkonnosti webových stránok

Veľmi jednoduché, veľmi jednoduché logy. Tu je príklad:

https 2018-07-02T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 
192.168.131.39:2817 10.0.0.1:80 0.086 0.048 0.037 200 200 0 57 
"GET https://www.example.com:443/ HTTP/1.1" "curl/7.46.0" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 
arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067
"Root=1-58337281-1d84f3d73c47ec4e58577259" "www.example.com" "arn:aws:acm:us-east-2:123456789012:certificate/12345678-1234-1234-1234-123456789012"
1 2018-07-02T22:22:48.364000Z "authenticate,forward" "-" "-"

Jeden súbor vážil 1-4 megabajty.

Ale bola tu jedna ťažkosť. Mali sme 7 domén po celom svete a za jeden deň vzniklo 7000 50 tisíc súborov. To nie je oveľa väčší objem, iba 4 gigabajtov. Ale veľkosť nášho klastra Redshift bola tiež malá (XNUMX uzly). Načítanie jedného súboru tradičným spôsobom trvalo približne minútu. To znamená, že problém nebol vyriešený priamočiaro. A to bol prípad, keď som sa rozhodol použiť prístup dátového jazera. Riešenie vyzeralo asi takto:

Potrebujeme dátové jazero? Čo robiť s dátovým skladom?

Je to celkom jednoduché (chcem poznamenať, že výhodou práce v cloude je jednoduchosť). Použil som:

  • AWS Elastic Map Reduce (Hadoop) pre výpočtový výkon
  • AWS S3 ako úložisko súborov s možnosťou šifrovania údajov a obmedzenia prístupu
  • Spark ako výpočtový výkon InMemory a PySpark pre logiku a transformáciu dát
  • Parkety ako výsledok Spark
  • AWS Glue Crawler ako zberateľ metadát o nových údajoch a oddieloch
  • Redshift Spectrum ako rozhranie SQL pre dátové jazero pre existujúcich používateľov Redshift

Najmenší klaster EMR+Spark spracoval celý zásobník súborov za 30 minút. Existujú aj ďalšie prípady pre AWS, najmä mnohé súvisiace s Alexou, kde je veľa údajov.

Len nedávno som sa dozvedel, že jednou z nevýhod dátového jazera je GDPR. Problém je, keď klient požiada o vymazanie a dáta sú v jednom zo súborov, nemôžeme použiť Data Manipulation Language a operáciu DELETE ako v databáze.

Dúfam, že tento článok objasnil rozdiel medzi dátovým skladom a dátovým jazerom. Ak by ste mali záujem, môžem preložiť viac mojich článkov alebo článkov profesionálov, ktorých čítam. A tiež povedať o riešeniach, s ktorými pracujem, a ich architektúre.

Zdroj: hab.com

Pridať komentár