EDW #4: Siedem warstw

https://xpil.eu/PTY

Ten wpis nale偶y do serii wpis贸w po艣wi臋conych architekturze hurtowni danych.

Zgodnie z obietnic膮, dzi艣 zakaszemy r臋kawy i w ko艅cu troch臋 sobie pobrudzimy r臋ce konkretami.

Hurtownia danych, kt贸r膮 opisuj臋 w niniejszej serii, sk艂ada si臋 z siedmiu warstw logicznych. Ka偶da z nich pe艂ni okre艣lon膮 rol臋. W gotowym rozwi膮zaniu dane p艂yn膮 od warstwy #1 do warstwy #7. Tak naprawd臋 celem tej serii jest pokazanie Czytelnikowi owych siedmiu warstw, logiki przep艂ywu danych mi臋dzy nimi, sposobu ich implementowania, a tak偶e p艂yn膮cych z takiego podej艣cia zalet (oraz nielicznych wad).

Przypuszczam, 偶e wi臋kszo艣膰 ludzi czytaj膮cych ten wpis po raz pierwszy w艂a艣nie drapie si臋 (wirtualnie b膮d藕 rzeczywi艣cie) palcem w g艂ow臋 i my艣li sobie: "hy? siedem warstw? a mo偶e by tak, urwa艂, od razu siedemna艣cie, albo pi艅cet, hy? pierdziel臋, nie czytam dalej, bess臋s贸..."

Je偶eli takie (lub podobne) my艣li w艂a艣nie przemkn臋艂y Ci, Czytelniku, przez g艂ow臋, to dobrze. Cz艂owiek pod艣wiadomie d膮偶y do upraszczania sobie 偶ycia, a siedem warstw nie brzmi na pocz膮tek zbyt zach臋caj膮co. Zapewniam jednak, nie taki diabe艂 straszny, jak go maluj膮. Zanim uciekniesz w pop艂ochu, 偶eby ogl膮da膰 艣mieszne koty, zechciej pozosta膰 tu jeszcze przez chwil臋.

Pami臋ta kto艣 jeszcze skecz "Dziesi臋膰 przykaza艅" Carlina? Facet redukuje tam - na oczach rozbawionej do 艂ez publiczno艣ci - dziesi臋膰 przykaza艅 do zaledwie dw贸ch, po czym dodaje jedno od siebie.

Podobnie sprawa ma si臋 tutaj, tylko bez rozw艣cieczania moher贸w.

Spo艣r贸d bowiem wspomnianych siedmiu warstw dwie skrajne s膮 poza nasz膮 kontrol膮.

Zostaje pi臋膰.

Z tych pi臋ciu dwie s膮 opcjonalne.

Zostaj膮 trzy.

Z tych trzech jedna jest dla u偶ytkownik贸w t臋pych lub leniwych - je偶eli wi臋c wi臋kszo艣膰 naszych u偶ytkownik贸w ma troch臋 oleju w g艂owie, mo偶emy t臋 jedn膮 potraktowa膰 opcjonalnie (lub po macoszemu) bez utraty jako艣ci ani funkcjonalno艣ci ca艂ego rozwi膮zania.

A wi臋c z gro藕nych siedmiu warstw zeszli艣my do, pi x oko, dw贸ch lub trzech. A to ju偶 nie brzmi tak 藕le, prawda?

No dobrze. Obieca艂em konkrety, przejd藕my wi臋c do konkret贸w.

Nasz projekt hurtowni danych b臋dzie oparty na nast臋puj膮cych warstwach logicznych:

  1. Systemy 藕r贸d艂owe
  2. Stage
  3. Landing
  4. Cross Reference
  5. EDW
  6. Data Marts
  7. Konsumenci

Dzi艣 om贸wi臋 pokr贸tce ka偶d膮 z wy偶ej wymienionych warstw, natomiast w kolejnych odcinkach serii przyjrzymy si臋 ka偶dej warstwie z bliska. Zobaczymy r贸wnie偶, w jaki spos贸b rozbudowa膰 DW o dodatkowe rozwi膮zania (na przyk艂ad modu艂 DQ - Data Quality - albo MDH - Master Data Hub) bez ryzyka totalnej rozpierduchy.

Systemy 藕r贸d艂owe to nic innego jak, khem, jak by to uj膮膰... no, systemy 藕r贸d艂owe. W ka偶dej odpowiednio skomplikowanej firmie pr臋dzej czy p贸藕niej dochodzi do sytuacji, w kt贸rej mamy troch臋 / du偶o / mn贸stwo (zb臋dne skre艣li膰) system贸w komputerowych realizuj膮cych konkretne cele, kt贸re to systemy "nie wiedz膮" o sobie nawzajem (albo w og贸le, albo prawie w og贸le). Czasem m贸wimy tu o systemach zewn臋trznych dostawc贸w danych (na przyk艂ad kursy walut czy jakie艣 dane statystyczne). Czasem b臋dzie to folder z zylionem plik贸w CSV lub XLS. Czasem jaka艣 baza danych. Czasem webservice. I tak dalej - czym chata bogata. Ta warstwa pozostaje (na og贸艂 - bo s膮 wyj膮tki) poza nasz膮 kontrol膮, jest jednak kluczowa dla dzia艂ania DW, poniewa偶 dostarcza danych do pracy hurtowni.

