Open-Source-Datenbanksysteme: Von MySQL bis NoSQL oder gleich in die Cloud? GI-Regionalgruppentreffen, Jena 6.12.2011 Kai-Uwe Sattler | Ilmenau University of Technology, Germany www.tu-ilmenau.de/dbis Überblick ! ! ! ! ! 2 Open-Source-DBMS Stand relationaler DBMS NoSQL als Alternative? Database as a Service Fazit Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Der RDBMS-Markt Riesiger Markt: ! ! ! Gesamt: $18 Mrd. (2007) Mehr als 40% Marktanteil: Oracle DBMS als Rückgrat moderner ITInfrastrukturen ! ! ! Unverzichtbar wie Wasser, Strom, Netzwerk, .... Vielfältigste Anforderungen ! ! ! ! ! Kommerzielle Anbieter ! ! 3 Einige 100 Tupel ... TB Daten Eingebettete Datenbank ... Backend für CMS ... Produktionssteuerung Notebook-Einsatz ... 24/7-Betrieb Lookups ... Komplexe Datenanalysen Ausgereifte, hochkomplexe Produkte Hoher Preis, meist hoher Lern- und Adminaufwand Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Open-Source-Definition ! Lizenz für Software, deren Quelltext öffentlich zugänglich ist ! ! ! ! ! 4 Freie Weitergabe: auch Bundling oder Verkauf, jedoch keine Lizenzgebühren Verfügbarkeit des Quellcodes Keine Nutzungseinschränkung Ableitung von Software Integrität des Originalcodes Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Gründe für OS-DBMS-Einsatz ! Verfügbarkeit des Quellcodes ! ! ! Einbindung in andere Produkte ! ! ! Lizenzkosten Quellcode Kosten ! ! 5 Vertrauenswürdigkeit Notwendigkeit der Anpassung oder Erweiterung Investitionskosten vs. laufende bzw. Folgekosten Support – neue Geschäftsmodelle Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Überblick ! ! ! ! ! 6 Open-Source-DBMS Stand relationaler DBMS NoSQL als Alternative? Database as a Service Fazit Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 MySQL 1994 als Nachbau von mSQL entwickelt ! Bis 2008 MySQL AB, danach Sun ! Seit 2010 Oracle ! Duales Lizenzmodell: GPL + kommerziell ! Am weitesten verbreitetes Open-Source-DBMS (angeblich 6 Mill. Installationen) ! Bestandteil vieler Distributionen ! 7 Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 MySQL: Features ! Verschiedene Tabellentypen (DB-Engines) ! ! ! MyISAM vs. InnoDB Teilweise keine Transaktionsunterstützung sowie Überprüfung von Integritätsbedingungen Seit Version 5 ! Trigger, Stored Procedures, Sichten, Partitionierung MySQL Cluster: für Cluster-Umgebungen mit In-MemoryTabellen und synchroner Replikation ! Failover, Backup, fortgeschrittene Replikation in der Enterprise-Version ! MySQL Workbench für Entwurf und Administration ! 8 Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 PostgreSQL In den 80er Jahren aus Berkeley-Ingres und Postgres als objektrelationales DBMS entstanden ! Zunächst QUEL als Anfragesprache ! Seit 1994 SQL-Frontend ! Seit 1997 durch Open-Source-Community weiterentwickelt ! Weite Verbreitung, bei vielen Linux-Distributionen mitgeliefert ! Plattform: Linux, Windows ! Aktuelle Version: 9.1 ! 9 Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 PostgreSQL: Features ! Viele Features von SQL:2003 inkl. u.a. ! ! ! ! ! ! ! ! ! ! rekursiver Anfragen Volltextsuche Benutzerdefinierter Datentypen, Arrays, ... Spatial-Erweiterungen (über PostGIS) MVCC Trigger und gespeicherte Prozeduren in verschiedenen Sprachen Änderbare Sichten über Regeln Kontinuierliche Archivierung und Point-in-Time Recovery Hochverfügbarkeit über diverse Replikationsmechanismen (Log-Shipping, Streaming Replication, asynchrone Replikation, ...) pgAdmin zur Verwaltung 10 Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Ingres Aus Berkeley Index (M. Stonebraker) entstanden ! Weit verbreitet als Ingres 6.4 bzw. IngresII, ursprüngliche Anfragesprache QUEL ! Niedergang seit Aufkauf durch CA: Marketing, Lizenzkosten ! Seit 2005 Ingres Corp., inzwischen Actian ! ! ! ! 11 Aktuelle Version 10 Ingres 2006 als Open-Source-Version veröffentlicht Weltweit zweitgrößtes OS-Unternehmen Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Ingres: Features ! ! Plattformen: Linux, Windows SQL als Anfragesprache ! ! ! ! ! Verteilte DB über Ingres/STAR Optimierer: ! ! ! ! ! Verschiedene Tabellen- und Indextypen, verschiedene Blockgrößen Trigger und DB-Prozeduren MVCC vollständige Enumeration / Greedy-Enumeration Histogramme für Wertverteilung zur Kostenberechnung (erstes RDBMS mit Histogrammen!) Backup & Recovery: Online Backup, Checkpointing Spatial-Erweiterung als Community-Projekt Vectorwise Engine in kommerzieller Version 12 Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 MonetDB ! ! ! ! Seit 1993 am CWI entwickelter Datenbank-Kern, inzwischen Open-Source-System eines der ersten Column-Store-Systeme Anwendungsbereiche: lese-dominierte Datenverarbeitung wie OLAP, BI, Data Mining, Scientific Workloads Sowohl akademische als auch kommerzielle Anwendungen ! ! Verarbeitungsprinzip ! ! ! ! ! XML/XQuery (Pathfinder), Data Mining, Digital Forensics, Multimedia & IR, ... In-Memory-Verarbeitung Operator-at-a-time -> spaltenweise Verarbeitung Datenstruktur: BAT; Algebra: spaltenorientierte Algebra (MAL) Vollständiges relationales SQL & XML/XQuery DBMS ACID-Transaktionen (WAL, OCC) 13 Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 MonetDB: Datenmodell Quelle: S. Manegold - MonetDB: Open-source Columnar Database Technology Beyond Textbooks, 2011. 14 Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 MonetDB: Anfragefeatures ! SQL:2003 ! ! Ablauf: ! ! ! Parsen von SQL und Übersetzung in n-äre relationale Algebra Übersetzung in logische und danach physische binäre Algebra (MALProgramm auf BATs) Optimierung ! ! ! ! Weitgehende Unterstützung des Standards Front-end-spezifisch (SQL, XQuery) durch Heuristiken Back-end auf MAL-Ebene Kein echter kostenbasierter Optimierer Unterstützung von Constraints ! ! ! 15 Keine B+-Baum-Indexe Primarschlüssel und Distinct-Constraints: Hash-Indexe Fremdschlüssel: Join-Indexe Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 MonetDB: Performance-Vergleich (TPC-H) Quelle: S. Manegold MonetDB: Open-source Columnar Database Technology Beyond Textbooks, 2011. 16 Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 DBMS-basierte Suites DBMS als Baustein komplexer IT-Stacks ! Beispiele: ! ! ! ! 17 Content Management (Typo3+MySQL) Business Intelligence/OLAP ... Reporting OLAP Dashboard BI-Server Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Überblick ! ! ! ! ! Open-Source-DBMS Stand relationaler DBMS NoSQL als Alternative? Database as a Service Fazit 18 Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Grenzen klassischer RDBMS ! Datenmodell ! ! Einbettung / Customizing ! ! ! ! ! Semistrukturiert: schemafreie Daten, Textdokumente, ... Weglassen von Komponenten: Anfragesprache, Transaktionen, ... Bundling mit Applikation ressourceneffizienter Betrieb Administration Skalierbarkeit ! ! 19 Datenvolumen:Verwaltung und Analyse von TB...PB-Daten Last: Transaktionsdurchsatz, .... Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Scale up vs. Scale out ! Scale up: wenige, aber größere Server Quelle: ibm.com 20 ! Scale out: viele, kleinere (Commodity-)Server Quelle: storagesystems1.com Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Techniken für skalierbares Datenmanagement ! Arbeit verteilen ! ! ! Arbeit reduzieren ! ! ! IO als dominierenden Faktor reduzieren (Caching, Main Memory DBMS) Spezialisierung (Column Stores, OLTPDBMS) Arbeit outsourcen ! 21 klassische Parallelisierungstechniken (Inter-Query- bzw. Intra-QueryParallelität) Sharding Amazon RDS (5 GB..1 TB), SQL Azure (100 GB) Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Grenzen: CAP-Theorem [Brewer 2000] Consistency: alle Clients (Anwendungen) haben die gleiche Sicht auf den Datenbestand – auch im Fall von Updates ! Availability: es ist immer eine Kopie der Daten verfügbar, auch im Fehlerfall ! Partition Tolerance: Systemeigenschaften bleiben auch bei Partitionierung des Netzwerks erhalten ! Für verteilte Shared-Data-Systeme sind zu jeder Zeit nur maximal zwei dieser drei Eigenschaften erreichbar. 22 Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 CAP-Theorem Keine Konsistenzgarantien Updates erfordern Konfliktbehandlung Consistency Im Partitionierungsfall: warten bis Daten wieder konsistent sind Sperrverfahren Availability Partition Tolerance Jeder Knoten ist mit jedem verbunden oder alle bilden eine atomare Einheit 2PC 23 Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Außerdem... ! Optimierung und Ausführung von Anfragen ! ! ! formuliert in SQL:2003 + SQL/XML ... ... über 1000 Knoten hinweg?? Umgang mit Ausfällen ! ! ! 1 Server – 1 Ausfall alle 3 Jahre (1000 Tage) 10.000 Server – 10 Ausfälle pro Tag! Konsequenz: Einschränkung der Funktionalität ! ! ! 24 AP, CA, (CP)-Systeme Transaktionssemantik (begrenzte Atomarität) Anfrageoperationen (Schlüsselzugriffe, keine Verbunde) Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 NoSQL – eine Alternative? ! Klasse von Datenbanksystemen, die einen nicht-relationalen Ansatz verfolgen ! ! ! im Datenmodell: Graphen, Dokumente, ... in der Anfragesprache: kein SQL, keine Anfragesprache, ... in Architektur und Features: massiv verteilt, eingeschränkte ACIDEigenschaften (Konsistenz, Isolation) kein SQL, keine Transaktionen, kein Schema und keine Integritätsbedingungen 25 Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Markt & Beispiele ! Key-Value-Stores: ! ! ! Dokumentenzentrierte Systeme: ! ! ! kein oder flexibles Schema (JSON-Dokumente) Beispiele: CouchDB, mongoDB, ... Graphenorientierte Systeme: ! ! ! Speicherung von Schlüssel-Wert-Paaren, Lookup-Operationen Beispiele: S3, Riak, ... Verwaltung von Graphstrukturen (z.B. für soziale Netze) Beispiele: Sones, ... Row und Column Stores: ! ! 26 klassische tupelstrukturierte Daten, SQL-ähnliche Anfragen Beispiele: BigTable, SimpleDB, ... Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Cassandra entwickelt von Facebook und 2008 als Open Source veröffentlicht ! seit 2010 Top-Level-Projekt bei Apache ! Kombination von Amazon Dynamo (massiv verteilt) und BigTable (ColumnFamily) ! Basis: ! ! ! ! 27 DHT mit Consistent Hashing Replikate im Ring verteilt asynchrone und synchrone Replikation Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Cassandra: Datenmodell ! ! Column = Tripel aus (Name, Wert, Zeitstempel) ColumnFamily (CF) = Tabelle aus Rows mit eindeutigem Schlüssel ! ! Immer sortiert nach Schlüssel (Index) Zusätzliche Sekundärindexe möglich Keyspace: Bestellsystem CF: CUSTOMER Key 42 Column: Address Column: Name 43 Felix Potsdam Alfons München CF: ORDERS .... 28 Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Cassandra: Anfragen ! ! Thrift-API (RPC-Zugriffe) CQL – einfachste Anfragen ! ! ! Selektion über indexierte Spalten Keine Joins Operationsspezifische Beeinflussung der Konsistenz ! ! ! 29 ZERO (keine Garantien), ANY, ONE (Schreiben auf mind. 1 Knoten), QUORUM (Mindestanzahl von Knoten beim Schreiben), ALL (alle Knoten) Konflikterkennung über Zeitstempel Commit-Logs, nicht nur Replikation Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Bewertung ! frischer Wind im Datenbankmarkt www.nosql-databases.org mit > 122 Einträgen NoSQL-Systeme zielen (nicht nur) auf Skalierbarkeit ab ! ! ! verschiedene (Optimierungs-)Ziele ! ! ! ! ! Durchsatz Datenvolumen flexible Schemata ... ... sind schon im produktiven Einsatz ! ! ! ! in kommerziellen Cloud-Angebote (Amazon SimpleDB, Google AppEngine, ...) in Web2.0-Unternehmen (Facebook, Foursquare, ...) auch von Oracle ;-) aber nicht immer dauerhaft ! 30 siehe Facebook: Cassandra HBase, Ubuntu: CouchDB ?? Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Überblick ! ! ! ! ! Open-Source-DBMS Stand relationaler DBMS NoSQL als Alternative? Database as a Service Fazit 31 Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Versteckte Kosten traditioneller Software Traditional Software SW Licenses Training Hardware SaaS Subscription Fee Training Customization IT Staff Maintenance Customization 32 Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Software as a Service (SaaS) Traditionelle Software On-Demand Utility Plug In, Subscribe Build Your Own 33 Pay-per-Use Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Servicemodelle für die Cloud ! Cloud Software as a Service (SaaS) ! ! Cloud Platform as a Service (PaaS) ! ! Nutzung vorgefertigter Applikationen Deployment und Betrieb eigener Anwendungen in der Cloud Cloud Infrastructure as a Service (IaaS) ! 34 Mieten von Processing- Storage- und Netzwerkkapazität Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 DBaaS: Lösungsraum Cloud-Storage put/get Amazon S3 Virtualisierte DB-Server SQL Google Cloud SQL Amazon RDS Microsoft SQL Azure eine DB pro Client 35 Amazon SimpleDB Google BigTable Skalierbare verteilte DBS eine DB für alle Clients Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Microsoft SQL Azure ! Cloud-basierter DB-Service für Azure-Plattform ! ! ! ! SQL Server = Gruppe von Datenbanken über mehrere physische Maschinen hinweg Unterstützung des Relationenmodells und T-SQL (Tabellen, Sichten, Indexe, Trigger, Stored Procedures) Deployment und Administration über SQL Server Management Studio Aktuelle Beschränkungen ! ! 36 DB-Größe = max. 50 GB Keine Unterstützung von CLR, verteilte Anfragen & Transaktionen, Spatial Data, ... Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Microsoft SQL Azure: Details ! Datenbanken ! ! ! ! API ! ! ! ! ! implementiert als replizierte Partitionen über mehrere physische Knoten hinweg Load Balancing und Failover SQL, ADO.NET, ODBC Tabular Data Streams SQL Server Authentication Sync Framework Preise ! ! 37 1 GB Datenbank: $9.99/Monat, 10 GB: $99.99/Monat + Datentransfer SLA: 99.9% Verfügbarkeit Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Amazon RDS ! Amazon Relational Database Services ! ! ! ! ! ! Web Service für Aufsetzen und Betreiben von MySQLDatenbanken Full-featured MySQL 5.1 Automatisiertes Datenbank-Backup Java-basierte Command Line Tools und Web Service API für Instanzadministration Nativer DB-Zugriff Preise: ! ! ! ! 38 Small DB instance (1.7 GB memory, 1 ECU): $0.11/Stunde Largest DB instance (68 GB, 26 ECU): $2.60/Stunde + $0.10 GB-Monat Speicher (5 GB.. 1 TB) + Datentransfer Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Amazon Data Services ! Amazon Simple Storage Service (S3) ! ! ! ! ! ! 39 Verteilter Blob-Speicher für Objekte (1 Byte ... 5 GB Daten) REST-basiertes Interface zum Lesen, Schreiben und Löschen von Objekten Identifiziert über eindeutigen, benutzerdefinierten Schlüssel Atomare Single-key-Updates; kein locking Eventual consistency (teilweise read-after-write) Aug 2009: mehr als 64 Mrd. Objekte Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Amazon SimpleDB NoSQL-Cloud-Service von Amazon ! Alternative zu S3 (Storage) und RDS (MySQL-Instanzen) ! Hochverfügbar und hochskalierbar (AP-System) ! Pay-per-Use-Preismodell (Datentransfer, Anzahl Requests) ! ! ! Bsp. 1 Mill. Items a 25 Attribute (500 GB Speicher); 500 GB In/ Out, 100.000 Requests => $185/Monat Tools: ! ! ! 40 AWS Toolkit for Eclipse Scratchpad (Javascript/HTML) SDK für Java, PHP, .NET, ... Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Amazon SimpleDB ! Datenmodell ! ! Tupelmodell: Domain = Kollektion von Items beschrieben über Key-Value-Paare; max. Größe10 GB Attribute können pro Item hinzugefügt werden (max. 256) Customer #1 Storage Account Customer City: Dresden Customer #2 Item Order ! API ! ! 41 Name: Wolfgang Attribute:Value Domain Domain: CreateDomain, ListDomain, ... Item: PutAttributes, DeleteAttributes bzw. GetAttributes Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Amazon SimpleDB ! Anfragen ! ! ! ! Beschränkt auf einzelne Domain SFW-Syntax + count() + Multiattribut-Prädikate Stringwertige Daten:Vergleich nur lexikographisch Einschränkungen ! Standardfall: Eventually Consistent Reads ! ! ! ! 42 Lesen garantiert nicht Ergebnisse des letzten Schreibens (erst nach Wiederholung, max. 1 Sekunde) Consistent Read für einzelne Leseanforderungen Atomares Schreiben nur pro Item Synchronisation „von Hand“ über bedingte Put/DeleteOperationen möglich Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Vergleich Amazon SimpleDB Google BigTable Anfragemodell Get + 1Table-SQL get+key-based SQL range scans SQL Logisches Datenmodell Tupelmodell flexible tables relational relational Konsistenzmodell eventual relaxed strict strict Transaktionsgarantien ltem-level row-level ACID ACID Replikation data-level GFS DB-level DB-level 43 Amazon RDS SQL Azure Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Überblick ! ! ! ! ! Open-Source-DBMS Stand relationaler DBMS NoSQL als Alternative? Database as a Service Fazit 44 Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Aktuelle Trends ! Neue Architekturkonzepte ! ! ! Komplette Stacks ! ! ! ! Cassandra, HBase, ... Neue Geschäftsmodelle ! ! Dokumentenorientiert: CouchDB, MongoDB Key-Value-Stores: Riak, ... Verteilte, hochskalierbare Systeme ! ! BI: Pentaho, Jaspersoft CMS, ... Nichtrelationale Systeme ! ! Column Stores: MonetDB Hauptspeicher-Datenbanken: Derby, HSQLDB, MySQL Cluster Community-Versionen, Subscription-Modelle Cloud-Services für Hosting und Betrieb ! 45 Amazon RDS, Microsoft Azure, ... Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Fazit ! Open-Source-RDBMS ! ! ! ! Inzwischen leistungsfähige und ausgereifte Systeme für Produktiveinsatz Kommerzieller Support möglich Unterschiede zu kommerziellen Systemen im Wesentlichen in den Bereichen Backup/Recovery, HA, Administrationsunterstützung/ Tuning NoSQL-Systeme ! ! Für Nicht-Standard-Anwendungen: schwach strukturierte Daten, Graph-Daten, Big Data Analytic fehlende Funktionalität von SQL-DBMS (Anfragesprache,Verbunde, Transaktionsunterstützung, ...) ! ! ! ! 46 wird in Anwendung eventuell nicht vermisst oder muss in der Anwendung nachimplementiert werden Viele Angebote, aktive Entwicklung Jedoch häufig noch nicht sehr ausgereift Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Fazit ! Database as a Service-Angebote ! ! ! ! ! ! Cloud-Dienste für Hosting von Datenbanken Virtualisierte DB-Server wie MySQL, Oracle, ... Hochskalierbare, verteilte Datenbanken mit eingeschränkten Features versprechen elastischen + Zero-Admin-Betrieb flexible Preismodelle (Pay-per-use, ...) Aber: ! ! Kosten nicht unterschätzen, zukünftige Preisentwicklung? Technische Fragen: ! ! ! Hosting weiterer IT-Systeme Rechtliche Fragen: ! ! 47 DBMS nur eine Komponente Datentransfer Anbieter meist US-Unternehmen Sicherheit und Privacy? Patriot Act Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11 Links MySQL: www.mysql.de ! PostgreSQL: www.postgresql.org ! Ingres: www.actian.com ! MonetDB: www.monetdb.org ! NoSQL: www.nosql-databases.org ! DBaaS-Tutorial @ICDE 2010: http://www.slideshare.net/kaiusa/database-as-a-servicetutorial-icde-2010 ! 48 Open-Source-DBMS | K. Sattler | TU Ilmenau 07.12.11