Kako arhitektirati savršenu skladište podataka

Ključne tehnike skladištenja pojednostavljene

Skladištenje podataka: Pojednostavljeno

Na površini, može se činiti da se posljednjih godina mnogo promijenilo u pogledu prikupljanja, skladištenja i skladištenja podataka. Uvođenje i preuzimanje NoSQL, „velikih podataka“, grafičkih i strujnih tehnologija možda su promijenili krajolik, ali postoje neki temelji koji ostaju.

U mojoj trenutnoj ulozi koristimo Amazon Redshift za skladištenje podataka. Međutim, bilo da smo izgradili tradicionalno skladište podataka koristeći Oracle ili podatkovno jezero u Hadoopu, osnovna arhitektura ostala bi ista.

Jezgrana arhitektura svodi se na neko predradanje i tri odvojena područja (sheme ako koristite crveni pomak) pod nazivom Staging, Master i Reporting. U ovom postu ću detaljno razgovarati o njima.

predobrada

Nažalost, nisu svi podaci stvoreni jednako, ali to su podaci i zato imaju vrijednost.

Da bi se riješile složenosti vanjskih podataka, neka je predobrada gotovo neizbježna, posebno pri prikupljanju iz više različitih izvora. Glavni je cilj koraka predobrade dobiti podatke u dosljednom formatu koji se mogu učitati u skladište podataka.

To uključuje, ali nije ograničeno na:

  • Pretvaranje Excel proračunskih tablica u CSV
  • Analiza JSON podataka (skloni smo obraditi svaki objekt u jednom retku u jednom stupcu i pustiti Redshift da ga analizira, ali možete ga i unaprijed raščlaniti)
  • Čišćenje loših ili pogrešnih datoteka s podacima

Nakon što spremite, trebat će vam središnje mjesto za stavljanje ovih datoteka spremnih za učitavanje u skladište podataka.

Jedan primjer bi mogao biti stavljanje svih datoteka u kantu Amazon S3. Svestran je, jeftin i integrira se s mnogim tehnologijama. Ako koristite Redshift za svoje skladište podataka, to se odlično integrira i s tim.

skele

Područje prikazivanja je kruh i maslac u bilo kojem skladištu podataka.

Dobro skladište podataka uzima podatke iz različitih izvora. Svaki izvor podataka ima svoje nijanse, stilove i konvencije o imenovanju.

Područje za inscenaciju je mjesto gdje ćete sve ovo unijeti - najvjerojatnije od mjesta na koje ga stavljate nakon prethodne obrade (ali ne uvijek) - i pohraniti ga privremeno, sve dok ne bude dalje obrađeno.

Poput prostora za utovar u stvarnom skladištu. Mjesto na kojem se istovare brod nije konačno odredište ili konačni oblik materijala ili proizvoda. To je samo područje za držanje.
Fotografija Hannesa Eglera na Unsplash-u

Jednostavno vam omogućuje prvi put da imate sve podatke unutar granica skladišta spremne za daljnju obradu i modeliranje.

Moje osobno mišljenje je da bi podaci u području postupanja trebali biti što je moguće bliži sirovim (opet, morate izvršiti neke promjene prilikom prethodne obrade, ali to ne bi trebalo promijeniti ono što vam neobrađeni podaci govore). Možda biste čak željeli da izvorni nazivi stupaca i imena tablica ostanu isti. To olakšava pronalazak unatrag kada se istražuju ili prijavljuju problemi u izvoru.

Područje izvođenja bi se također trebalo promatrati kao prolazno.

Podatke bi trebali zadržati odabrano razdoblje u prostoru u kojem se vrše nakon čišćenja. Na primjer, možete zadržati rolo prozor s podacima koji vrijede mjesec dana u slučaju neuspjelog opterećenja ili bilo koje druge istrage.

To je posljednja točka u kojoj bi se podaci trebali smatrati sirovima. Od ovog trenutka podaci bi trebali biti u skladu sa standardima skladišta podataka.

Ovladati; majstorski

Glavna oblast je tamo gdje dolazni podaci poprimaju neki stvarni oblik.

Glavna shema treba sadržavati ispravno modelirane tablice koje su na odgovarajući način imenovane. Imena stupaca također trebaju biti ispravljena zajedno s njihovim vrstama podataka.

To olakšava razumijevanje što su tablice i što ih je lakše, sam po sebi poboljšavajući upotrebljivost. Baš kao i staroškolsko podnošenje dokumenata.

Fotografiju Drew Beamer na Unsplash

Prilikom premještanja podataka iz Staging u Master misao bi se trebala upustiti u njegovo čišćenje, stvari poput:

  • Standardiziranje svih formata datuma i vremenskih zona da budu isti (po potrebi)
  • Zaokruživanje brojeva ako je prikladno na manje decimalnih mjesta
  • Čišćenje žice da bi se moglo popraviti velika i mala slova ili ukloniti početni i krajni razmak
  • Standardiziranje adresa biti istog formata
  • Podjela podataka u više stupaca ili izdvajanje iz JSON-a
Također bih dao malo vremena da osiguram da se nazivi stupaca za stupce koji se pridružuju, podudaraju.

