Datenbanken: Weitere Konzepte. Dr. Matthias Uflacker, Stefan Klauck 7. Mai 2018

Ähnliche Dokumente
Datenbanken: Datenkompression. Dr. Matthias Uflacker, Stefan Klauck 2. Mai 2018

Einführung in Hauptspeicherdatenbanken

1 Einführung Ziele der Vorlesung Die Idee Lernkarte Selbsttest-Frage 3 Literaturhinweise 3

Beispiele und Eigenschaften von Unternehmensanwendungen. Dr. Matthias Uflacker, Stefan Klauck 18. April 2018

Einführung in Hauptspeicherdatenbanken

Inhaltsverzeichnis. Teil I Die Zukunft von Enterprise-Computing... 1 I I 2 3 3

Charakteristika von Unternehmensanwendungen

Datenbanken Unit 9: OLAP, OLTP, Data Warehouse Ranking Algorithmen

Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken

Datenbanken: Tabellenrepräsentation im Speicher. Dr. Matthias Uflacker, Stefan Klauck 25. April 2018

Datenbanken: Relationales Modell und SQL. Dr. Matthias Uflacker, Stefan Klauck 23. April 2018

Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken

SODA. Die Datenbank als Document Store. Rainer Willems. Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG

Skalierbare Webanwendungen

Oracle DB 12c: Die In-Memory-Option Oliver Zandner System-Berater für Oracle-DB-Technologien Oracle Hannover. Available July 2014

PostgreSQL Ein Überblick


Fast Analytics on Fast Data

Abstract. Oberseminar Datenbanksysteme Aktuelle Trends

Physischer DB-Entwurf

DOAG Konferenz Was Sie bei modernen Datenbank-Systemen anders machen müssen!

Query Result Caching. Optimierung des Datenbankzugriffs

Thomas Matzner Berater für Systemanalyse Couchbase. Java User Group München

Indexe. Ein Index = eine Struktur auf Platte, die einer Tabelle oder Sicht zugeordent ist, um die Tupeln in der Tabelle oder Sicht schneller abzurufen

Es geht also im die SQL Data Manipulation Language.

Fast Analytics on Fast Data

Datenbank-Tuning. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

mit konventionellen Datenbanksystemen konventionellen Datenbanksystemen

Datenbanken Grundlagen und Design

Praktische SQL-Befehle

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

Hauptspeicher- Datenbanksysteme. Hardware-Entwicklungen Column- versus Row-Store...

Methodik zur Optimierung in Datenbanken. Anja Rommel, 14-INM

Wiederholung VU Datenmodellierung

SAP Business Information Warehouse mit Oracle Database

Erfahrungen aus dem Betatest Oracle Database 11g

Wiederholung VU Datenmodellierung

Big Data Management Thema 14: Cassandra

Oracle In-Memory & Data Warehouse: Die perfekte Kombination?

Oracle Database 12c In-Memory Option 7/18/2014. Eckart Mader Oracle Deutschland B.V. & Co. KG. Karlsruhe, den

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

Aufbau Datenbanksysteme

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Datenbankbasierte Lösungen

Datenbanken & Informationssysteme (WS 2016/2017)

Isolationsstufen für Transaktionen. Dr. Karsten Tolle

Optimiertes Laden in die F-Fakten-Tabelle des SAP BW

Transaktionen in Praxis. Dr. Karsten Tolle Vorl

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

3. Architektur eines DBS (Oracle)

Neues aus der nicht-, semi- und relationalen Welt

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

ZWISCHEN ALBTRAUM UND OPTIMALER PERFORMANCE

Oracle OLAP 11g: Performance für das Oracle Data Warehouse

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

Oracle Database 12c Was Sie immer schon über Indexe wissen wollten

Datenbank Objekte (Tabellen, Segemente, Extents, Blöcke)

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp

Oracle 12c NF. Was ist wirklich neu? (eine kleine Auswahl) Andrew Lacy Solution Architect

Redo Logs. Informationen soweit der Logminer reicht Thomas Klughardt Senior Systems Consultant

Roadshow - What s new in SQL Server 2016

Systematische Rasterfahndung nach Performance-Antipattern

Spaltenorientierte Datenbanken

ifadm Vortrag IUG 2015

Abschluss Einblick und Ausblick

Unternehmensanwendungen. Dr. Matthias Uflacker, Stefan Klauck 16. April 2018

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Undo Tablespace statt Blockaden Blick in die Vergangenheit. Thomas Klughardt Senior System Consultant