Stage to pierwsza warstwa DW, nad kt贸r膮 mamy pe艂n膮 kontrol臋. Tutaj przechowujemy dane sp艂ywaj膮ce z system贸w 藕r贸d艂owych. Dane w warstwie stage s膮 (z pewnymi wyj膮tkami) dok艂adn膮 kopi膮 danych 藕r贸d艂owych. Mamy je jednak "po naszej stronie", a wi臋c je偶eli jaki艣 system 藕r贸d艂owy ulegnie awarii lub na przyk艂ad jest akurat przeci膮偶ony i nie mo偶na z niego czyta膰, mamy "swoj膮" kopi臋 danych z tego systemu i mo偶emy jej u偶ywa膰 kiedy tylko nam si臋 spodoba oraz w dowolny spos贸b.

Landing i Cross Reference - te dwie warstwy s艂u偶膮 do dopasowywania danych z r贸偶nych system贸w. Je偶eli, dajmy na to, dane o klientach sp艂ywaj膮 do DW z systemu fakturuj膮cego oraz z systemu CRM, warstwy Landing i Cross Reference maj膮 za zadanie rozpoznanie, kt贸re rekordy z obydwu system贸w nale偶膮 do tego samego klienta, oraz odpowiednie przygotowanie tych rekord贸w do dalszej obr贸bki.

EDW to najcenniejsza cz臋艣膰 DW. Tutaj przechowujemy znormalizowane, dopasowane dane, kt贸re w zasadzie ju偶 nadaj膮 si臋 do wykorzystania przez ko艅cowego u偶ytkownika.

Data Marts to obszar, w kt贸rym przechowujemy dane wyci膮gni臋te z EDW oraz (na og贸艂) zdenormalizowane w taki spos贸b, 偶eby maksymalnie u艂atwi膰 korzystanie z nich przeci臋tnemu zjadaczowi bit贸w. Dane w warstwie Data Marts podzielone s膮 na fakty i wymiary. W najprostszym wariancie mo偶e to by膰 zbi贸r widok贸w zbudowanych na bazie EDW. Cz臋艣ciej jednak b臋d膮 to zmaterializowane dane, umo偶liwiaj膮ce budowanie na ich bazie wydajnych rozwi膮za艅 raportuj膮cych.

Konsumenci to warstwa poza nasz膮 kontrol膮 - reprezentuje ona ko艅cowych u偶ytkownik贸w DW, kt贸rzy b臋d膮 korzystali z danych. Mog膮 oni 偶膮da膰 r贸偶nych kana艂贸w dost臋pu do danych: ekstrakty csv, xml, xls, mdb, 藕r贸d艂a zgodne z odbc, webservice, silniki raportuj膮ce typu SSRS, Cognos czy Crystal Reports i tak dalej. Konsumenci 艣wiadomi mog膮 u偶ywa膰 danych bezpo艣rednio z EDW. Konsumenci leniwi sk艂oni膮 si臋 raczej ku Data Marts.

W zale偶no艣ci od tego, jaki mamy bud偶et, a tak偶e (co wa偶niejsze) jak bardzo planujemy rozbudowa膰 DW i jakich ilo艣ci danych si臋 docelowo spodziewamy, warstwy 2-6 mo偶na zbudowa膰 albo na r贸偶nych serwerach, dzi臋ki czemu przetwarzanie danych w ka偶dej warstwie b臋dzie przebiega艂o bez zak艂贸cania warstw s膮siednich, albo na tym samym serwerze, ale w r贸偶nych bazach danych (dzi臋ki temu co prawda b臋dziemy u偶ywa膰 tego samego CPU, ale przynajmniej mo偶emy porozk艂ada膰 bazy na r贸偶nych dyskach fizycznych, co powinno przyspieszy膰 - zr贸wnolegli膰 - operacje I/O), albo od biedy trzyma膰 wszystko w jednej bazie, w r贸偶nych schemas, dzi臋ki czemu mo偶emy wystartowa膰 ze wzgl臋dnie niedu偶ym bud偶etem.

https://xpil.eu/PTY

Leave a Comment

Komentarze mile widziane.

Je偶eli chcesz do komentarza wstawi膰 kod, u偶yj sk艂adni:
[code]
tutaj wstaw sw贸j kod
[/code]

Je偶eli zrobisz liter贸wk臋 lub zmienisz zdanie, mo偶esz edytowa膰 komentarz po jego zatwierdzeniu.