Was sind OLTP und OLAP? Was ist der Unterschied zwischen ihnen?

294

Was meinen sie eigentlich? Alle Artikel, die ich über sie finde, geben mir keine Idee, oder mein Wissen ist zu unzureichend, um es zu verstehen.

Wird mir jemand einige Ressourcen geben, mit denen ich dies von Grund auf lernen kann?

Amarnath R Shenoy
quelle
8
Weitere Informationen zu Details und Unterschieden finden Sie unter datawarehouse4u.info/OLTP-vs-OLAP.html und dann einfach bei Google
Incognito,
1
Ok, so einfache DB-Operationen sind in der OLTP-Kategorie und komplexe Verarbeitung großer Datenmengen in OLAP. Das ist das Basiskonzept, oder?
Amarnath R Shenoy
1
@AmarnathRShenoy ja einfügen, aktualisieren, löschen wird mit OLTP
Nagaraj S
9
@AmarnathRShenoy Sie sollten sich wirklich mehr um die Erforschung eines Themas bemühen. Die beiden Ressourcen, die Nagaraj S in seiner Antwort zur Verfügung stellte, waren buchstäblich die beiden obersten Seiten, die von Google zurückgegeben wurden. Sie betrügen sich selbst um Wissen, wenn Sie jemand anderen die Arbeit für Sie erledigen lassen. Tipps zum Schreiben besserer SO-Fragen finden Sie auf der SO-Hilfeseite: Fragen stellen. .
Austin A

Antworten:

363

Hier finden Sie eine bessere Lösung OLTP vs. OLAP

  • OLTP (Online Transaction Processing) ist am Betrieb eines bestimmten Systems beteiligt. OLTP zeichnet sich durch eine große Anzahl kurzer Online-Transaktionen aus (INSERT, UPDATE, DELETE). Das Hauptaugenmerk bei OLTP-Systemen liegt auf einer sehr schnellen Abfrageverarbeitung, der Aufrechterhaltung der Datenintegrität in Umgebungen mit mehreren Zugriffen und einer Effektivität, die anhand der Anzahl der Transaktionen pro Sekunde gemessen wird. In der OLTP-Datenbank gibt es detaillierte und aktuelle Daten, und das zum Speichern von Transaktionsdatenbanken verwendete Schema ist das Entitätsmodell (normalerweise 3NF). Es handelt sich um Abfragen, die auf einzelne Datensätze zugreifen, z. B. Aktualisieren Ihrer E-Mail in der Unternehmensdatenbank.

  • OLAP (Online Analytical Processing) befasst sich mit historischen Daten oder Archivdaten. OLAP zeichnet sich durch ein relativ geringes Transaktionsvolumen aus. Abfragen sind oft sehr komplex und beinhalten Aggregationen. Für OLAP-Systeme ist eine Reaktionszeit ein Effektivitätsmaß. OLAP-Anwendungen werden häufig von Data Mining-Techniken verwendet. In der OLAP-Datenbank gibt es aggregierte historische Daten, die in mehrdimensionalen Schemata (normalerweise Sternschema) gespeichert sind. Manchmal müssen Abfragen auf große Datenmengen in Verwaltungsdatensätzen zugreifen, z. B. auf den Gewinn Ihres Unternehmens im letzten Jahr.

Nagaraj S.
quelle
7
Sehr klare Informationen. Vielen Dank für das Teilen hat mir geholfen, meine Zweifel auszuräumen.
CapturedTree
Worauf bezieht sich das "OL"?
Zach Smith
Wenn andere ebenfalls eine Auffrischung benötigen: 3NF ist eine normale Form, die zur Normalisierung eines Datenbankdesigns verwendet wird, um die Duplizierung von Daten zu reduzieren und die referenzielle Integrität sicherzustellen
Martin Thoma
1
OL bezieht sich auf "ONLINE", was bedeutet, dass die Datenverarbeitung in Echtzeit abgeschlossen ist und nicht die Stapelverarbeitung.
Ganesh Jadhav
229

Sehr kurze Antwort:

Unterschiedliche Datenbanken haben unterschiedliche Verwendungszwecke. Ich bin kein Datenbankexperte. Faustregel:

  • Wenn Sie Analysen durchführen (z. B. historische Daten aggregieren), verwenden Sie OLAP
  • Wenn Sie Transaktionen ausführen (z. B. Hinzufügen / Entfernen von Bestellungen in einem E-Commerce-Warenkorb), verwenden Sie OLTP

Kurze Antwort:

Betrachten wir zwei Beispielszenarien:

Szenario 1:

