Einführung
DBMS in der Cloud ◦ Vergleich verschiedener DBMS
Beispiele ◦ Microsoft Azure
◦ Amazon RDS
◦ Amazon EC2 Relational Databases AMIs
Was gibt es noch? ◦ HadoopDB
Wie geht es weiter?
18.01.2010 Sebastian Wienecke 2
Vorteile Nachteile
vollständige Kontrolle über das System
Unabhängigkeit gegenüber Dritten
Daten bleiben im Unternehmen → Datenschutz
teure Hardware Lizenzgebühren Platzbedarf Mitarbeiterschulungen Verantwortung für DR
und HA Patches einspielen Skalierung planen Performanz- und
Stabilitätstests
18.01.2010 Sebastian Wienecke 6
Vorteile Nachteile
keine Kosten für Soft- und Hardware
u.U. Patches und DR durch Dienstleister
neuere oder bessere Software
SLAs
kein voller Systemzugriff eigene Administration →
Mitarbeiterschulungen monatliche Gebühren Abhängigkeit vom
Internet und Dienstleister Verantwortung für HA
bleibt Performanztests Datenschutz
18.01.2010 Sebastian Wienecke 8
Vorteile Nachteile
keine Kosten für Soft- und Hardware
Patches durch Dienstleister kein/kaum
Administrationsaufwand DR und HA SLAs optimierte Technik, bessere
Skalierung Performanzsteigerung per
Mausklick Daten mehrfach repliziert kein Fachwissen nötig
kein voller Systemzugriff
monatliche Gebühren Abhängigkeit vom
Internet und Dienstleister
Verantwortung für Performanztests
Datenschutz
18.01.2010 Sebastian Wienecke 10
Frameworks ◦ Google: MapReduce ◦ Apache: Hadoop ◦ Facebook: Hive
Key-Value-Stores ◦ Google: BigTable ◦ Amazon: SimpleDB ◦ Facebook: Cassandra
RDBMS in der Cloud ◦ Microsoft: SQL Azure ◦ Amazon RDS ◦ Virtuelle Maschinen
Hybridsysteme ◦ HadoopDB
18.01.2010 Sebastian Wienecke 12
Daten in mehreren Durchgängen vorverarbeiten (Map) und zusammenfassen (Reduce)
Beispiel: Worthäufigkeit 1. Parallel Texte durchgehen (Map) 2. Ergebnisse austauschen 3. Wortanzahl aufsummieren (Reduce)
Aufgabe in Teilaufgaben zerlegen: ◦ dynamische Lastverteilung ◦ Parallelverarbeitung möglich ◦ Fehlerresistend
Analyse teilstrukturierter Daten
kein DBMS
18.01.2010 Sebastian Wienecke 13
DS besteht aus Index und Attributen
weniger Features zugunsten der Performanz ◦ keine Joins, keine FKs, kein ACID, keine Transaktionen
Synergien mit Cloud-Dateisystemen
direkt für hohe Skalierbarkeit entwickelt ◦ skaliert fast linear auf 1000te Rechner
i.d.R. nicht normalisiert
Verwendung: ◦ Log-Daten (im PetaBytes-Bereich)
◦ DWH
◦ Quelle für MapReduce
18.01.2010 Sebastian Wienecke 14
fast alle SQL-Funktionen nutzbar ◦ Joins, Grouping, FKs, Stored Procedures, Caching,
Trigger
RDBMS weit verbreitet
größtenteils standardisiert
ACID-Eigenschaften
Daten normalisiert
Relationen abbildbar
viele Anwendungsgebiete ◦ CRM, WaWi, Buchhaltung
18.01.2010 Sebastian Wienecke 15
Indexstrukturen und FKs erhöhen Datenmenge
ACID erschwert Clustering und Parallelisierung
nicht für Clouds optimiert ◦ Skalierbarkeit auf 100te Rechner nie vorgesehen
◦ Grundannahmen: Fehler selten, High-End-Server, Performanz vor Fehlertoleranz
häufig in VMs betrieben ◦ normale BS (Linux, Unix, Windows)
◦ keine Synergien mit verteilten Cloud-Dateisystemen
◦ keine dynamische Lastverteilung auf beliebig viele Rechner
◦ Ausnahme: SQL Azure, (Amazon RDS)
18.01.2010 Sebastian Wienecke 16
basiert auf SQL-Server ◦ nahezu vollständiger Befehlssatz
für Betrieb in Microsoft-Cloud optimiert ◦ in Azure Plattform integriert
◦ Datenzugriffe prinzipiell wie bei lokalem DBMS
nutzt Lastkontrolle und Replikationen der Cloud ◦ bis zu 3 Replikate pro Instanz
◦ Globaler Load Balancer verteilt Zugriffe
◦ bei Ausfall springt andere Instanz ein Fehlertoleranz
18.01.2010 Sebastian Wienecke 19
Zugriffe von extern (außerhalb Cloud) oder intern möglich
bis 10 GB pro Instanz, mehrere buchbar ◦ keine automatische Partitionierung wie bei K-V-S
(aber geplant) ◦ Parallelisierung durch mehrere DB-Instanzen ◦ Implementierung in Anwendung selbst (manuell
durch Programmierer)
Abrechnung nach Anzahl, Speicherplatz, Transaktionen
Technischer Hintergrund unbekannt, wahrscheinlich VMs
18.01.2010 Sebastian Wienecke 20
vollständiges MySQL 5.1 DBMS Teil der Amazon Web Services Steuerbar mit API-Calls/WebServices nur lückenhafte Integration in Cloud
◦ Replikation noch in Planung ◦ regelmäßige Back-Ups im Amazon S3, als Recovery
einsetzbar
Betrieb in variabler VM (Max. 68 GB RAM, 8 Cores mit ≈ 4 GHz)
Skalierung und Abrechnung wie bei SQL Azure
18.01.2010 Sebastian Wienecke 21
AMIs (Amazon Machine Image) als VM in EC2 betrieben
zahlreiche Varianten verschiedener DBMS ausführbar ◦ IBM DB2, Oracle Database 11g, MS SQL Server,
MySQL…
mehr Konfigurationsaufwand
mehr Verantwortung beim Admin
Integration in Cloud geringer
18.01.2010 Sebastian Wienecke 22
Ansatz: Vorteile von MapReduce und RDBMS kombinieren ◦ Such-/Filteralgorithmen im RDBMS i.d.R. schneller
als eigene Implementierungen
Ziel: Clustering und Lastkontrolle des RDMBS umgehen ◦ Daten in Cloud verteilt
◦ Partitionierung global bekannt
◦ Anfragen an Instanzen aufteilen → Parallelverarbeitung
Geeignet für Nur-Lese-Zugriffe
18.01.2010 Sebastian Wienecke 24
entwickelt an Yale University Open Source Projekt Aufbau
◦ MySQL oder PostgreSQL-Instanzen auf Rechnern ◦ Hadoop als Kommunikationslayer ◦ SQL-2-Hadoop-Connector auf jedem Knoten
Funktionsweise ◦ Hadoop erstellt globalen Ausführungsplan ◦ delegiert möglichst viel Arbeit ab ◦ (Teil-) Ergebnisse in Hadoop aufbereiten
Vorteile ◦ Parallelverarbeitung in RDBMS ◦ Fehlertoleranz von Hadoop ◦ Geschwindigkeit von RDBMS
18.01.2010 Sebastian Wienecke 25
Trend derzeit „in die Cloud“ → EaaS
Zukünftig: ◦ spezielle Cloud-RDBMS und/oder Cloud-
Erweiterungen von RDBMS
◦ Hybridansatz mit MapReduce weiterentwickelt
◦ VMs in der Cloud eher weniger
18.01.2010 Sebastian Wienecke 27