Co to są OLTP i OLAP. Jaka jest różnica między nimi?

294

Co właściwie oznaczają? Wszystkie artykuły na ich temat nie dają mi pomysłu lub moja wiedza jest zbyt niewystarczająca, aby je zrozumieć.

Czy ktoś da mi zasoby, dzięki którym mogę nauczyć się tego od zera.

Amarnath R. Shenoy
źródło
8
Przejdź do datawarehouse4u.info/OLTP-vs-OLAP.html, aby rozpocząć, a następnie po prostu skorzystaj z Google, aby uzyskać więcej linków na temat szczegółów i różnic
Incognito
1
Ok, więc proste operacje DB są w kategorii OLTP, a złożone przetwarzanie dużych danych odbywa się w OLAP, czy to podstawowa koncepcja, prawda?
Amarnath R Shenoy
1
@AmarnathRShenoy tak wstaw, zaktualizuj, usuń zajmie się OLTP
Nagaraj S
9
@AmarnathRShenoy Powinieneś naprawdę włożyć więcej wysiłku w badanie tematu. Dwa zasoby podane w odpowiedzi Nagaraj S. to dosłownie dwie pierwsze strony zwrócone przez Google. Oszukasz się z wiedzy, kiedy pozwalasz komuś innemu wykonać za ciebie pracę. Wskazówki dotyczące pisania lepszych pytań SO można znaleźć na stronie pomocy SO: Jak zadać pytanie ? .
Austin A

Odpowiedzi:

363

Tutaj znajdziesz lepsze rozwiązanie OLTP vs. OLAP

  • OLTP (przetwarzanie transakcji on-line) bierze udział w działaniu konkretnego systemu. OLTP charakteryzuje się dużą liczbą krótkich transakcji on-line (WSTAW, AKTUALIZACJA, USUŃ). W systemach OLTP główny nacisk kładziony jest na bardzo szybkie przetwarzanie zapytań, utrzymanie integralności danych w środowiskach wielodostępowych i skuteczność mierzoną liczbą transakcji na sekundę. W bazie danych OLTP są szczegółowe i aktualne dane, a schematem służącym do przechowywania transakcyjnych baz danych jest model jednostki (zwykle 3NF). Obejmuje zapytania mające dostęp do poszczególnych rekordów, takie jak aktualizacja adresu e-mail w bazie danych firmy.

  • OLAP (przetwarzanie analityczne on-line) zajmuje się danymi historycznymi lub danymi archiwalnymi. OLAP charakteryzuje się stosunkowo niskim wolumenem transakcji. Zapytania są często bardzo złożone i wymagają agregacji. W przypadku systemów OLAP czas reakcji jest miarą skuteczności. Aplikacje OLAP są szeroko stosowane w technikach Data Mining. W bazie danych OLAP znajdują się zagregowane, historyczne dane, przechowywane w schematach wielowymiarowych (zwykle schemat gwiazdy). Czasami zapytanie wymaga dostępu do dużej ilości danych w rekordach zarządzania, takich jak zysk Twojej firmy w ubiegłym roku.

Nagaraj S.
źródło
7
Bardzo jasne informacje. Dziękuję za podzielenie się, pomógł mi wyjaśnić moje wątpliwości.
CapturedTree,
Do czego odnosi się „OL”?
Zach Smith
Jeśli inni również potrzebują odświeżenia: 3NF jest normalną formą używaną w normalizacji projektu bazy danych w celu ograniczenia powielania danych i zapewnienia integralności referencyjnej
Martin Thoma,
1
OL oznacza „ONLINE”, co oznacza zakończenie przetwarzania danych w czasie rzeczywistym, a nie przetwarzanie wsadowe.
Ganesh Jadhav,
229

Bardzo krótka odpowiedź:

Różne bazy danych mają różne zastosowania. Nie jestem ekspertem od baz danych. Praktyczna zasada:

  • jeśli wykonujesz analizy (np. agregujesz dane historyczne), użyj OLAP
  • jeśli wykonujesz transakcje (np. dodawanie / usuwanie zamówień w koszyku e-commerce) użyj OLTP

Krótka odpowiedź:

Rozważmy dwa przykładowe scenariusze:

Scenariusz 1:

