Vai mums ir nepiecieŔams datu ezers? Ko darīt ar datu noliktavu?

Å is raksts ir tulkojums manam rakstam par mediju - Darba sākÅ”ana ar Data Lake, kas izrādÄ«jās diezgan populārs, iespējams, vienkārŔības dēļ. Tāpēc nolēmu uzrakstÄ«t krieviski un nedaudz papildināt, lai parastam cilvēkam, kurÅ” nav datu speciālists, bÅ«tu skaidrs, kas ir datu noliktava (DW) un kas ir datu ezers (Datu ezers), un kā viņi to dara. sanāk kopā.

Kāpēc es gribēju rakstīt par datu ezeru? Es strādāju ar datiem un analīzi vairāk nekā 10 gadus, un tagad es noteikti strādāju ar lielajiem datiem Amazon Alexa AI Kembridžā, kas atrodas Bostonā, lai gan es dzīvoju Viktorijā Vankūveras salā un bieži apmeklēju Bostonu, Sietlu. , un Vankūverā un dažreiz pat Maskavā es uzstājos konferencēs. Es arī rakstu ik pa laikam, bet rakstu galvenokārt angliski, un esmu jau rakstījis dažas grāmatas, man arī ir jādalās ar analītikas tendencēm no Ziemeļamerikas, un es dažreiz rakstu telegramma.

Es vienmēr esmu strādājis ar datu noliktavām, un kopÅ” 2015. gada sāku cieÅ”i sadarboties ar Amazon Web Services un parasti pārgāju uz mākoņa analÄ«zi (AWS, Azure, GCP). Esmu novērojis analÄ«tikas risinājumu attÄ«stÄ«bu kopÅ” 2007. gada un pat strādājis datu noliktavas pārdevējā Teradata un ieviesis to Sberbank, un tieÅ”i tad parādÄ«jās Big Data ar Hadoop. Visi sāka runāt, ka krātuves laikmets ir pagājis un tagad viss ir Hadoop, un tad viņi atkal sāka runāt par Data Lake, ka tagad noteikti ir pienācis datu noliktavas beigas. Bet par laimi (varbÅ«t diemžēl dažiem, kuri nopelnÄ«ja daudz naudas, izveidojot Hadoop), datu noliktava nepazuda.

Šajā rakstā mēs apskatīsim, kas ir datu ezers. Šis raksts ir paredzēts cilvēkiem, kuriem ir maz vai nav nekādas pieredzes ar datu noliktavām.

Vai mums ir nepiecieŔams datu ezers? Ko darīt ar datu noliktavu?

Bildē ir Bledas ezers, Å”is ir viens no maniem mīļākajiem ezeriem, lai gan biju tur tikai vienu reizi, atcerējos visu mūžu. Bet mēs runāsim par cita veida ezeru - datu ezeru. VarbÅ«t daudzi no jums jau ir dzirdējuÅ”i par Å”o terminu vairāk nekā vienu reizi, taču vēl viena definÄ«cija nevienam nekaitēs.

Pirmkārt, Ŕeit ir vispopulārākās datu ezera definīcijas:

"Visu veidu neapstrādātu datu failu krātuve, kas ir pieejama analīzei ikvienam organizācijā" - Martin Fowler.

ā€œJa jÅ«s domājat, ka datu centrs ir Å«dens pudele - attÄ«rÄ«ta, iepakots un iepakots ērtam patēriņam, tad datu ezers ir milzÄ«gs Å«dens rezervuārs tā dabiskajā formā. Lietotāji, es varu savākt Å«deni sev, nirt dziļumā, izpētÄ«t.ā€ - Džeimss Diksons.

Tagad mēs noteikti zinām, ka datu ezers ir saistÄ«ts ar analÄ«zi, tas ļauj mums uzglabāt lielu datu apjomu sākotnējā formā un mums ir nepiecieÅ”amā un ērta piekļuve datiem.

Man bieži patÄ«k lietas vienkārÅ”ot, ja es varu izskaidrot sarežģītu terminu vienkārÅ”iem vārdiem, tad es pats saprotu, kā tas darbojas un kam tas ir vajadzÄ«gs. Kādu dienu pabiju pa iPhone fotogaleriju, un man uznāca, ka Å”is ir Ä«sts datu ezers, es pat uztaisÄ«ju slaidu konferencēm:

