SQL oder NoSQL
die Auswahl der richtigen Datenbankplattform für die Cloud

Steffen Krause
Technical Evangelist
@sk_bln
skr...
Das richtige Werkzeug

Wenn man nur einen Hammer hat sieht jedes Problem wie ein Nagel aus
Das universelle Systemdiagramm
Ihr Stack

Load Balancer
Application Tier

Database tier
Ihr Stack der Sorgen
Load balancer
Sicherheit, Skalierung, Verfügbarkeit…

Application tier
Sicherheit, Innovation, Skalie...
Spektrum der Optionen

SQL

Do-it yourself

NoSQL

Vollständig
verwaltet
Wo ist das Problem?

CAP Theorem
CAP Theorem

Consistency

Availability

Partition
Tolerance

Wähle 2 beliebige aus*
OL(T?)P
Anwendungsfall: Relational
Transaktionen

Konto A

Kontoauszug A

Konto B

Kontoauszug B

Image Credit: http://www.taxfix.co.uk/
ACID

A

•Atomicity

C

•Consistency

I

•Isolation

D

•Durability
Komplexes Schema
Flexibler, standardisierter Zugriff

ETL

APP A

APP C

APP B
Point in Time Recovery

Restore
hier
Mo

Mi

Di

Fr

Do

So

Sa

Di

Mo

Do

Mi

Sa

Fr

Mo

So
Demo: Point in Time Recovery
http://youtu.be/yL6m2lEK5Dc
Skalierung

Vertikale Skalierung – RAM, CPU usw.
IOPS
Optionen - Relational
Do-it Yourself
Jede relationale x64/x86 Datenbank die Sie wollen
Oracle
SQL Server
MySQL
Postgres
Ma...
Demo: Provisioned IOPs
http://youtu.be/8QTOf9nH-GE
Best Practices: RDBMS auf AWS

• Verwenden Sie mehrere Availability Zones
– RDS bietet MultiAZ für Oracle, PostgreSQL und ...
Anwendungsfall: NoSQL
Massives Scale Out
Flexibles Schema

2 Wochen später
Niedrige Latenz
NoSQL

BA

•Basically Available

S

•Soft state

E

•Eventually consistent

* Aber einige NoSQL Datenbanken bieten voll tr...
Scaling

Horizontales Scaling – RAM, CPU usw.
Typen von NoSQL Datenbanken
Stark vereinfacht, ohne Memory Caches & Analytische Datenbanken

Schlüssel

Wert

Schlüssel

S...
NoSQL Datenbanken auf AWS

• Whitepaper dokumentieren NoSQL Datenbanken auf AWS
– http://aws.amazon.com/whitepapers
– Couc...
NoSQL Datenbank
DynamoDB
NoSQL Datenbank mit provisioniertem Durchsatz
Hohe, vorhersagbare Performance

Vollständig vertei...
Demo: Flexibles Schema &
NoSQL Performance
http://bit.ly/LKBfVO
Data Warehousing
Reporting & 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?

Σ

⌀

Aggregationen

Selektivität
Image credit: http://www.flickr.com/photos/aakanayev/9489895437/

Komprimierung
Verteiltes Data Warehouse

JDBC/ODBC

10 GigE
(HPC)

Ingestion
Backup
Restore
Amazon Redshift
Redshift
Schnelle und performante Analyse großer Datenmengen
1/10 der Kosten eines traditionellen Data War...
Demo:
Columnstore und
Spaltenbasierte Komprimierung
http://youtu.be/7HWO6naCPtM
http://youtu.be/CwI24T1A4-w
Nett, aber...
Geht das nicht schneller?
Was
macht
eine
Datenbank
so
langsam?
In Memory

cr1.8xlarge und i2.8xlarge haben 244 GB RAM!
Image Copyright by StuSeeger http://www.flickr.com/photos/stuseege...
2*2 Arten

Nur In Memory

z.B.

Columnstore

Rowstore

Hybrid mit On-disk

z.B.
Demo: SAP HANA
http://bit.ly/HanaDemoDE
Elastic MapReduce

Halt, was ist mit Hadoop?
• Viele Kunden verwenden Hadoop für DWH-artige Workloads
– Weil das lange Zei...
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
– A...
Struktur

Gering

Amazon
Glacier

Amazon S3
Amazon
EMR

Amazon
ElastiCache

Amazon
DynamoDB

Amazon
RDS

Amazon
Redshift

...
ElastiCache

Amazon
DynamoDB

Amazon
RDS

Cloud
Search

Amazon Redshift

Amazon
EMR (Hive)

Mittlere
Latenz

ms

ms

ms,se...
Beispiel-Datenarchitektur

Join via Facebook
Add a Skill Page

Web Servers +
MS SQL Server
in RDS

Raw Data

Amazon S3
Use...
Zusammenfassung

• Wählen Sie das richtige Werkzeug für die Aufgabe
• Ihre Wahl: Relational oder NoSQL
– Verwenden Sie RDS...
Ressourcen