NoSQL Datenbanken EIN ÜBERBLICK ÜBER NICHT-RELATIONALE DATENBANKEN UND DEREN POTENTIALE IM ALLGEMEINEN UND IN DER INDUSTRIE

Inhaltsverzeichnis. 1 Einleitung 1. 2 Aufbau von Data-Warehouse-Systemen 15. Lehner, Wolfgang Datenbanktechnologie für Data-Warehouse-Systeme 2003

Die InnoDB Storage Engine. Handy aus?

Optimierung von Datenbanken

Index- und Zugriffsstrukturen für. Holger Brämer, 05IND-P

Datenbanken: Indexe. Motivation und Konzepte

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

Performance in der Oracle Datenbank von Anfang an

NoSQL. Prof. Dr. Ingo Claßen. Einführung. Kategorisierung von NoSQL-Systemen. Verteilung. Konsistenz. Literatur

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.

Übung PL/SQL Trigger Lösungen

Dateiorganisation und Zugriffsstrukturen. Prof. Dr. T. Kudraß 1

Erfahrungen mit TimesTen 7.0

Anfrageoptimierung Ausführungspläne, Hints, Statistikinformationen, IDEs

Nutzung der Oracle Database InMemory Option für SAP BW

Teil XI Spalten-orientierte DBMSs

Datenbankadministration

Exadata und In-Memory Datenbewirtschaftung und Analyse Extrem mit Exadata und InMemory (Erfahrungsbericht)

Anfragebearbeitung 2. Vorlesung Datenbanksysteme vom

Slotted Pages Wie ordnet man eine Menge von Sätzen auf eine Seite an? ffl Seite besteht aus drei Teilen fixer Seitenkopf (z.b. mit Seitennr, LSN) Slot

Polyglot Persistence und NoSQL

A Datendenition in SQL ( Punkte)

Oracle 9i Einführung Performance Tuning

Kapitel 12: Schnelles Bestimmen der Frequent Itemsets

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel

Inhaltsverzeichnis. Vorwort 13

SQL - Datenbankdesign - Aufbau

Datenmodellierung VU Einführung SS 2015

Transkript:

Datenbanken: Weitere Konzepte Dr. Matthias Uflacker, Stefan Klauck 7. Mai 2018

Vorlesungsinhalte/-aufbau Phase 1 Einführung zu Unternehmensanwendungen (2 Vorlesungen) Grundlagen von spaltenorientierten Hauptspeicherdatenbanken (4 Vorlesungen) Wöchentliche Übungsblätter Phase 2 Grundlagen des IT-gestützten Rechnungswesens und Planung (3 Vorlesungen) Programmiermodelle für Unternehmensanwendungen (1 Vorlesung) Zwei praktische Programmierübungen Klausur 2

Überblick Architektur einer spaltenbasierten HauptspeicherDB Datenbankkonzepte Main-Delta-Architektur History-Partition Hot-Cold-Datenpartitionierung Aggregat-Cache Replikation Zusammenfassung 3

Literatur und Empfehlung Hasso Plattner A Course in In-Memory Data Management Hasso Plattner The Impact of Columnar In-Memory Databases on Enterprise Systems (2014) 4

Architektur einer spaltenbasierten HauptspeicherDB Hasso Plattner The Impact of Columnar In-Memory Databases on Enterprise Systems (2014) Financials Logistics Manufacturing OLTP & OLAP Applications SQL Interface Stored Procedures Query Execution Metadata Sessions Transactions Management Layer Cold Store - 2 Cold Store - 1 Read-only Replicas Read-only Replicas Hot Store (Master) Main Memory Storage Main Attribute Vectors Dictionaries Index Aggregate Cache Main Attribute Vectors Dictionaries Index Aggregate Cache Main Attribute Vectors Dictionaries Index Merge Delta Attribute Vectors Dictionaries Index 01,02 Unternehmensanwendungen 03 Relationales Modell, SQL 04 Tabellenrepräsentation History Aggregate Cache 05 Kompression 06 Weitere Konzepte Log Checkpoin Checkpoints t Durable Storage 5

Architektur einer spaltenbasierten HauptspeicherDB Weitere Konzepte Main-Delta-Architektur History-Partition Hot-Cold-Datenpartitionierung Aggregat-Cache Replikation 6