Vai mums ir nepiecieŔams datu ezers? Ko darīt ar datu noliktavu?

Viss ir ļoti vienkārÅ”i. Fotografējam telefonā, fotogrāfija tiek saglabāta telefonā un var tikt saglabāta iCloud (mākoņa failu krātuvē). Tālrunis apkopo arÄ« fotoattēlu metadatus: parādÄ«to, Ä£eogrāfisko atzÄ«mi, laiku. Rezultātā mēs varam izmantot iPhone lietotājam draudzÄ«go interfeisu, lai atrastu savu fotoattēlu un mēs pat redzam indikatorus, piemēram, kad es meklēju fotogrāfijas ar vārdu uguns, es atrodu 3 fotoattēlus ar ugunsgrēka attēlu. Man tas ir gluži kā biznesa informācijas rÄ«ks, kas darbojas ļoti ātri un skaidri.

Un, protams, mēs nedrÄ«kstam aizmirst par droŔību (autorizāciju un autentifikāciju), pretējā gadÄ«jumā mÅ«su dati var viegli nonākt publiskajā domēnā. Ir daudz ziņu par lielām korporācijām un jaunuzņēmumiem, kuru dati kļuva publiski pieejami izstrādātāju nolaidÄ«bas un vienkārÅ”u noteikumu neievēroÅ”anas dēļ.

Pat Ŕāds vienkārÅ”s attēls palÄ«dz mums iedomāties, kas ir datu ezers, tā atŔķirÄ«bas no tradicionālās datu noliktavas un tā galvenie elementi:

  1. Notiek datu ielāde (NorÄ«Å”ana) ir galvenā datu ezera sastāvdaļa. Datus var ievadÄ«t datu noliktavā divos veidos ā€“ pakeÅ”u (ielādējot ar intervāliem) un straumÄ“Å”anas (datu plÅ«sma).
  2. Failu glabāŔana (Storage) ir datu ezera galvenā sastāvdaļa. Mums vajadzēja, lai krātuve bÅ«tu viegli mērogojama, ārkārtÄ«gi uzticama un zemas izmaksas. Piemēram, AWS tas ir S3.
  3. Katalogs un meklÄ“Å”ana (Katalogs un MeklÄ“Å”ana) - lai mēs izvairÄ«tos no datu purva (tas ir tad, kad mēs izmetam visus datus vienā kaudzē, un tad ar tiem nav iespējams strādāt), mums ir jāizveido metadatu slānis, lai klasificētu datus lai lietotāji varētu viegli atrast analÄ«zei nepiecieÅ”amos datus. Turklāt varat izmantot papildu meklÄ“Å”anas risinājumus, piemēram, ElasticSearch. MeklÄ“Å”ana palÄ«dz lietotājam atrast nepiecieÅ”amos datus, izmantojot lietotājam draudzÄ«gu saskarni.
  4. Pārstrādes (Process) - Å”is solis ir atbildÄ«gs par datu apstrādi un pārveidoÅ”anu. Mēs varam pārveidot datus, mainÄ«t to struktÅ«ru, notÄ«rÄ«t tos un daudz ko citu.
  5. DroŔība (DroŔība) ā€” ir svarÄ«gi veltÄ«t laiku risinājuma droŔības dizainam. Piemēram, datu Å”ifrÄ“Å”ana uzglabāŔanas, apstrādes un ielādes laikā. Ir svarÄ«gi izmantot autentifikācijas un autorizācijas metodes. Visbeidzot, ir nepiecieÅ”ams revÄ«zijas rÄ«ks.

No praktiskā viedokļa datu ezeru varam raksturot ar trim atribūtiem:

  1. Savāc un uzglabā jebko ā€” datu ezers satur visus datus, gan neapstrādātos neapstrādātos datus par jebkuru laika periodu, gan apstrādātos/notÄ«rÄ«tos datus.
  2. Dziļā skenÄ“Å”ana ā€” datu ezers ļauj lietotājiem izpētÄ«t un analizēt datus.
  3. ElastÄ«ga piekļuve ā€” Datu ezers nodroÅ”ina elastÄ«gu piekļuvi dažādiem datiem un dažādiem scenārijiem.