• http://aws.amazon.com/de
• Getting started with Free Tier:
http://aws.amazon.com/de/free/
• 25 US$ credits f...
WE ARE HIRING!

• Amazon Web Services wächst in Deutschland
• Wir suchen technische Sales – Consultants Entwickler (m/w) i...
OOP 2014 SQL oder NoSQL - die Auswahl der richtigen Datenbankplattform für die Cloud
OOP 2014 SQL oder NoSQL - die Auswahl der richtigen Datenbankplattform für die Cloud
Nächste SlideShare
Wird geladen in …5
×

OOP 2014 SQL oder NoSQL - die Auswahl der richtigen Datenbankplattform für die Cloud

1.811 Aufrufe

Veröffentlicht am

Präsentation von der OOP 2014

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

OOP 2014 SQL oder NoSQL - die Auswahl der richtigen Datenbankplattform für die Cloud

  1. 1. SQL oder NoSQL die Auswahl der richtigen Datenbankplattform für die Cloud Steffen Krause Technical Evangelist @sk_bln skrause@amazon.de
  2. 2. Das richtige Werkzeug Wenn man nur einen Hammer hat sieht jedes Problem wie ein Nagel aus
  3. 3. Das universelle Systemdiagramm
  4. 4. Ihr Stack Load Balancer Application Tier Database tier
  5. 5. Ihr Stack der Sorgen Load balancer Sicherheit, Skalierung, Verfügbarkeit… Application tier Sicherheit, Innovation, Skalierung, Performance, Verfügbarkeit… Database tier Sicherheit, Innovation, Skalierung, Transaktionen, Performance, Persistenz, Verfügbarkeit, Kenntnisse..
  6. 6. Spektrum der Optionen SQL Do-it yourself NoSQL Vollständig verwaltet
  7. 7. Wo ist das Problem? CAP Theorem
  8. 8. CAP Theorem Consistency Availability Partition Tolerance Wähle 2 beliebige aus*
  9. 9. OL(T?)P
  10. 10. Anwendungsfall: Relational
  11. 11. Transaktionen Konto A Kontoauszug A Konto B Kontoauszug B Image Credit: http://www.taxfix.co.uk/
  12. 12. ACID A •Atomicity C •Consistency I •Isolation D •Durability
  13. 13. Komplexes Schema
  14. 14. Flexibler, standardisierter Zugriff ETL APP A APP C APP B
  15. 15. Point in Time Recovery Restore hier Mo Mi Di Fr Do So Sa Di Mo Do Mi Sa Fr Mo So
  16. 16. Demo: Point in Time Recovery http://youtu.be/yL6m2lEK5Dc
  17. 17. Skalierung Vertikale Skalierung – RAM, CPU usw.
  18. 18. IOPS
  19. 19. Optionen - Relational Do-it Yourself Jede relationale x64/x86 Datenbank die Sie wollen Oracle SQL Server MySQL Postgres MariaDB DB2 Sybase … Vollständig verwaltet Relational Database Service (RDS)
  20. 20. Demo: Provisioned IOPs http://youtu.be/8QTOf9nH-GE
  21. 21. Best Practices: RDBMS auf AWS • 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
  22. 22. Anwendungsfall: NoSQL
  23. 23. Massives Scale Out
  24. 24. Flexibles Schema 2 Wochen später
  25. 25. Niedrige Latenz
  26. 26. NoSQL BA •Basically Available S •Soft state E •Eventually consistent * Aber einige NoSQL Datenbanken bieten voll transaktionale Schreiboperationen
  27. 27. Scaling Horizontales Scaling – RAM, CPU usw.
  28. 28. Typen von NoSQL Datenbanken Stark vereinfacht, ohne Memory Caches & Analytische Datenbanken Schlüssel Wert Schlüssel Spalte Spalte Spalte Schlüssel Wert Schlüssel Spalte Spalte Spalte z.B. Riak z.B. DynamoDB, Cassandra Schlüssel { “document” : “JSON” } Schlüssel { “document” : “JSON” } z.B. MongoDB, ClouchDB Node Node Node Node Node z.B. Neo4j + diverse andere Typen
  29. 29. NoSQL Datenbanken auf AWS • 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
  30. 30. NoSQL Datenbank DynamoDB NoSQL Datenbank mit provisioniertem Durchsatz Hohe, vorhersagbare Performance Vollständig verteilte, fehlertolerante Architektur Feature Details Provisionierter Durchsatz Deployment & Administration Storage Vorhersagbare Performance Durchschnittliche Latenz im einstelligen Millisekunden-Bereich durch SSDs Starke Konsistenz App Services Compute Lese/Schreibdurchsatz einfach nach Bedarf erhöhen und vermindern Fehlertolerant Database Monitoring Sicher Networking Elastic MapReduce AWS Global Infrastructure Sicheres Lesen der aktuellsten Werte Daten repliziert über mehrere Availability Zones Integration mit CloudWatch Integration mit AWS Identity and Access Management (IAM) Integration mit Elastic MapReduce (Hadoop) für komplexe Analysen oder große Datenmengen
  31. 31. Demo: Flexibles Schema & NoSQL Performance http://bit.ly/LKBfVO
  32. 32. Data Warehousing Reporting & Analytics
  33. 33. Komplexes Schema
  34. 34. Komplexes Schema OK, hatten wir schon: Relational (RDS oder EC2) Wenn die Datenmenge nicht zu groß ist
  35. 35. Spaltenbasierte Datenbanken Image credit: http://www.flickr.com/photos/aakanayev/9489895437/
  36. 36. Warum? Σ ⌀ Aggregationen Selektivität Image credit: http://www.flickr.com/photos/aakanayev/9489895437/ Komprimierung
  37. 37. Verteiltes Data Warehouse JDBC/ODBC 10 GigE (HPC) Ingestion Backup Restore
  38. 38. Amazon Redshift Redshift Schnelle und performante Analyse großer Datenmengen 1/10 der Kosten eines traditionellen Data Warehouse Automatisches Deployment & Administration Feature Skalierung Deployment & Administration Niedrige Kosten Columnstore App Services Fehlertolerant Compute Storage Database Vollständig verwaltet Networking AWS Global Infrastructure Sicher Kompatibel Details Skaliert von Terabytes bis Petabytes Preise ab US$999/TB/Jahr Spaltenweise Speicherung optimiert für DWH Workloads Automatische Ersetzung von Nodes & Disks, Automatisches Backup nach S3 Automatisches OS & Software Patching Redshift Daten können verschlüsselt werden Kompatibel mit populären BI Tools über ODBC und JDBC Treiber
  39. 39. Demo: Columnstore und Spaltenbasierte Komprimierung http://youtu.be/7HWO6naCPtM http://youtu.be/CwI24T1A4-w
  40. 40. Nett, aber... Geht das nicht schneller?
  41. 41. Was macht eine Datenbank so langsam?
  42. 42. In Memory cr1.8xlarge und i2.8xlarge haben 244 GB RAM! Image Copyright by StuSeeger http://www.flickr.com/photos/stuseeger/
  43. 43. 2*2 Arten Nur In Memory z.B. Columnstore Rowstore Hybrid mit On-disk z.B.
  44. 44. Demo: SAP HANA http://bit.ly/HanaDemoDE
  45. 45. Elastic MapReduce 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
  46. 46. Sind wir jetzt fertig?
  47. 47. Es muss nicht immer eine Datenbank sein…
  48. 48. Storage Strukturiert – Komplexe Abfragen • SQL – Amazon RDS (MySQL, Oracle, SQL Server, PostgreSQL) • Data Warehouse – Amazon Redshift Strukturiert – Einfache Abfragen • NoSQL – Amazon DynamoDB • Cache – Amazon ElastiCache (Memcached, Redis) • Search – Amazon CloudSearch Unstrukturiert – Eigene Abfragen • Hadoop/HDFS – Amazon Elastic MapReduce (EMR) Unstrukturiert – keine Abfragen • Cloud Storage – Amazon S3 – Amazon Glacier
  49. 49. Struktur Gering Amazon Glacier Amazon S3 Amazon EMR Amazon ElastiCache Amazon DynamoDB Amazon RDS Amazon Redshift Hoch Hoch Hoch Niedrig Niedrig Abfragerate Kosten/GB Latenz Datenmenge Niedrig Niedrig Hoch Hoch
  50. 50. ElastiCache Amazon DynamoDB Amazon RDS Cloud Search Amazon Redshift Amazon EMR (Hive) Mittlere Latenz ms ms ms,sec ms,sec sec,min sec,min,h ms,sec,min rs (~ 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 (unbegrenzt) GB–PB (unbegrenzt) KB (64 KB max) KB (~ Zeilengröße) KB (1 MB max) KB (64 K max) KB-MB KB-GB (5 TB max) GB (40 TB max) Hoch Hoch Niedrig Niedrig Niedrig– Sehr Hoch (unbegrenzt) Sehr Niedrig (unbegrenzt) Elementgröße B-KB Abfragerate Sehr Hoch Sehr Hoch Amazon S3 Amazon Glacier Kosten $$ ($/GB/Monat) ¢¢ ¢¢ $ ¢ ¢ ¢ ¢ Dauerhaftigkeit Sehr Hoch Hoch Hoch Hoch Hoch Sehr Hoch Sehr Hoch Niedrig Mittel
  51. 51. Beispiel-Datenarchitektur Join via Facebook Add a Skill Page Web Servers + MS SQL Server in RDS Raw Data Amazon S3 User Action Trace Events Invite Friends Get Data Aggregated Data Amazon Redshift Amazon S3 Raw Events EMR • Tableau Excel • • Data Analyst Internal Web Hive 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.
  52. 52. Zusammenfassung • 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
  53. 53. Ressourcen • 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
  54. 54. WE ARE HIRING! • 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/

×