Main-Delta-Architektur Motivation Dictionary-Kompression: Sortiertes vs. unsortiertes Dictionary (Wiederholung) Pro Sortierung: Suche der Wert-ID im Dictionary hat Komplexität O(log(n)) statt O(n) Bereichsabfragen (range queries) beschleunigen Dictionary kann besser komprimiert werden Contra Sortierung: Einfügen neuer Werte kann eine Reorganisation der Datenstruktur benötigen (um Sortierung zu bewahren oder wenn sich die Anzahl der benötigten Bits pro Wert-ID verändert) Löschen von Tupeln führt zu Lücken 7

Main-Delta-Architektur Idee: Zwei verschiedene horizontale Partitionen Leseoptimierte Main-Partition mit sortiertem Dictionary Schreiboptimierte Delta-Partition mit unsortiertem Dictionary Lesen First Name Schreiben First Name Attribute Vector 0 0 Dictionary 0 Anton Attribute Vector 0 0 Dictionary (compressed) 1 1 2 1 3 3 4 2 1 Hanna 2 Michael 3 Sophie 1 1 2 1 3 2 0 Angela 1 Klaus 2 Andre Cache -sensitiver B + -Baum 5 1 8

Main-Delta-Architektur Delta-Partition Gute Leseperformanz und günstigeres Einfügen Gute Leseperformanz, da Daten komprimiert sind Günstigeres Einfügen, da Dictionary und Attributvektor nicht aufwendig umorganisiert werden müssen Benötigt mehr Speicher (zusätzlicher Baum fürs Dictionary und i.d.r. keine Attributvektorkomprimierung) 9

Main-Delta-Architektur Schreiboperationen INSERTs werden im Delta gespeichert DELETEs erzeugen ungültige Tupel (im Main und Delta) UPDATEs sind als INSERT und DELETE umgesetzt (Insert-only Ansatz) -> Delta wächst kontinuierlich Main bekommt Lücken -> Datenreorganisation / Merge / Tuple-Mover notwendig (Anfrageoptimierung für zukünftige Queries) 10

Main-Delta-Architektur Merge-Prozess Asynchroner Prozess in Bezug auf Anfragebearbeitung (speicherintensiv, aber optimierbar) Angestoßen durch Anzahl der Tupel im Delta oder durch Kostenmodell (oder manuell) Schritte: Merge Main- und Delta-Dictionary (Optional: Löschen nicht benötigter Werte) Erstellen der Abbildung: alte Wert-ID -> neue Wert-ID (für Main und Delta) (Main-)Attributvektor neu schreiben 11

Main-Delta-Architektur Alternative: Chunks (Hyrise) Motivation: Kosten für Merge-Prozess steigen mit der Zeit Idee: Mehrere Chunks fester Größe (horizontale Partitionen) Main Delta Chunk Chunk Chunk Chunk Chunk Drei Chunktypen (Phasen werden sequentiell durchlaufen) -> komprimierte Chunks sind (im Vergleich zum Main) stabil (kein Merge) Veränderbarer unkomprimierter Chunk Unveränderbarer unkomprimierter Chunk Unveränderbarer komprimierter Chunk 12

Main-Delta-Architektur Alternative: Chunks (Hyrise) - Anmerkungen Tupel aus komprimierten Chunks können ungültig werden -> Merge mehrerer löchriger Chunks Potenziell höherer Speicherverbrauch (mehrere gleiche Dictionary-Einträge für unterschiedliche Chunks vs. weniger Bits pro Wert-ID) 13

History-Partition Insert-only Ansatz: Gelöschte Daten werden nicht überschrieben, sondern ungültig + Snapshot-Isolation und Zeitreise-Queries + Möglicherweise gesetzlich vorgeschrieben - Speicherverbrauch - Höhere Scan-Kosten Ungültige Daten werden in die History-Partition geschoben 14

Hot-Cold-Datenpartitionierung Fast jede Anwendung folgt dem working set model there is a subset of (pages) that are accessed distinctively more frequently Peter Denning The working set model for program behaviour (1968) In Unternehmensanwendungen: aktuelles vs. erstes Geschäftsjahr Hot-Cold-Datenpartitionierung ist die Ausnutzung dieses Wissens bei der Datenspeicherung 15