Tagad mēs varam runāt par atŔķirÄ«bu starp datu noliktavu un datu ezeru. Parasti cilvēki jautā:

  • Kā ar datu noliktavu?
  • Vai mēs aizstājam datu noliktavu ar datu ezeru vai paplaÅ”inām to?
  • Vai joprojām var iztikt bez datu ezera?

ÄŖsāk sakot, skaidras atbildes nav. Viss atkarÄ«gs no konkrētās situācijas, komandas prasmēm un budžeta. Piemēram, datu noliktavas migrÄ“Å”ana uz Oracle uz AWS un Amazon meitasuzņēmuma Woot izveidotā datu ezera izveide. MÅ«su datu ezera stāsts: kā Woot.com uz AWS izveidoja datu ezeru bez serveriem.

No otras puses, pārdevējs Snowflake saka, ka jums vairs nav jādomā par datu ezeru, jo viņu datu platforma (lÄ«dz 2020. gadam tā bija datu noliktava) ļauj apvienot gan datu ezeru, gan datu noliktavu. Es neesmu daudz strādājis ar Snowflake, un tas patieŔām ir unikāls produkts, kas to spēj. Emisijas cena ir cits jautājums.

Visbeidzot, mans personÄ«gais viedoklis ir tāds, ka mums joprojām ir nepiecieÅ”ama datu noliktava kā galvenais datu avots mÅ«su pārskatu veidoÅ”anai, un visu, kas neatbilst, mēs glabājam datu ezerā. Visa analÄ«tikas loma ir nodroÅ”ināt uzņēmumiem vieglu piekļuvi lēmumu pieņemÅ”anai. Lai ko teiktu, biznesa lietotāji ar datu noliktavu strādā efektÄ«vāk nekā ar datu ezeru, piemēram, Amazon - ir Redshift (analÄ«tiskā datu noliktava) un Redshift Spectrum/Athena (SQL saskarne datu ezeram S3, pamatojoties uz Hive/Presto). Tas pats attiecas uz citām mÅ«sdienu analÄ«tisko datu noliktavām.

Apskatīsim tipisku datu noliktavas arhitektūru:

Vai mums ir nepiecieŔams datu ezers? Ko darīt ar datu noliktavu?

Tas ir klasisks risinājums. Mums ir avota sistēmas, izmantojot ETL/ELT, mēs kopējam datus analītisko datu noliktavā un savienojam ar Business Intelligence risinājumu (mans mīļākais ir Tableau, kā ar jums?).

Šim risinājumam ir Ŕādi trūkumi:

  • ETL/ELT operācijām nepiecieÅ”ams laiks un resursi.
  • Parasti atmiņa datu glabāŔanai analÄ«tiskajā datu noliktavā nav lēta (piemēram, Redshift, BigQuery, Teradata), jo mums ir jāiegādājas viss klasteris.
  • Biznesa lietotājiem ir piekļuve iztÄ«rÄ«tiem un bieži vien apkopotiem datiem, un viņiem nav piekļuves neapstrādātiem datiem.

Protams, tas viss ir atkarÄ«gs no jÅ«su gadÄ«juma. Ja jums nav problēmu ar jÅ«su datu noliktavu, tad jums vispār nav nepiecieÅ”ams datu ezers. Bet, ja rodas problēmas ar vietas trÅ«kumu, jaudu vai cenu spēlē galveno lomu, varat apsvērt datu ezera iespēju. Tāpēc datu ezers ir ļoti populārs. Å eit ir datu ezera arhitektÅ«ras piemērs:
Vai mums ir nepiecieŔams datu ezers? Ko darīt ar datu noliktavu?
Izmantojot datu ezera pieeju, mēs ielādējam neapstrādātus datus savā datu ezerā (paketē vai straumējot), pēc tam apstrādājam datus pēc vajadzÄ«bas. Datu ezers ļauj biznesa lietotājiem izveidot savas datu transformācijas (ETL/ELT) vai analizēt datus Business Intelligence risinājumos (ja ir pieejams nepiecieÅ”amais draiveris).