Na primjer, ako imate korisničke podatke iz nekih web dnevnika, pohranjivanje vaših podataka u MongoDB i možda neke podatke o oglašavanju o korisnicima. Svi će nadamo se da će sadržavati jedinstveni identifikator korisnika. Međutim, oni ga možda ne mogu nazvati istom.

Standardiziranjem imena stupaca postaje lako i vama ili bilo kojem drugom korisniku vaših podataka da intuitivno shvatite koji se podaci mogu povezati.

Kao podatkovni inženjer ovo je krajnji krajnji cilj.

Imate podatke koji su čisti i na odgovarajući način da se podudaraju s poslovnim jezikom, po uzoru na ispravno spreman za bilo kakva istraživanja ili proračune koji će se obaviti nizvodno.

Izvještavanje

Bazni radovi se obavljaju. Pripremili smo i konzumirali, modelirali i čistili. Sada želimo svoje nove sjajne podatke izložiti svijetu. Tu dolazi sloj za izvještavanje.

U ovom trenutku, ako koristite skladište podataka na temelju retka u Oracleu, možete sastaviti neke tablice činjenica i grafikone podataka. Ovo je potpuno razuman slučaj upotrebe za izvještajni sloj jer na njega možete staviti bilo koji pristojni alat za izvješćivanje i bilo bi dobro.

Međutim, neke od tih tradicionalnih tehnika skladištenja podataka imaju učinkovitost u vidu rješenja za pohranu koja se temelje na odijelima kao što je Oracle. Ovi su sustavi učinkoviti pri spajanju podataka, ali redovi s mnogim stupcima nisu učinkoviti, uglavnom zbog pristupa temeljenog na retcima koji se moraju nositi s cijelim retkom, čak i ako je za upit potrebno samo nekoliko stupaca.

Ako koristite skladišta podataka temeljenog na stupcu, poput Amazon Redshift-a, vaš pristup bi trebao biti drugačiji. Redshift ne smeta široke tablice, a poništavanje dimenzija i činjenica na jednoj tablici preferira se u odnosu na više dimenzija.

Prednosti modeliranja vaših podataka na ovaj način kada koristite Redshift uključuju:

  • Poboljšana učinkovitost jer je Redshift sretniji kada se nosi sa širokim stolovima nego sa puno pridruživanja.
  • Jednostavna upotreba za krajnje korisnike ili analitičare koji nisu toliko uspješni kao model podataka jer se ne moraju boriti s pridruživanjima.
  • Jednostavnije je ispitivati ​​jer su svi podaci potrebni za prijavljeni entitet na jednom mjestu.
Fotografija Micheile Henderson na Unsplash

Na primjer, recimo da želite prijaviti svoje kupce. Imate tablicu korisnika, tablicu narudžbi, tablicu marketinških dnevnika i neke podatke web analitike unutar vašeg škripavog čistog glavnog sloja.

U Redshift-u, unutar sloja Reporting (Izvještavanje), izradili biste tablicu korisnika. To bi sadržavalo bilo koje standardne podatke o kupcima (umanjeno za njihove osobne podatke, jer ih ne bi trebali zahtijevati za izvješćivanje), kao što su datum registracije, možda poštanski broj itd.

Možete odabrati ako su se registrirali na mobilnom uređaju ili su vam instalirali aplikaciju za pametni telefon ili desktop.

Možete se pridružiti podacima narudžbe i izgraditi neke stupce s činjenicama, kao što su, ukupno potrošeni do danas, datum prvog naloga, posljednji datum narudžbe, broj narudžbi.

Marketinška tablica učinili biste isto i stvorili neke relevantne činjenice poput brojeva e-poruka poslanih, otvorenih i kliknutih itd.

Na temelju web-analize možete potražiti njihov posljednji datum posjeta web lokaciji, njihov omiljeni uređaj, najčešće vrstu uređaja (stolni, mobilni itd.) Itd.

Dobivate sliku.

Sve to rezultira u super širokoj tablici kupaca sa svim relevantnim dimenzijama i činjenicama. Vaši analitičari mogu to iskoristiti za izračunavanje svega, od stope akvizicije, promjene u korištenju uređaja preko korisničke baze, kupaca velike vrijednosti (i svih zajedničkih stavki među njima), jačanja kupca i angažmana i još mnogo toga.

Sve to s jednog mjesta, bez spajanja i većine teških dizanja obavljenih kako treba, koristeći snagu skladišta podataka.

Skladišta podataka obično nisu jeftina i doslovno su dizajnirana za drobljenje podataka. Iskoristite maksimum, učinite ovdje koliko god možete. Oslobodite svoje analitičare da iskopaju uvide umjesto da čekaju manje bezobrazan poslužitelj za izvješćivanje da obavi naporan posao.

Možda ćete otkriti da su i više nego samo analitičari spremni ako to dovoljno i brzo učinite dovoljno brzim.

U sažetku

Slijedeći ovaj jednostavan pristup, vjerujem da možete izgraditi potpuno funkcionalno skladište podataka koje je ne samo lako proširiti, već i razumjeti.

Možda biste svoje slojeve postavljanja, gospodarenja i izvješćivanja trebali smatrati logičnim stvarima. Ovo će možda uspjeti za vas. Radije ih držim fizički odvojenima jer se ne samo čiste, već vam omogućuju da ograničite ono što krajnji korisnici mogu koristiti i vidjeti iz prethodnih stanja.