Column-oriented database Was ist eine spaltenorientierte Datenbank?
Anbieter zum Thema
Eine spaltenorientierte Datenbank speichert ihre Daten nicht wie üblich zeilenweise, sondern spaltenweise. Diese Art der Datenspeicherung bietet vor allem bei Analysen großer Datenmengen und Abfragen auf sehr großen Datenbanken Vorteile. Typischer Einsatzbereich sind Big-Data-Anwendungen.
Der englische Fachbegriff für spaltenorientierte Datenbank lautet column-oriented database oder columnar database. Bei der spaltenorientierten Datenbank handelt es sich um eine Datenbank, die ihre Daten nicht wie üblich für tabellenorientierte Datenbanken zeilenweise, sondern spaltenweise speichert.
Sowohl zeilen- als auch spaltenorientierte Datenbanken arbeiten mit zweidimensionalen Tabellen, bestehend aus vielen Spalten und Zeilen. Physisch, zum Beispiel auf der Festplatte, speichern die Datenbanken ihre Daten aber eindimensional. Bei einer zeilenorientierten Datenbank werden die einzelnen Zeilen hintereinandergeschrieben. Die spaltenorientierte Datenbank verändert das Speicherprinzip, indem sie die Spalten einer Tabelle hintereinanderschreibt. Zur Verdeutlichung ein einfaches Beispiel:
Ein Tabelle bestehend aus den drei Spalten Produktnummer, Produktname und Preis, und gefüllt mit vier Zeilen wird zeilenorientiert folgendermaßen geschrieben:
1, Produkt A, 100; 2, Produkt B, 200; 3, Produkt C, 50; 4, Produkt D, 150
Die spaltenorientierte Schreibweise für die gleiche Tabelle sieht folgendermaßen aus:
1,2,3,4; Produkt A, Produkt B, Produkt C, Produkt D; 100, 200, 50, 150
Die spaltenorientierte Schreibweise bietet Vorteile, wenn Spalteninformationen über viele Zeilen hinweg gelesen werden sollen. Es existieren zahlreiche proprietäre oder Open-Source-basierte Datenbanklösungen mit spaltenorientierter Datenspeicherung. Beispiele sind MariaDB ColumnStore oder MonetDB und Produkte oder Services von SAP, Oracle, Amazon und anderen.
Da spalten- und zeilenorientierte Datenbanken jeweils spezifische Vor- und Nachteile besitzen und für unterschiedliche Anwendungen jeweils besser oder weniger gut geeignet sind, kommen häufig hybride oder kombinierte Lösungen zum Einsatz, die sowohl die Zeilen- als auch die Spaltenorientierung unterstützen.
Typische Einsatzbereiche spaltenorientierter Datenbanken
Spaltenorientierte Datenbanken eignen sich gut für analytische Informationssysteme und OLAP-Aufgaben (Online Transactional Processing). Es lassen sich komplexe Hochgeschwindigkeitsabfragen oder multidimensionale Analysen großer Datenmengen mit höherer Performance ausführen als mit zeilenorientierten Systemen. Typische Anwendungsbereiche sind Data-Mining, Big-Data-Anwendungen, Business Intelligence, Forschung, Data Warehousing und vieles mehr.
Vor- und Nachteile spaltenorientierter Datenbanken
Vorteile spaltenorientierter Datenbanken sind:
- schnelle Ausführung von Spaltenoperationen,
- performantes Speichern, Lesen und Aggregieren von Spalteninformationen über viele Zeilen hinweg,
- gut für leseintensive Workloads und analytische Abfragen geeignet,
- gute Skalierbarkeit,
- effizientes Verteilen und Parallelisieren der Daten und Datenverarbeitungsvorgänge,
- effiziente Kompression durch gleichartige Datentypen in Spalten,
- reduzierter Speicherbedarf,
- effizientere Indexierung.
Als Nachteile spaltenorientierter Datenbanken lassen sich aufführen:
- weniger gut für transaktionale Anwendungen mit vielen kleinen Schreiboperationen geeignet,
- höhere Latenz bei Abfragen, die komplexe Verknüpfungen betreffen,
- langsamer und weniger effizient bei Zeilenoperationen,
- höherer Aufwand bei der Verwaltung und Optimierung.
(ID:50130863)