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

Preview:

DESCRIPTION

Präsentation von der OOP 2014

Citation preview

SQL oder NoSQLdie Auswahl der richtigen Datenbankplattform für die

Cloud

Steffen KrauseTechnical Evangelist

@sk_blnskrause@amazon.de

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!

Recommended