Sie erstellen einen Online-Shop / eine Online-Website und möchten in der Lage sein:

  • Benutzerdaten, Passwörter, frühere Transaktionen speichern ...
  • Speichern Sie die tatsächlichen Produkte und die damit verbundenen Preise

Sie möchten in der Lage sein, Daten für einen bestimmten Benutzer zu finden, seinen Namen zu ändern ... führen Sie im Grunde INSERT-, UPDATE- und DELETE-Operationen für Benutzerdaten aus. Gleiches gilt für Produkte usw.

Sie möchten in der Lage sein, Transaktionen durchzuführen, bei denen möglicherweise ein Benutzer ein Produkt kauft (das ist eine Beziehung). Dann passt OLTP wahrscheinlich gut.

Szenario 2:

Sie haben einen Online-Shop / eine Website und möchten Dinge wie berechnen

  • das "Gesamtgeld aller Benutzer"
  • "Was ist das meistverkaufte Produkt?"

Dies fällt in den Bereich Analytics / Business Intelligence, weshalb OLAP wahrscheinlich besser geeignet ist.

Wenn Sie in Bezug auf "Es wäre schön zu wissen, wie / was / wie viel" denken ... und das betrifft alle "Objekte" einer oder mehrerer Arten (z. B. alle Benutzer und die meisten Produkte, die das kennen) insgesamt ausgegeben) dann ist OLAP wahrscheinlich besser geeignet.

Längere Antwort:

Natürlich sind die Dinge nicht so einfach. Deshalb müssen wir in erster Linie kurze Tags wie OLTPund verwenden OLAP. Jede Datenbank sollte am Ende unabhängig ausgewertet werden.

Was könnte also der grundlegende Unterschied zwischen OLAP und OLTP sein?

Nun, Datenbanken müssen Daten irgendwo speichern. Es sollte nicht überraschen, dass die Art und Weise, wie die Daten gespeichert werden, stark die mögliche Verwendung dieser Daten widerspiegelt. Daten werden normalerweise auf einer Festplatte gespeichert. Stellen wir uns eine Festplatte als ein wirklich breites Blatt Papier vor, auf dem wir Dinge lesen und schreiben können. Es gibt zwei Möglichkeiten, unsere Lese- und Schreibvorgänge so zu organisieren, dass sie effizient und schnell sind.

Eine Möglichkeit besteht darin, ein Buch zu erstellen, das einem Telefonbuch ähnelt . Auf jeder Seite des Buches speichern wir die Informationen zu einem bestimmten Benutzer. Nun, das ist schön, wir können die Informationen für einen bestimmten Benutzer sehr leicht finden! Springe einfach zur Seite! Wir können sogar eine spezielle Seite am Anfang haben, um uns mitzuteilen, auf welcher Seite sich die Benutzer befinden, wenn wir möchten. Wenn wir jedoch beispielsweise herausfinden möchten, wie viel Geld alle Benutzer ausgegeben haben, müssen wir jede Seite lesen, dh das ganze Buch! Das wäre ein zeilenbasiertes Buch / eine zeilenbasierte Datenbank (OLTP). Die optionale Seite am Anfang wäre der Index.