Budujesz sklep / stronę internetową i chcesz:

  • przechowuj dane użytkownika, hasła, poprzednie transakcje ...
  • przechowuj rzeczywiste produkty i związane z nimi ceny

Chcesz znaleźć dane dla konkretnego użytkownika, zmienić jego nazwę ... po prostu wykonaj operacje WSTAW, AKTUALIZUJ, USUŃ na danych użytkownika. To samo z produktami itp.

Chcesz mieć możliwość dokonywania transakcji, prawdopodobnie z udziałem użytkownika kupującego produkt (to jest relacja). Zatem OLTP jest prawdopodobnie dobrym dopasowaniem.

Scenariusz 2:

Masz sklep / stronę internetową i chcesz obliczyć takie rzeczy

  • „łączne pieniądze wydane przez wszystkich użytkowników”
  • „jaki jest najczęściej sprzedawany produkt”

To należy do dziedziny analityki / wywiadu gospodarczego, dlatego OLAP jest prawdopodobnie bardziej odpowiedni.

Jeśli myślisz w kategoriach „Byłoby miło wiedzieć, jak / co / ile” ... i dotyczy to wszystkich „obiektów” jednego lub więcej rodzajów (np. Wszystkich użytkowników i większości produktów, aby poznać całkowity wydany), wtedy OLAP jest prawdopodobnie bardziej odpowiedni.

Dłuższa odpowiedź:

Oczywiście rzeczy nie są takie proste. Dlatego musimy używać krótkich tagów jak OLTPi OLAPna pierwszym miejscu. Każda baza danych powinna zostać ostatecznie oceniona niezależnie.

Jaka może być podstawowa różnica między OLAP a OLTP?

Cóż, bazy danych muszą gdzieś przechowywać dane. Nie powinno dziwić, że sposób przechowywania danych w dużej mierze odzwierciedla możliwe wykorzystanie tych danych. Dane są zwykle przechowywane na dysku twardym. Pomyślmy o dysku twardym jak o naprawdę szerokim arkuszu papieru, na którym możemy czytać i pisać. Istnieją dwa sposoby organizowania naszych odczytów i zapisów, aby były wydajne i szybkie.

Jednym ze sposobów jest stworzenie książki przypominającej książkę telefoniczną . Na każdej stronie książki przechowujemy informacje dotyczące konkretnego użytkownika. To miłe, możemy bardzo łatwo znaleźć informacje dla konkretnego użytkownika! Po prostu przejdź do strony! Możemy nawet mieć specjalną stronę na początku, aby powiedzieć nam, na której stronie są użytkownicy, jeśli chcemy. Ale z drugiej strony, jeśli chcemy znaleźć, powiedzmy, ile pieniędzy wydali wszyscy nasi użytkownicy, musielibyśmy przeczytać każdą stronę, czyli całą książkę! To byłaby książka / baza danych oparta na wierszach (OLTP). Opcjonalną stroną na początku byłby indeks.

Innym sposobem wykorzystania naszej dużej kartki papieru jest zrobienie księgi rachunkowej . Nie jestem księgowym, ale wyobraźmy sobie, że mielibyśmy stronę z „wydatkami”, „zakupami” ... To miłe, ponieważ teraz możemy bardzo szybko zapytać o takie rzeczy, jak „daj mi całkowity przychód” (po prostu przeczytaj „zakupy” „strona). Możemy również poprosić o bardziej zaangażowane rzeczy, takie jak „daj mi dziesięć najlepiej sprzedanych produktów” i nadal zachowuj akceptowalną wydajność. Ale teraz zastanów się, jak bolesne byłoby znalezienie wydatków dla konkretnego użytkownika. Będziesz musiał przejrzeć całą listę wydatków wszystkich i filtrować wydatki tego konkretnego użytkownika, a następnie zsumować je. Co w zasadzie oznacza „ponowne przeczytanie całej książki”. To byłaby baza danych oparta na kolumnie (OLAP).

Wynika z tego, że :

  • OLTP bazy danych są przeznaczone do wykonywania wielu małych transakcji i zwykle służą jako „pojedyncze źródło prawdy”.

  • OLAP bazy danych z drugiej strony są bardziej odpowiednie do analizy, eksploracji danych, mniej zapytań, ale zwykle są większe (działają na większej ilości danych).

