Różnice pomiędzy bazami a hurtowniami danych

0

Witajcie, potrzebuję materiałów do pracy zaliczeniowej. Mógłby ktoś napisać coś więcej o wyżej wymienionym zagadnieniu?

2

Hurtownia danych sama w sobie to również baza danych - zawierająca wymiary, tabele faktów oraz miary. Dopiero proces ETL + Hurtownia danych + analiza wielowymiarowa daje nam odpowiedzi na wiele pytań wielowymiarowych, na które mając tylko bazę danych nie jesteśmy wstanie odpowiedzieć. Przykładowo w bazie danych transakcji w banku przechowuje informacje o klientach, ich transakcjach, kontach. Teraz np. chcielibyśmy dokonać klasyfikacji klientów np. jaki profil klientów najczęściej korzysta z przelewów elektronicznych. Same dane nie pomogą nam w tym, dopiero zbudowanie hurtowni o odpowiedniej architekturze może nam dać na to odpowiedź.

Hurtownie danych mają inną architekturę, wspomniałem o wymiarach, miarach i tabelach faktów. Jednakże należy tutaj wspomnieć o modelach płatku śniegu, gwiazdy czy konstelacji faktów.

Ogólnie można by o tym bardzo dużo napisać, ale jak to praca zaliczeniowa to proszę sobie podłubać w necie, ewentualnie w literaturze.

5

Baza danych transakcyjna:

  • przechowuje stan bieżący systemu, odpowiada za działalność operacyjną firmy (np. przyjmowanie i realizację zamówień)
  • pozwala na szybkie dodawanie, wyszukiwanie, modyfikację, usuwanie małych ilości danych jednorazowo
  • zapytania zwykle proste, po kluczu głównym, zwracają niewielkie ilości danych
  • czasy odpowiedzi na zapytania - zwykle < 10 ms
  • brak złożonych obliczeń po stronie bazy
  • na ogół wymagana jakaś forma transakcyjności / kontroli spójności danych (np. ACID, blokady, 2PC/3PC/Paxos, Quorum consistency itp.)
  • niezbyt duże ilości danych (wyłączając multimedia), na ogół mieszczące się na jednym serwerze - 500 GB to już całkiem pokaźna baza
  • wymagany bardzo wysoki poziom niezawodności i odporności na awarie

Hurtownia danych:

  • przechowuje stan historyczny - zwykle wszystko co się działo od momentu uruchomienia do bieżącej chwili (choć czasem do poprzedniego dnia, albo do oprzedniego miesiąca)
  • dane głównie dopisywane, brak modyfikacji czy kasowania danych podczas normalnego działania hurtowni
  • dane kasowane hurtowo, zwykle jak się przedawnią; ewentualnie jak "coś poszło nie tak"
  • złożone zapytania wymagające przejrzenia dużej ilości danych na raz, agregacje, sortowanie, wielopoziomowe złączenia
  • często wieloetapowe analizy danych, budowanie modeli statystycznych za pomocą trudnych algorytmów
  • czasy odpowiedzi na zapytania liczone w minutach, godzinach, a czasem dniach
  • brak transakcji
  • ilość danych liczona w dziesiątkach TB, a czasami i w PB
  • awarie znacznie lepiej tolerowane - krótka awaria na ogół nie paraliżuje pracy firmy, co najwyżej szef poczeka dłużej na podsumowanie wyników sprzedaży, a klient poczeka dzień dłużej na decyzję o kredycie (uwaga: nie dotyczy systemów analitycznych działających w real-time)

Czasami jedno i drugie może być realizowane przez ten sam system baz danych.

1

Dodałbym jeszcze, że w bazach transakcyjnych dąży się do normalizacji (z wyjątkiem jakichś hacków wydajnościowych), w hurtowniach dane są często zdenormalizowane, aby przyspieszyć raportowanie/analizę.

0

Dziękuję za odpowiedzi

Czy jeśli tak napiszę w pracy to dobrze, zgadzacie się z tym?

"..Należy więc stwierdzić, że bazy danych zawierają się w hurtowniach danych – są ich jedną z podstawowych części składowych. Na tych bazach danych dopiero, możliwe są do przeprowadzenia procesy ETL wraz z analizą wymiarową, które w konsekwencji są w stanie dostarczyć, informacji na temat postawionych zbiorowi danych zapytań. Baza danych wraz z takimi działaniami konstruuje w rezultacie definicję hurtowni danych. "