Jebkura analÄ«tikas risinājuma mērÄ·is ir apkalpot biznesa lietotājus. Tāpēc mums vienmēr jāstrādā atbilstoÅ”i biznesa prasÄ«bām. (Amazonā tas ir viens no principiem - darbs atpakaļ).

Strādājot gan ar datu noliktavu, gan datu ezeru, varam salīdzināt abus risinājumus:

Vai mums ir nepiecieŔams datu ezers? Ko darīt ar datu noliktavu?

Galvenais secinājums, ko var izdarÄ«t, ir tāds, ka datu noliktava nekonkurē ar datu ezeru, bet gan papildina to. Bet tas ir jÅ«su ziņā, lai izlemtu, kas ir piemērots jÅ«su gadÄ«jumam. Vienmēr ir interesanti paÅ”iem to izmēģināt un izdarÄ«t pareizos secinājumus.

Vēlos pastāstīt arī vienu no gadījumiem, kad sāku lietot datu ezera pieeju. Viss ir diezgan triviāls, mēģināju izmantot ELT rīku (mums bija Matillion ETL) un Amazon Redshift, mans risinājums strādāja, bet neatbilst prasībām.

Man vajadzēja ņemt tīmekļa žurnālus, pārveidot tos un apkopot, lai sniegtu datus par diviem gadījumiem:

  1. Mārketinga komanda vēlējās analizēt robotu darbību SEO
  2. IT vēlējās apskatīt vietnes veiktspējas rādītājus

Ä»oti vienkārÅ”i, ļoti vienkārÅ”i baļķi. Å eit ir piemērs:

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" "-" "-"

Viens fails svēra 1-4 megabaitus.

Bet bija viena grÅ«tÄ«ba. Mums bija 7 domēni visā pasaulē, un vienā dienā tika izveidoti 7000 tÅ«kstoÅ”i failu. Tas nav daudz lielāks apjoms, tikai 50 gigabaiti. Bet arÄ« mÅ«su Redshift klastera izmērs bija mazs (4 mezgli). Viena faila ielāde tradicionālā veidā aizņēma apmēram minÅ«ti. Tas nozÄ«mē, ka problēma netika atrisināta. Un tas bija gadÄ«jumā, kad es nolēmu izmantot datu ezera pieeju. Risinājums izskatÄ«jās apmēram Ŕādi:

Vai mums ir nepiecieŔams datu ezers? Ko darīt ar datu noliktavu?

Tas ir pavisam vienkārÅ”i (gribu atzÄ«mēt, ka mākonÄ« strādāŔanas priekÅ”rocÄ«ba ir vienkārŔība). ES izmantoju:

  • AWS elastÄ«gā kartes samazināŔana (Hadoop) skaitļoÅ”anas jaudai
  • AWS S3 kā failu krātuve ar iespēju Å”ifrēt datus un ierobežot piekļuvi
  • Spark kā InMemory skaitļoÅ”anas jauda un PySpark loÄ£ikai un datu pārveidoÅ”anai
  • Parkets Spark rezultātā
  • AWS Glue Crawler kā metadatu savācējs par jauniem datiem un nodalÄ«jumiem
  • Redshift Spectrum kā SQL interfeiss datu ezeram esoÅ”ajiem Redshift lietotājiem

Mazākais EMR+Spark klasteris apstrādāja visu failu kaudzi 30 minÅ«Å”u laikā. Ir arÄ« citi AWS gadÄ«jumi, Ä«paÅ”i daudzi, kas saistÄ«ti ar Alexa, kur ir daudz datu.

Nesen es uzzināju, ka viens no datu ezera trūkumiem ir GDPR. Problēma ir tad, kad klients lūdz to dzēst un dati atrodas kādā no failiem, mēs nevaram izmantot datu manipulācijas valodu un DELETE darbību kā datu bāzē.

Es ceru, ka Å”is raksts ir izskaidrojis atŔķirÄ«bu starp datu noliktavu un datu ezeru. Ja interesē, varu iztulkot vēl savus vai lasÄ«tos profesionāļu rakstus. Un arÄ« pastāstÄ«t par risinājumiem, ar kuriem strādāju, un to arhitektÅ«ru.

Avots: www.habr.com

Pievieno komentāru