Jest to trochę bardziej zaangażowane niż oczywiście i to przegląd 20 000 stóp na temat różnic między bazami danych, ale pozwala mi nie zgubić się w morzu akronimów.

Mówiąc o akronimach:

  • OLTP = Przetwarzanie transakcji online
  • OLAP = Online przetwarzanie analityczne

Aby przeczytać dalej, oto kilka istotnych linków, które mocno zainspirowały moją odpowiedź:

nha
źródło
39
ładne podejście z wykorzystaniem różnych poziomów objaśnień, dostępnego języka i konkretnych przykładów. model dla osób odpowiadających na pytania w przepełnieniu stosu.
ribamar
2
Świetna, niesamowita odpowiedź! Najlepszy jak dotąd w SO! Daj temu człowiekowi medal!
Pedro Gordo,
1
Bardzo łatwo to zrozumieć!
The One
3
„W razie wątpliwości używam tylko języka SQL”. - SQL jest językiem i to nie odpowiada na pytanie. Istnieją wszelkiego rodzaju systemy mgmt danych, które wiedzą, jak interpretować SQL i tłumaczyć go do pracy z wszelkiego rodzaju źródłami danych za maską. Można tworzyć zapytania sql nawet w ramkach danych Spark. To tak, jakby powiedzieć „w razie wątpliwości używam tylko html”. Ok, to krótka odpowiedź, ale głupia
Radu Simionescu
1
Tak, to, co proponujesz, byłoby poprawą, z obu powodów. Oczywiście nie byłoby to zgodne z tematem, ale to nie ma sensu. Twoje zdrowie !
Cbhihe
24

Różnica jest dość prosta:

OLTP (przetwarzanie transakcji online)

OLTP to klasa systemów informatycznych, które ułatwiają i zarządzają aplikacjami zorientowanymi na transakcje. OLTP został również użyty w odniesieniu do przetwarzania, w którym system natychmiast odpowiada na żądania użytkowników. Aplikacje do przetwarzania transakcji online charakteryzują się wysoką przepustowością i wymagają wstawiania lub intensywnych aktualizacji w zarządzaniu bazą danych. Niektóre przykłady systemów OLTP obejmują wprowadzanie zamówień, sprzedaż detaliczną i systemy transakcji finansowych.

OLAP (Online Analytical Processing)

OLAP jest częścią szerszej kategorii inteligencji biznesowej, która obejmuje również relacyjną bazę danych, pisanie raportów i eksplorację danych. Typowe zastosowania OLAP obejmują raportowanie biznesowe dla sprzedaży, marketing, raportowanie zarządcze, zarządzanie procesami biznesowymi (BPM), budżetowanie i prognozowanie, raportowanie finansowe i podobne obszary.

Zobacz więcej szczegółów OLTP i OLAP

Serhii Burkovskyi
źródło
6

OLTP-: OLTP oznacza przetwarzanie transakcji online, które służy do zarządzania bieżącymi informacjami o danych z dnia na dzień. OLAP-: OLAP oznacza analityczne przetwarzanie online, które służy do przechowywania historii danych i służy głównie do analizy danych i może być również nazywane hurtownią.

rakesh singh
źródło
-6

oltp - głównie używany do transakcji biznesowych. używany do zbierania danych biznesowych. W sql używamy polecenia wstawiania, aktualizacji i usuwania do pobierania małego źródła danych. w przeciwieństwie do nich są one wysoce znormalizowane .... OLTP Używany głównie do zachowania integralności danych.

olap - głównie do celów sprawozdawczych, eksploracji danych i analiz biznesowych. w przypadku dużych lub masowych danych celowo jest zdenormalizowany. przechowuje dane historyczne ..

Vikrant Solanke
źródło
Dlaczego zostało to zanegowane, wydaje się, że jest takie samo, jak powiedziane w innych odpowiedziach: oltp dla CRUD, olap dla agregatów?
ychaouche
1
@ychaouche prawdopodobnie dlatego, że jest już więcej niż 3 odpowiedzi o podobnym znaczeniu. Według daty jest to najnowsza odpowiedź, a mimo to nie pomaga ani nie obsługuje istniejących odpowiedzi. Jednak użytkownik postanowił dodać własną wersję odpowiedzi, która wciąż jest niekompletna i brak wyjaśnień.
Irfandy Jip