Current-Historical Datenpartitionierung Ein Extremfall von Hot-Cold Datenpartitionierung Aktuelle (current) Daten Durch den Anwendungsentwickler als relevante Daten definiert Alle veränderbare Daten Häufig zugegriffene Daten (hot) Auf schnellen Speicher Historische/ältere (historical) Daten ( gelöschte Daten) Die restlichen Daten sich historisch Daten werden nur noch gelesen Selten zugegriffene Daten (cold) Teilweise auf günstigeren (langsameren) Speicher ausgelagert Vorteile: Performanzsteigerung durch das Weglassen des Scans der historischen Datenpartition Geringere HW-Kosten durch günstigeren Speicher (und effizientere Scanoperation) 16

Hot-Cold Datenpartitionierung Pruning-Filter Wie oft wird auf historische Partitionen zugegriffen? Für tägliche Geschäftsprozesse fast nie Die meisten analytischen Anfragen greifen auch nur auf aktuelle Daten zu Um unnötige Zugriff auf nicht relevante (historische) Partitionen zu vermeiden (z.b. bei defensiver Programmierung oder Anwendungen, die die Partitionierung nicht kennen), können spezielle Datenstrukturen (Pruning-Filter) verwendet werden Platz-effiziente probabilistische Datenstrukturen Fassen die Daten (Werte, Wertebereiche und Kombinationen) von Partitionen zusammen Erkennen unnötigen Zugriff 17

Aggregat-Cache Idee: Zwischengespeicherte Anfrage(zwischen)ergebnisse der Main-Partition werden mit dem on-the-fly Aggregat der Delta-Partition kombiniert -> Beschleunigung sich wiederholender Aggregat-Queries Cache-Eintrag speichert: Tabelle, Gruppierungsattribute, Filterbedingungen, Aggregate und gültige Zeilen Keine Aktualisierung des Cache-Eintrags (im Vergleich zu materialisierten Sichten) INSERTs werden durch on-the-fly Aggregation des Deltas berücksichtigt Ungültig gewordene Tupel seit der Erstellung des Cache-Eintrags in Main-Partition werden durch das Speichern der gültigen Zeilen erkannt und rausgerechnet 18

Aggregat-Cache Beispiel (vereinfacht) Cache-Eintrag erstellen SELECT Date, Prod, SUM(Amt) FROM Facts GROUP BY Date, Prod 19

Aggregat-Cache Beispiel (vereinfacht) Cache-Eintrag wiederverwenden SELECT Date, Prod, SUM(Amt) FROM Facts GROUP BY Date, Prod Main (cached) Delta (on-the-fly) SELECT Date, Prod, SUM(Amt) FROM (Select * FROM CachedFactsAgg UNION ALL Select * FROM FactsDelta) GROUP BY Date, Prod 20

Replikation Neue Unternehmensanwendungen.... locken zunehmend Nutzer an.. stellen zunehmend komplexe Anfragen Customers Sales Managers Decision Support OLAP, Search and Read-Only Applications on Transactional Schema Read-Only Replicas.. unterstützen interaktive Datenexploration.. erfordern Skalierbarkeit OLXP OLTP Master Node < 1 Second Aktive Master-Replikation Operational Reporting & New Applications Data Entry Hasso Plattner The Impact of Columnar In-Memory Databases on Enterprise Systems (2014) Replikatknoten verarbeiten ausschließlich lesende Anfragen auf Snapshots des Masters ohne transaktionale Garantien zu verletzen 21

Aktive Master-Replikation Aktive vs. passive Replikation Replikate werden für Anfrageverarbeitung (aktiv) und nicht nur als Backup (passiv) verwendet Master- vs. Multimaster-/Group-Replikation Ein einzelner Computer (Master) ist für die transaktionale Verarbeitung zuständig (keine teuren verteilten Transaktionen) Weitere Spezialisierung/Klassifikation von Replikationsverfahren: Sofortige vs. träge Synchronisation der Replikate Logische vs. physische Synchronisationsinformationen Homogene vs. heterogene Replikate 22

Zusammenfassung Main-Delta-Architektur mit leseoptimierter Main- und schreiboptimierter Delta-Partition History-Partition speichert gelöschte Daten Historische Partition speichert nicht mehr relevante Daten, die für die meisten Anfragen nicht mehr gelesen werden müssen Aggregat-Cache ist ein durch die Datenbank verwalteter Zwischenspeicher für Aggregate der Main-Partition Replikation ist eine Möglichkeit Leseanfragen auf zusätzlichen Computern zu skalieren 23