Eine andere Möglichkeit , unser großes Blatt Papier zu verwenden, besteht darin, ein Buch zu erstellen . Ich bin kein Buchhalter, aber stellen wir uns vor, wir hätten eine Seite für "Ausgaben", "Einkäufe" ... Das ist schön, denn jetzt können wir Dinge wie "Gib mir den Gesamtumsatz" sehr schnell abfragen (lesen Sie einfach die "Einkäufe" " Seite). Wir können auch nach komplexeren Dingen wie "Gib mir die zehn meistverkauften Produkte" fragen und trotzdem eine akzeptable Leistung erzielen. Überlegen Sie nun, wie schmerzhaft es wäre, die Ausgaben für einen bestimmten Benutzer zu ermitteln. Sie müssten die gesamte Liste aller Ausgaben durchgehen und die Ausgaben des jeweiligen Benutzers filtern und dann summieren. Was im Grunde bedeutet, "das ganze Buch noch einmal zu lesen". Das wäre eine spaltenbasierte Datenbank (OLAP).

Daraus folgt :

  • OLTP Datenbanken sollen für viele kleine Transaktionen verwendet werden und dienen normalerweise als "einzige Quelle der Wahrheit".

  • OLAP Datenbanken hingegen eignen sich besser für Analysen, Data Mining und weniger Abfragen, sind jedoch normalerweise größer (sie verarbeiten mehr Daten).

Es ist natürlich ein bisschen komplizierter als das und das ist ein 20 000 Fuß langer Überblick darüber, wie sich Datenbanken unterscheiden, aber es erlaubt mir, mich nicht in einem Meer von Akronymen zu verlieren.

Apropos Akronyme:

  • OLTP = Online-Transaktionsverarbeitung
  • OLAP = Online-Analyseverarbeitung

Um ein bisschen weiter zu lesen, hier sind einige relevante Links, die meine Antwort stark inspiriert haben:

nha
quelle
39
nette Herangehensweise mit verschiedenen Erklärungsebenen, zugänglicher Sprache und mit konkreten Beispielen. Ein Modell für Personen, die Fragen im Stackoverflow beantworten.
Ribamar
2
Super, tolle Antwort! Das mit Abstand beste, das ich bisher in SO gefunden habe! Gib diesem Mann eine Medaille!
Pedro Gordo
1
Ich fand es sehr leicht zu verstehen!
The One
3
"Im Zweifelsfall verwende ich nur SQL." - SQL ist eine Sprache und beantwortet die Frage nicht. Es gibt alle Arten von Datenverwaltungssystemen, die wissen, wie SQL interpretiert und übersetzt wird, um mit allen Arten von Datenquellen hinter der Haube zu arbeiten. Man kann SQL-Abfragen sogar auf Spark-Datenrahmen durchführen. Das ist so, als würde man sagen "Wenn ich Zweifel habe, benutze ich nur HTML". Ok, es ist die kurze Antwort, aber es ist albern
Radu Simionescu
1
Ja, was Sie vorschlagen, wäre in beiden Punkten eine Verbesserung. Es würde dem Thema natürlich nicht gerecht, aber das ist nebensächlich. Prost !
Cbhihe
24

Der Unterschied ist ganz einfach:

OLTP (Online Transaction Processing)

OLTP ist eine Klasse von Informationssystemen, die transaktionsorientierte Anwendungen ermöglichen und verwalten. OLTP wurde auch verwendet, um auf die Verarbeitung zu verweisen, bei der das System sofort auf Benutzeranforderungen reagiert. Online-Transaktionsverarbeitungsanwendungen haben einen hohen Durchsatz und sind in die Datenbankverwaltung einfüge- oder aktualisierungsintensiv. Einige Beispiele für OLTP-Systeme umfassen Auftragserfassung, Einzelhandelsverkäufe und Finanztransaktionssysteme.

OLAP (Online Analytical Processing)

OLAP ist Teil der breiteren Kategorie von Business Intelligence, die auch relationale Datenbanken, Berichterstellung und Data Mining umfasst. Typische Anwendungen von OLAP sind Geschäftsberichte für Vertrieb, Marketing, Managementberichte, Geschäftsprozessmanagement (BPM), Budgetierung und Prognose, Finanzberichte und ähnliche Bereiche.

Weitere Details OLTP und OLAP

Serhii Burkovskyi
quelle
6

OLTP-: Das oltp steht für Online-Transaktionsverarbeitung, mit der die aktuellen täglichen Dateninformationen verwaltet werden. OLAP-: Der olap steht für Online-Analyseverarbeitung, die zur Pflege des Datenverlaufs in der Vergangenheit verwendet wird und hauptsächlich für die Datenanalyse verwendet wird. Er kann auch als Warehouse bezeichnet werden.

Rakesh Singh
quelle
-6

oltp - wird hauptsächlich für Geschäftstransaktionen verwendet. Wird zum Sammeln von Geschäftsdaten verwendet. In SQL verwenden wir den Befehl Einfügen, Aktualisieren und Löschen zum Abrufen kleiner Datenquellen. Ebenso sind sie stark normalisiert. OLTP Wird hauptsächlich zur Aufrechterhaltung der Datenintegrität verwendet.

Wird hauptsächlich für Berichts-, Data Mining- und Geschäftsanalysezwecke verwendet. für die großen oder Massendaten wird absichtlich de-normalisiert. es speichert historische Daten ..

vikrant solanke
quelle
Warum wurde dies herabgestuft, es scheint dasselbe zu sein, was in anderen Antworten gesagt wurde: oltp für CRUD, olap für Aggregate?
Ychaouche
1
@ychaouche wahrscheinlich, weil es bereits mehr als 3 Antworten mit ähnlicher Bedeutung gibt. Bis heute ist dies die neueste Antwort, und dennoch hilft oder unterstützt sie nicht einmal vorhandene Antworten. Der Benutzer hat jedoch beschlossen, trotzdem eine eigene Version der Antwort hinzuzufügen, die noch unvollständig ist und keine Erklärungen enthält.
Irfandy Jip