Stream-Verwaltung mit konventionellen Datenbanksystemen

Slides:



Advertisements
Ähnliche Präsentationen
Partitionierungstechniken in Datenbanksystemen
Advertisements

ER-Datenmodell und Abfragen in SQL
Datenbanken Einführung.
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Ruby on Rails im Überblick
SendEplanung Datenbank
SQL als Abfragesprache
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
SQL 2 Order by null Aggregatfunktionen group by Join subselect.
Abfragen – Tipps und Tricks Buch S102ff (Informatik I, Oldenbourg-Verlag) Nach einer Vorlage von Dieter Bergmann.
Einführung MySQL mit PHP
Arbeiten mit SQL in Visual FoxPro 9.0
SQL in Visual FoxPro. © 1999 TMN-Systemberatung GmbH SQL Historie n SQL - Structured Query Language n In den 70er Jahren von IBM entwickelt n 1986 zum.
Neue DBF und DBC Befehle in Visual FoxPro
Arbeiten mit SQL in Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 Roadshow SQL.
Übung 1: SQL Übungen finden bei Bedarf anstelle der Vorlesungen statt
... und alles was dazugehört
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #9 Physische Datenorganisation.
Vorlesung #4 SQL (Teil 1).
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
WS 2013/14 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #5 SQL (Teil 2)
Befehle in SQL Erläuterungen.
Datenbanksysteme für hörer anderer Fachrichtungen
Copyright Oracle Corporation, All rights reserved. 6 Unteranfragen (Subqueries)
Einführung in Datenbankmodellierung und SQL
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
Aggregatsfunktion SQL = Structured Query Language.
Vorlesung #10 Physische Datenorganisation
1 Gruppierung, Aggregierung und Sortierung (2) Abarbeitungsmodell bei Gruppierung: Werte from- und where-Klauseln aus wie bisher (Bildung von Kreuzprodukt.
PL/SQL - Kurze Einführung April 2003Übung Data Warehousing: PL/SQL 2 PL/SQL.. ist eine Oracle-eigene, prozedurale Programmiersprache Sämtliche.
ADAT©2004 Dipl. - Ing. Walter SabinSeite: 28 Version 1.0a Elementare Datenstrukturen –Tables Ansammlung von rows Jede row enthält eine oder mehrere column(s)
Verdichten von Daten mit Gruppenfunktionen
Structured Query Language
Vorlesung #5 SQL (Teil 2).
SQL - Structured Query Language  AIFB SS (1|3) 2.1 Allgemeines zu SQL (1|3) Benennung: SQL: „structured query language" ursprünglich: SEQUEL –
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
11 Zugriffskontrolle (Access Control) Ziele Privilegien Rollen GRANT und REVOKE Befehl Privilegien Rollen GRANT und REVOKE Befehl.
Anfragen an multidimensonale Daten
Datenbank für Skriptenverkauf
Seminar Ingenieurdatenbanken WS 04/05 Dr. Schallehn, Prof. Paul, Dipl.-Inf. Fröhlich {eike | paul | iti.cs.uni-magdeburg.de.
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Datenbanken abfragen mit SQL
Eine Zeitreise mit Oracle 10g: Praktisches mit Flashback DOAG Regionaltreffen/Gütersloh Petra Flach Ventara AG.
Effektives Delta Laden DOAG SID Data Warehouse. Ziele Welche CDC Methoden gibt es? Typische Fallen Verschiedene Lösungsansätze praktische Beispiele.
IS: Datenbanken, © Till Hänisch 2000 Einführung Worüber reden wir hier eigentlich ?
SQL Basics Schulung –
DOAG SID Data Warehouse
Approximative Queryevaluierung
Vorlesung #5 SQL (Teil 2).
Vorlesung #6 SQL (Teil 3).
Wirtschaftsinformatik
Flashback mal sieben DOAG RegioTreff , Wiesbaden
Create Table, Rechte und Rollen
Funktionen, GROUP BY, HAVING Views anlegen und verwenden
Vorlesung #7 Fehlerbehandlung
Vorlesung #7 Fehlerbehandlung
Excel-Berichte erstellen und verteilen
Installation und Beispiele
Indexierung Oracle: indexes Indexierung.
Einführung "Datenbanksysteme"
Da·ten·bank /Dátenbank/ Substantiv, feminin [die]
Abfragestrategien in verteilten Systemen
Datenbanken Von Amed und Alicia.
Oracle Statistiken im HORIZON-Umfeld
Nutzung und Modellierung von Datenbanken
2.3 Gruppierte Datensätze
(Structured Query Language)
 Präsentation transkript:

Stream-Verwaltung mit konventionellen Datenbanksystemen Christian Rensch 27.11.2018 Seminar Data Streams

Thema Verwaltung von Datenströmen in konventionellen Datenbanksystemen optimiert auf Daten geringer Update-Rate Transaktionskonzept Oracle, IBM DB2, Microsoft SQL Server 27.11.2018 Seminar Data Streams

Agenda Probleme konventioneller Systeme Bisherige Lösungen Ansätze zur Datenstromverwaltung in konventionellen DBMS Zusammenfassung 27.11.2018 Seminar Data Streams

Eigenschaften von Datenströmen Kontinuierliche Folge von Datensätzen mit vielen unterschiedlichen Quellen stark variierender Rate unbekanntem Ende 27.11.2018 Seminar Data Streams

Probleme konventioneller DBMS Speicherplatz Hohe Insert-Lasten Echtzeitanforderung Approximation Ad-hoc-Anfragen vs. vordefinierte Anfragen Human-Active-DBMS-Passive vs. DBMS-Active-Human-Passive 27.11.2018 Seminar Data Streams

Bisherige Lösungen (bisher) kein generisches Datenstromverwaltungssystem anwendungsspezifische Lösungen: ankommende Daten werden direkt vom Anwendungsprogramm verarbeitet 27.11.2018 Seminar Data Streams

Nachteile teuere Herstellung der Software: "maßgeschneiderte" Lösungen teuere Wartung: Software-Team statt DB-Administrator 27.11.2018 Seminar Data Streams

Stream-Verarbeitung (I) durch spezielle Systeme: Aurora TelegraphCQ STREAM durch konventionelle DBMS: Nutzen vorhandener Konzepte Weiterentwicklung 27.11.2018 Seminar Data Streams

Stream-Verarbeitung (II) nutzbare Ansätze: Trigger und Assertions Materialisierte Sichten Partitionierung Sampling Analytische Funktionen 27.11.2018 Seminar Data Streams

Trigger und Assertions (I) bereits in den meisten DBMS implementiert realisieren kontinuierliche Anfragen DBMS reagieren eigenständig auf Ereignisse  Aktive DBMS ABER: arbeiten nur auf einer Basisrelation zu viele Trigger verlangsamen System 27.11.2018 Seminar Data Streams

Trigger und Assertions (II) operieren über mehrere Basisrelationen ABER: nur Konsistenztest, kein Ausführen von Aktionen obwohl Teil von SQL in keinem DBMS implementiert 27.11.2018 Seminar Data Streams

Materialisierte Sichten (I) Daten der Sichten werden physisch gespeichert im Vergleich zu virtuellen Sichten: wiederholter Zugriff erfolgt schneller, insbesondere bei komplexen Anfragen und bei verteilten Datenbanken ABER: höherer Speicherplatzbedarf Daten müssen aktuell gehalten werden 27.11.2018 Seminar Data Streams

Materialisierte Sichten (II) automatisches Aktualisieren vs. manuelles Aktualisieren vollständiges Aktualisieren vs. Änderungs-Logging 27.11.2018 Seminar Data Streams

Materialisierte Sichten (III) Oracle: vor Version 8: SNAPSHOT danach: MATERIALIZED VIEW IBM DB2: MATERIALIZED QUERY TABLE Microsoft SQL Server: INDEXED VIEWS mit folgenden Einschränkungen: TOP, MIN, MAX und COUNT verboten Verwendung anderer Views verboten UNION, OUTER JOIN und Unterabfragen verboten 27.11.2018 Seminar Data Streams

Materialisierte Sichten (IV) Query-Rewriting: Nutzung vorhandener materialisierter Sichten, um neue Anfragen schneller beantworten zu können 27.11.2018 Seminar Data Streams

Partitionierung (I) Tabellen können mehrere Partitionen besitzen Datensätze werden nach festlegbaren Kriterien in Partitionen einsortiert, z.B. Partionierung nach einem Attribut 'Datum' in Geschäftsjahre Partitionierung nach einem Attribut 'Land' 27.11.2018 Seminar Data Streams

Partitionierung (II) CREATE TABLE Gespraech (Datum DATE, KdNr NUMBER, Dauer NUMBER) PARTITION BY RANGE(Datum) (PARTITION vor_2004 VALUES LESS THAN TO_DATE('01-JAN-2004', 'DD-MON-YYYY'), PARTITION in_2004 VALUES LESS THAN TO_DATE('01-JAN-2005', 'DD-MON-YYYY'), PARTITION nach_2004 VALUES LESS THAN MAXVALUE) ; Datum KdNr Dauer TABLE Gespraech 2003-05-15 1 45 PARTITION "vor_2004" 2003-07-21 2 215 2004-01-16 1 200 PARTITION "in_2004" 2004-10-16 3 20 2005-03-07 2 50 PARTITION "nach_2004" 27.11.2018 Seminar Data Streams

Partitionierung (III) Anfragenoptimierung direkter Zugriff auf einzelne Partitionen möglich  Aggregatfunktionen über Partitionen schneller Sperrende Operationen sperren nur angefragte Partitionen 27.11.2018 Seminar Data Streams

Partitionierung (IV) Oracle: IBM DB2: MS SQL: BY RANGE : Wertebereiche des Typs "von - bis" BY LIST : Nach einzelnen Werten BY HASH : über Hash-Funktion Oracle: BY RANGE BY LIST BY HASH IBM DB2: BY RANGE BY HASH MS SQL: keine Implementierung Partitionierung noch nicht Teil des SQL-Standards! 27.11.2018 Seminar Data Streams

Sampling (I) Idee: zufällige Auswahl von Datensätzen  Approximation möglich Anzahl ausgewählter Sätze abhängig von der Sampling-Rate 27.11.2018 Seminar Data Streams

Sampling (II) kein SQL-Standard-Konstrukt Umsetzung nur in Oracle: SELECT AVG(Dauer) FROM Gespraech nimmt alle Datensätze zur Berechnung des Durchschnitts 27.11.2018 Seminar Data Streams

Sampling (II) kein SQL-Standard-Konstrukt Umsetzung nur in Oracle: SELECT AVG(Dauer) FROM Gespraech SAMPLE(12) benutzt jeden Datensatz mit einer Wahrscheinlichkeit von 12% 27.11.2018 Seminar Data Streams

Sampling (II) kein SQL-Standard-Konstrukt Umsetzung nur in Oracle: SELECT AVG(Dauer) FROM Gespraech SAMPLE(12) SEED(4) sorgt für gleiche Auswahl bei erneuter Anfrage 27.11.2018 Seminar Data Streams

Analytische Funktionen (I) auch: Window-Funktionen ermöglichen komplexe Anfragen Aggregatfunktionen vergleichbar mit GROUP BY NEU: Resultset bleibt unverändert mehrere Bereiche in einer Anfrage Anfragen über Windows (=gleitende Fenster innerhalb der Bereiche) 27.11.2018 Seminar Data Streams

Analytische Funktionen (II) Datum KdNr Dauer SELECT KdNr, SUM(*) KdSum FROM Gespraech GROUP BY KdNr ORDER BY KdNr 2005-05-15 1 45 2005-05-15 2 215 2005-05-16 1 200 2005-05-16 2 125 2005-05-16 3 20 KdNr KdSum 2005-05-17 2 50 1 245 2005-05-18 2 310 2 700 3 20 27.11.2018 Seminar Data Streams

Analytische Funktionen (III) Datum KdNr Dauer SELECT Datum, KdNr, SUM(Dauer) OVER (PARTITION BY KdNr) KdSum FROM Gespraech ORDER BY Datum, KdNr 2005-05-15 1 45 2005-05-15 2 215 2005-05-16 1 200 2005-05-16 2 125 2005-05-16 3 20 Datum KdNr KdSum 2005-05-17 2 50 2005-05-15 1 245 2005-05-18 2 310 2005-05-15 2 700 2005-05-16 1 245 2005-05-16 2 700 2005-05-16 3 20 2005-05-17 2 700 2005-05-18 2 700 27.11.2018 Seminar Data Streams

Analytische Funktionen (IV) Datum KdNr Dauer SELECT Datum, KdNr, SUM(Dauer) OVER () GesSum FROM Gespraech ORDER BY Datum 2005-05-15 1 45 2005-05-15 2 215 2005-05-16 1 200 2005-05-16 2 125 2005-05-16 3 20 Datum KdNr GesSum 2005-05-17 2 50 2005-05-15 1 965 2005-05-18 2 310 2005-05-15 2 965 2005-05-16 1 965 2005-05-16 2 965 2005-05-16 3 965 2005-05-17 2 965 2005-05-18 2 965 27.11.2018 Seminar Data Streams

Analytische Funktionen (V) Datum KdNr Dauer SELECT Datum, KdNr, SUM(Dauer) OVER (PARTITION BY KdNr) KdSum, SUM(Dauer) OVER (PARTITION BY Datum) DatSum FROM Gespraech ORDER BY Datum, KdNr SELECT Datum, KdNr, SUM(Dauer) OVER (PARTITION BY KdNr) KdSum, SUM(Dauer) OVER (PARTITION BY Datum) DatSum FROM Gespraech ORDER BY Datum, KdNr SELECT Datum, KdNr, SUM(Dauer) OVER (PARTITION BY KdNr) KdSum, SUM(Dauer) OVER (PARTITION BY Datum) DatSum FROM Gespraech ORDER BY Datum, KdNr 2005-05-15 1 45 2005-05-15 2 215 2005-05-16 1 200 2005-05-16 2 125 2005-05-16 3 20 Datum KdNr KdSum DatSum 2005-05-17 2 50 2005-05-15 1 245 260 2005-05-18 2 310 2005-05-15 2 700 260 2005-05-16 1 245 345 2005-05-16 2 700 345 2005-05-16 3 20 345 2005-05-17 2 700 50 2005-05-18 2 700 310 27.11.2018 Seminar Data Streams

Analytische Funktionen (VI) Datum KdNr Dauer SELECT Datum, KdNr, SUM(Dauer) OVER (PARTITION BY KdNr ORDER BY Datum RANGE BETWEEN 1 DAY PRECEDING AND CURRENT ROW) SumLetzte2 FROM Tabelle ORDER BY Datum, KdNr 2005-05-15 1 45 2005-05-15 2 215 2005-05-16 1 200 2005-05-16 2 125 2005-05-16 3 20 Datum KdNr SumLetzte2 2005-05-17 2 50 2005-05-15 1 45 2005-05-18 2 310 2005-05-15 2 215 2005-05-16 1 245 2005-05-16 2 340 2005-05-16 3 20 2005-05-17 2 175 2005-05-18 2 360 27.11.2018 Seminar Data Streams

Analytische Funktionen (VII) Noch mehr? alle bekannten Aggregatfunktionen ROW_NUMBER, RANK und DENSE_RANK nummerieren Reihen eines Bereiches durch FIRST_VALUE (Attribut) und LAST_VALUE (Attribut) liefern den ersten bzw. den letzten Wert eines Attributs in einem Bereich LAG (Attribut, n, Default) und LEAD (Attribut, n, Default) liefern den Wert eines Attributs n Zeilen vor bzw. nach der betrachteten Zeile – falls diese nicht existiert gibt sie Default zurück 27.11.2018 Seminar Data Streams

Zusammenfassung (I) Trigger und Assertions Materialisierte Sichten Aktive DBMS  Selektion von Daten kontinuierliche Anfragen Materialisierte Sichten Schnellere Anfragenauswertung  Echtzeit Partitionierung Selektion Echtzeit Approximation Sampling Analytische Funktionen Komplexe Analyseanfragen 27.11.2018 Seminar Data Streams

Zusammenfassung (II) durch vorgestellte Konzepte einzelne Aspekte nachbildbar ABER: Problem bleibt "PUSH" von Änderungen alle Nachbildungen mangelt es an Leistung, insbesondere hohe Insert-Last schwer zu verarbeiten 27.11.2018 Seminar Data Streams

Weitere Informationen Allgemein: K. E. Kline: SQL in a Nutshell, 2nd Edition http://www.craigsmullins.com/ D. Quass, A. Gupta, I.S. Mumick, J. Widom: Making Views Self-Maintainable for Data Warehousing Lukasz Golab: Querying Sliding Windows over On-Line Data Streams 27.11.2018 Seminar Data Streams

Weitere Informationen Oracle: http://www.databasejournal.com/features/oracle/article.php/2192071 http://www.ordix.de/onews2/2_2002/siteengine/artikel/sundd_2.html http://www.orafaq.com/articles/archives/000060.htm http://www.psoug.org/reference/partitions.html IBM DB2: http://publib.boulder.ibm.com/infocenter/dzichelp/index.jsp http://www.db2mag.com/story/showArticle.jhtml?articleID=17701065 Microsoft SQL Server: http://www.sqlteam.com/item.asp?ItemID=1015 http://msdn.microsoft.com/ http://www.hansevision.de/downloads/SQLServer2005.ppt 27.11.2018 Seminar Data Streams