56
SQL oder NoSQL die Auswahl der richtigen Datenbankplattform für die Cloud Steffen Krause Technical Evangelist @sk_bln [email protected]

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

Embed Size (px)

DESCRIPTION

Präsentation von der OOP 2014

Citation preview

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

SQL oder NoSQLdie Auswahl der richtigen Datenbankplattform für die

Cloud

Steffen KrauseTechnical Evangelist

@[email protected]

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

Das richtige Werkzeug

Wenn man nur einen Hammer hat sieht jedes Problem wie ein Nagel aus

Page 3: OOP 2014 SQL oder NoSQL - die Auswahl der richtigen Datenbankplattform für die Cloud
Page 4: OOP 2014 SQL oder NoSQL - die Auswahl der richtigen Datenbankplattform für die Cloud

Das universelle Systemdiagramm

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

Application Tier

Load Balancer

Database tier

Ihr Stack

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

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

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

Spektrum der Optionen

SQL NoSQL

Do-it yourself Vollständig verwaltet

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

Wo ist das Problem?

CAP Theorem

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

CAP Theorem

CConsistency

PPartition Tolerance

AAvailability

Wähle 2 beliebige aus*

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

OL(T?)P

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

Anwendungsfall: Relational

Page 12: OOP 2014 SQL oder NoSQL - die Auswahl der richtigen Datenbankplattform für die Cloud
Page 13: OOP 2014 SQL oder NoSQL - die Auswahl der richtigen Datenbankplattform für die Cloud

Transaktionen

Konto A Konto B

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

Kontoauszug A Kontoauszug B

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

ACID

•AtomicityA•ConsistencyC• IsolationI•DurabilityD

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

Komplexes Schema

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

Flexibler, standardisierter Zugriff

SQLAPP A

APP B

ETL

APP C

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

Point in Time Recovery

Mo

Di

Mi

Do

Fr

Sa

So

Mo

Di

Mi

Do

Fr

Sa

So

Mo

Restorehier

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

Demo: Point in Time Recoveryhttp://youtu.be/yL6m2lEK5Dc

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

Vertikale Skalierung – RAM, CPU usw.

Skalierung

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

IOPS

IOPS

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

Optionen - Relational

Do-it YourselfVollständig

verwaltet

Relational Database Service (RDS)Jede relationale x64/x86 Datenbank die Sie wollen

OracleSQL ServerMySQLPostgresMariaDBDB2Sybase…

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

Demo: Provisioned IOPshttp://youtu.be/8QTOf9nH-GE

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

• 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

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

Anwendungsfall: NoSQL

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

Massives Scale Out

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

Flexibles Schema

2 Wochen später

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

Niedrige Latenz

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

•Basically AvailableB A

•Soft stateS

•Eventually consistentE

NoSQL

* Aber einige NoSQL Datenbanken bieten voll transaktionale Schreiboperationen

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

Horizontales Scaling – RAM, CPU usw.

Scaling

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

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

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

• 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

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

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

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

Demo: Flexibles Schema & NoSQL Performance

http://bit.ly/LKBfVO

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

Data WarehousingReporting & Analytics

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

Komplexes Schema

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

Komplexes Schema

OK, hatten wir schon: Relational (RDS oder EC2)Wenn die Datenmenge nicht zu groß ist

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

Spaltenbasierte Datenbanken

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

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

Warum?

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

Selektivität

Σ ⌀Aggregationen

Komprimierung

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

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

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

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

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

Demo: Columnstore und

Spaltenbasierte Komprimierunghttp://youtu.be/7HWO6naCPtM http://youtu.be/CwI24T1A4-w

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

Nett, aber...Geht das nicht schneller?

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

Was macht

eine Datenbank

so langsam?

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

Image Copyright by StuSeeger http://www.flickr.com/photos/stuseeger/

In Memory

cr1.8xlarge und i2.8xlarge haben 244 GB RAM!

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

2*2 Arten

Rowstore Columnstore

Nur In Memory

Hybrid mit On-disk z.B.

z.B.

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

Demo: SAP HANAhttp://bit.ly/HanaDemoDE

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

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

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

Sind wir jetzt fertig?

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

Es muss nicht immer eine Datenbank sein…

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

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

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

AmazonElastiCache

AmazonRDS

AmazonRedshift

Amazon S3

AbfragerateHoch Niedrig

Kosten/GBHoch Niedrig

LatenzNiedrig Hoch

DatenmengeNiedrig Hoch

AmazonGlacier

AmazonCloudSearch

AmazonEMR

Stru

ktur

Gering

Hoch

AmazonDynamoDB

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

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

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

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

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

• 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

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

• 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

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

• 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!