Czyli baza danych to coś statycznego, a hurtownia danych to coś dynamicznego gdzie są możliwe głębokie badania, dobrze rozumiem? Procesem który tak głęboko sięga w dane i wyciąga z nich informacje/wiedzę jest data mining, tak?

0
Złoty Mleczarz napisał(a):

Dziękuję za odpowiedzi

Czy jeśli tak napiszę w pracy to dobrze, zgadzacie się z tym?

"..Należy więc stwierdzić, że bazy danych zawierają się w hurtowniach danych – są ich jedną z podstawowych części składowych. Na tych bazach danych dopiero, możliwe są do przeprowadzenia procesy ETL wraz z analizą wymiarową, które w konsekwencji są w stanie dostarczyć, informacji na temat postawionych zbiorowi danych zapytań. Baza danych wraz z takimi działaniami konstruuje w rezultacie definicję hurtowni danych. "

Czyli baza danych to coś statycznego, a hurtownia danych to coś dynamicznego gdzie są możliwe głębokie badania, dobrze rozumiem? Procesem który tak głęboko sięga w dane i wyciąga z nich informacje/wiedzę jest data mining, tak?

Absolutnie nie !

Hurtownia danych wykorzystuje proces ETL - Extract, Transform,Load do wyciągania danych ze źródeł (baz danych, plików etc). Proces ETL zasila hurtownię danych, która fizycznie jest bazą danych o specjalnej strukturze, zawierającą wymiary, miary i fakty. Na tym zebranym zbiorze możemy przeprowadzać analizę wielowymiarową - poprzez budowę tzw. "kostek OLAP" czy z wykorzystaniem metod eksploracji danych - data miningu.

Pojęcie statyczne czy dynamiczne w stosunku do bazy czy hurtowni danych to jakaś sprzeczność. No dobrze owszem, kiedy w bazie przechowywalibyśmy tylko dane słownikowe to może i by to nazwać można bazą statyczna.

0

Rozumiem, czyli hurtownia danych to twór, który jest narzędziem do wyciągania odpowiedzi na dane pytanie, z informacji z różnych/połączonych innych baz danych. W hurtowni danych mam możliwość połączenia kilku baz, w zależności od tego czego potrzebuję i wykonania rozmaitych przekształceń danych, aby wyciągnąć to co z nich potrzebuję. Baza danych to jedna baza z jakimiś danymi np. pracowników. A jak chcę dowiedzieć się w którym okresie, w którym państwie była największa sprzedaż danego towaru, wtedy biorę powiedzmy 4 tabele czasu, towarów, zamówień i sprzedaży i po kluczach łączę je w inną baze danych - i ta baza danych jest teraz hurtownią danych z której mogę wyciągnąć tą wiedzę, tak? np. za pomocą kostki OLAP, czyli wielu wymiarów wyświetlenia wyniku (że dany towar w danym miejscu, i jeszcze potem okresie czasu). Teraz zgadzasz się że dobrze rozumiem? ;)

0

Hurtownia danych to baza danych o strukturze przystosowanej do wykonywania analiz. Hurtownia to baza, więc nie można powiedzieć, że "bazy zawierają się w hurtowaniach" - jest raczej wręcz odwrotnie.
ETL to proces napełniania hurtowni danymi z baz transakcyjnych i innych źródeł danych.

W praktyce jedna baza danych nie może być jednocześnie bazą transakcyjną i hurtownią, bo je projektuje się pod innymi kątami - baza transakcyjne ma umożliwić wiele operacji tworzenia, modyfikacji i usuwania danych przez wielu użytkowników równocześnie, hurtownie zaś optymalizowane są pod kątem szybkiego odczytu danych, niczego się w nich nie modyfikuje ani nie usuwa, jedynie dodaje nowe dane - w procesie ETL, np. raz na dobę albo raz na miesiąc.
I jeszcze taka uwaga - hurtownia nie musi być oparta o relacyjną bazę danych, jest też coś takiego jak MOLAP.

1 użytkowników online, w tym zalogowanych: 0, gości: 1