SQL oder NoSQLdie Auswahl der richtigen Datenbankplattform für die
Cloud
Steffen KrauseTechnical Evangelist
Das richtige Werkzeug
Wenn man nur einen Hammer hat sieht jedes Problem wie ein Nagel aus
Das universelle Systemdiagramm
Application Tier
Load Balancer
Database tier
Ihr Stack
Application tier
Load balancer
Database tier
Sicherheit, Innovation, Skalierung, Transaktionen, Performance, Persistenz,Verfügbarkeit, Kenntnisse..
Sicherheit, Innovation, Skalierung, Performance, Verfügbarkeit…
Sicherheit, Skalierung, Verfügbarkeit…
Ihr Stack der Sorgen
Spektrum der Optionen
SQL NoSQL
Do-it yourself Vollständig verwaltet
Wo ist das Problem?
CAP Theorem
CAP Theorem
CConsistency
PPartition Tolerance
AAvailability
Wähle 2 beliebige aus*
OL(T?)P
Anwendungsfall: Relational
Transaktionen
Konto A Konto B
Image Credit: http://www.taxfix.co.uk/
Kontoauszug A Kontoauszug B
ACID
•AtomicityA•ConsistencyC• IsolationI•DurabilityD
Komplexes Schema
Flexibler, standardisierter Zugriff
SQLAPP A
APP B
ETL
APP C
Point in Time Recovery
Mo
Di
Mi
Do
Fr
Sa
So
Mo
Di
Mi
Do
Fr
Sa
So
Mo
Restorehier
Demo: Point in Time Recoveryhttp://youtu.be/yL6m2lEK5Dc
Vertikale Skalierung – RAM, CPU usw.
Skalierung
IOPS
IOPS
Optionen - Relational
Do-it YourselfVollständig
verwaltet
Relational Database Service (RDS)Jede relationale x64/x86 Datenbank die Sie wollen
OracleSQL ServerMySQLPostgresMariaDBDB2Sybase…
Demo: Provisioned IOPshttp://youtu.be/8QTOf9nH-GE
• Verwenden Sie mehrere Availability Zones– RDS bietet MultiAZ für Oracle, PostgreSQL und MySQL
• Verwenden Sie Provisioned IOPs– Bis zu 30000 für RDS– Bis zu 4000 für EBS Volumes
• Striping (RAID 0) möglich für mehr
• Backup nach S3– Verwendung von DB Snapshots oder EBS Snapshots oder direktes S3 Backup wenn
unterstützt (z.B. Oracle RMAN)• Verwenden Sie geeignete Instanztypen -> m3, c3, m2• Skalierung hoch/runter innerhalb von 5-20 Minuten durch Änderung des
Instanztyps
Best Practices: RDBMS auf AWS
Anwendungsfall: NoSQL
Massives Scale Out
Flexibles Schema
2 Wochen später
Niedrige Latenz
•Basically AvailableB A
•Soft stateS
•Eventually consistentE
NoSQL
* Aber einige NoSQL Datenbanken bieten voll transaktionale Schreiboperationen
Horizontales Scaling – RAM, CPU usw.
Scaling
Typen von NoSQL Datenbanken
Schlüssel Wert Schlüssel Spalte Spalte Spalte
Schlüssel Wert Schlüssel Spalte Spalte Spalte
Schlüssel { “document” : “JSON” }
Schlüssel { “document” : “JSON” }
+ diverse andere Typen
Node Node
Node
Node
Nodez.B. MongoDB, ClouchDB
z.B. DynamoDB, Cassandra
Stark vereinfacht, ohne Memory Caches & Analytische Datenbanken
z.B. Riak
z.B. Neo4j
• Whitepaper dokumentieren NoSQL Datenbanken auf AWS– http://aws.amazon.com/whitepapers– Couchbase on AWS– Riak on AWS– MongoDB on AWS
• Für persistente Datenbanken: Cluster aus Hoch-IOPS Instanzen– I2 Instanzen haben bis zu 350000 Write-IOPs– Instance Store Disks, wenn Cluster redundant ist
NoSQL Datenbanken auf AWS
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
DynamoDBNoSQL Datenbank mit provisioniertem Durchsatz
Hohe, vorhersagbare Performance
Vollständig verteilte, fehlertolerante Architektur
Feature Details
Provisionierter Durchsatz
Lese/Schreibdurchsatz einfach nach Bedarf erhöhen und vermindern
Vorhersagbare Performance
Durchschnittliche Latenz im einstelligen Millisekunden-Bereich durch SSDs
Starke Konsistenz Sicheres Lesen der aktuellsten Werte
Fehlertolerant Daten repliziert über mehrere Availability Zones
Monitoring Integration mit CloudWatch
Sicher Integration mit AWS Identity and Access Management (IAM)
Elastic MapReduce Integration mit Elastic MapReduce (Hadoop) für komplexe Analysen oder große Datenmengen
NoSQL Datenbank
Demo: Flexibles Schema & NoSQL Performance
http://bit.ly/LKBfVO
Data WarehousingReporting & Analytics
Komplexes Schema
Komplexes Schema
OK, hatten wir schon: Relational (RDS oder EC2)Wenn die Datenmenge nicht zu groß ist
Spaltenbasierte Datenbanken
Image credit: http://www.flickr.com/photos/aakanayev/9489895437/
Warum?
Image credit: http://www.flickr.com/photos/aakanayev/9489895437/
Selektivität
Σ ⌀Aggregationen
Komprimierung
Verteiltes Data Warehouse
10 GigE(HPC)
IngestionBackupRestore
SQL Clients/BI Tools
128GB RAM
16TB disk
16 cores
Amazon S3
JDBC/ODBC
128GB RAM
16TB disk
16 cores
Compute Node
128GB RAM
16TB disk
16 cores
Compute Node
128GB RAM
16TB disk
16 cores
Compute Node
LeaderNode
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Amazon Redshift
RedshiftSchnelle und performante Analyse großer Datenmengen
1/10 der Kosten eines traditionellen Data Warehouse
Automatisches Deployment & Administration
Feature Details
Skalierung Skaliert von Terabytes bis Petabytes
Niedrige Kosten Preise ab US$999/TB/Jahr
Columnstore Spaltenweise Speicherung optimiert für DWH Workloads
Fehlertolerant Automatische Ersetzung von Nodes & Disks, Automatisches Backup nach S3
Vollständig verwaltet
Automatisches OS & Software Patching
Sicher Redshift Daten können verschlüsselt werden
Kompatibel Kompatibel mit populären BI Tools über ODBC und JDBC Treiber
Demo: Columnstore und
Spaltenbasierte Komprimierunghttp://youtu.be/7HWO6naCPtM http://youtu.be/CwI24T1A4-w
Nett, aber...Geht das nicht schneller?
Was macht
eine Datenbank
so langsam?
Image Copyright by StuSeeger http://www.flickr.com/photos/stuseeger/
In Memory
cr1.8xlarge und i2.8xlarge haben 244 GB RAM!
2*2 Arten
Rowstore Columnstore
Nur In Memory
Hybrid mit On-disk z.B.
z.B.
Demo: SAP HANAhttp://bit.ly/HanaDemoDE
Halt, was ist mit Hadoop?• Viele Kunden verwenden Hadoop für DWH-artige Workloads
– Weil das lange Zeit die einzige skalierbare, kostengünstige Möglichkeit war
– In vielen Fällen ist ein relationaler DWH-Dienst für DWH Workloads schneller und preiswerter
• Hadoop/EMR ist erste Wahl für komplexe Berechnungen auf großen Datenmengen– Auch für explorative oder ETL-artige Jobs
Elastic MapReduce
Sind wir jetzt fertig?
Es muss nicht immer eine Datenbank sein…
Storage
Strukturiert – Komplexe Abfragen• SQL
– Amazon RDS (MySQL, Oracle, SQL Server, PostgreSQL)
• Data Warehouse– Amazon Redshift
• Search– Amazon CloudSearch
Unstrukturiert – Eigene Abfragen• Hadoop/HDFS
– Amazon Elastic MapReduce (EMR)
Strukturiert – Einfache Abfragen• NoSQL
– Amazon DynamoDB• Cache
– Amazon ElastiCache (Memcached, Redis)
Unstrukturiert – keine Abfragen• Cloud Storage
– Amazon S3– Amazon Glacier
AmazonElastiCache
AmazonRDS
AmazonRedshift
Amazon S3
AbfragerateHoch Niedrig
Kosten/GBHoch Niedrig
LatenzNiedrig Hoch
DatenmengeNiedrig Hoch
AmazonGlacier
AmazonCloudSearch
AmazonEMR
Stru
ktur
Gering
Hoch
AmazonDynamoDB
Elasti-Cache
AmazonDynamoDB
AmazonRDS
CloudSearch
Amazon Redshift Amazon EMR (Hive)
Amazon S3 Amazon Glacier
Mittlere Latenz
ms ms ms,sec ms,sec sec,min sec,min,hrs
ms,sec,min(~ Größe)
hrs
Datenmenge GB GB–TBs(unbegrenzt)
GB–TB(3 TB Max)
GB–TB TB–PB(1.6 PB max)
GB–PB(~nodes)
GB–PB(unbe-grenzt)
GB–PB(unbe-grenzt)
Elementgröße B-KB KB(64 KB max)
KB(~ Zeilen-größe)
KB(1 MB max)
KB(64 K max)
KB-MB KB-GB(5 TB max)
GB(40 TB max)
Abfragerate Sehr Hoch Sehr Hoch Hoch Hoch Niedrig Niedrig Niedrig–Sehr Hoch(unbe-grenzt)
Sehr Niedrig(unbe-grenzt)
Kosten($/GB/Monat)
$$ ¢¢ ¢¢ $ ¢ ¢ ¢ ¢
Dauer-haftigkeit
Niedrig - Mittel
Sehr Hoch Hoch Hoch Hoch Hoch Sehr Hoch Sehr Hoch
Beispiel-Datenarchitektur
Data Analyst
Raw Data
Get Data
Join via Facebook
Add a Skill Page
Invite Friends
Web Servers + MS SQL Server
in RDS Amazon S3User Action Trace Events
EMRHive Scripts Process Content
• Process log files with regular expressions to parse out the info we need.
• Processes cookies into useful searchable data such as Session, UserId, API Security token.
• Filters surplus info like internal varnish logging.
Amazon S3
Aggregated Data
Raw Events
Internal Web
Excel Tableau
Amazon Redshift
• Wählen Sie das richtige Werkzeug für die Aufgabe• Ihre Wahl: Relational oder NoSQL
– Verwenden Sie RDS für Prototyping und hochwertige Daten– Verwenden Sie Amazon DynamoDB für hochperformante,
persistente, kostengünstige Speicherung– Verwenden Sie Redshift für skalierbares, kostengünstiges Data
Warehousing• Ihre Wahl: Do-it-yourself oder voll verwaltet
– Verwaltete Dienste ermöglichen Ihnen den Fokus auf die eigentliche Aufgabe
Zusammenfassung
• http://aws.amazon.com/de • Getting started with Free Tier:
http://aws.amazon.com/de/free/• 25 US$ credits für neue Kunden:
http://aws.amazon.com/de/campaigns/account/• Twitter: @AWS_Aktuell• Facebook:
http://www.facebook.com/awsaktuell • Webinare: http://aws.amazon.com/de/about-aws/events/• Slides: http://de.slideshare.net/AWSAktuell • Diese Präsentation: http://bit.ly/OOP2014Krause
Ressourcen
• Amazon Web Services wächst in Deutschland• Wir suchen technische Sales – Consultants Entwickler (m/w) in:
– Berlin– München
• Wir suchen Software – Entwickler (m/w) in:– Dresden– Berlin
• Bewerben Sie sich noch heute und wachsen Sie mit uns! http://aws.amazon.com/de/careers/
WE ARE HIRING!