SlideShare une entreprise Scribd logo
1  sur  24
© OPITZ CONSULTING GmbH 2014 
Seite 1 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Stefan Kühnlein Solution Architekt 
OPITZ CONSULTING GmbH 
Mehr Flexibilität, mehr Komplexität!? 
Nürnberg, 18.11.2014 
Polyglot Persistence und NoSQL
© OPITZ CONSULTING GmbH 2014 
Seite 2 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Agenda 
1.Rückblick – Relationale Datenbanken 
2.NoSQL-Datenbanken 
3.Entwicklung von NoSQL-Anwendungen 
4.Polyglot Persistence
© OPITZ CONSULTING GmbH 2014 
Seite 3 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
1 
Rückblick – Relationale Datenbanken
© OPITZ CONSULTING GmbH 2014 
Seite 4 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Relationale Datenbank 
Relationale Datenbank bevorzugt für die Speicherung von Daten 
es existieren ausgereifte Lösungen 
breite Akzeptanz und Vertrautheit 
unzählige Tools 
Speicherung der Daten in 
2 dimensionalen Tabellen 
Verfügt über ein klar definiertes Schema inkl. Relationen und Constraints 
Unterstützung der SQL (Structured Query Language) 
eine „standardisierte“ Abfragesprache 
sehr flexible 
viele Operationen 
Relationale Datenbank haben sich zum Standard entwickelt
© OPITZ CONSULTING GmbH 2014 
Seite 5 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Kennzeichen von Relationalen Datenbanken 
Transaktional 
ACID 
Automicity 
Consistency 
Isolation 
Durability 
Architekturentscheidungen 
Jeder End-User interagiert direkt mit der Datenbank 
RDBMS verwaltet die Integrität und Concurrency 
Unterstützung von unbekannten Anwendungspattern 
Flexible Abfragesprache 
Datenstrukturen ohne Ausrichtung auf eine bestimmtes Abfragemuster 
Datenbank läuft auf einen einzigen Rechner 
Sicherstellung des ACID-Anforderungen
© OPITZ CONSULTING GmbH 2014 
Seite 6 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Grenzen der Relationalen Datenbanken 
Entwicklungen von immer komplexeren Anwendungen auf Basis von Relationalen Datenbanken 
Auslagerung der Businesslogik in eine separate Schicht 
Die Entwicklung von Anwendung erfolgt mehr über einen objektorientierten Ansatz statt einem prozeduralen Ansatz 
Einsatz von speziellen Frameworks 
Skalierbarkeit 
Datenbanken wachsen stetig und geraten außer Kontrolle 
Performance verschlechtert sich exponentiell
© OPITZ CONSULTING GmbH 2014 
Seite 7 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?!
© OPITZ CONSULTING GmbH 2014 
Seite 8 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Empfehlung 1 – Optimierung von Relationalen Datenbanken 
Indizierung der „ganzen“ Datenbank 
-> geringfügig schnellere Ausführung von Datenbankabfrage 
Erstellung von Materialized Views für komplexe Joins 
-> Albtraum diese zu managen 
-> veralten ständig 
Denormalisierung 
-> Redundanzen 
Einführung von Caches 
-> Daten veralten und Cache muss konsistent gehalten werden 
-> Weitere Redundanzen
© OPITZ CONSULTING GmbH 2014 
Seite 9 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Empfehlung 2 – Skalierung von Relationalen Datenbanken 
Einführung von Master/Slave 
Nur möglich unter der Annahme dass mehr lesend auf die Daten zugegriffen werden 
Schreiben auf dem Master; Lesen von den Slaves 
Der Master muss seine Daten zu den Slaves replizieren 
Stellt diese Lösung konsistente Daten zur Verfügung? 
Sharding 
Verbessert sowohl lesende als auch schreibende Zugriffe 
Kein Join über Partitionen 
Keine Referenzielle Integrität 
Benötigt eine Anpassung der Anwendungen 
Einführung eines Single-Point of Failures 
Stellt diese Lösung konsistente Daten zur Verfügung?
© OPITZ CONSULTING GmbH 2014 
Seite 10 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
2 
NoSQL-Datenbanken
© OPITZ CONSULTING GmbH 2014 
Seite 11 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
BASE Akronym 
Basically Available 
Verteilung der Daten durch Replikation auf verschiedene Partitionen 
Zugriff auf Daten möglich auch wenn nicht alle Konten verfügbar sind 
Soft State 
ACID-Systeme gewährleisten die Konsistenz zu jedem beliebigen Zeitpunkt 
Bei NoSQL-Datenbanken wird den Entwickler überlassen, wie damit umgegangen werden soll 
Eventually consistent 
Daten werden erst zu einem späteren Zeitpunkt wieder konsistent
© OPITZ CONSULTING GmbH 2014 
Seite 12 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Oracle NoSQL Datenbank 
Anwendung 
Driver 
Anwendung 
Driver 
Storage Node 
Data Center A 
Storage Node 
Data Center B 
Einfache Administration 
Flexibles Datenmodell 
Voraussagbare Performance 
ACID Transaktionen 
Transparente Integration
© OPITZ CONSULTING GmbH 2014 
Seite 13 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Isolation Level in Oracle NoSQL DB 
Keine 
Time based 
Version based 
Absolute 
Lesen von veralteten Daten 
Daten für eine bestimmte Zeit aktuell 
Operationen auf bekannte oder frühere Version 
Operationen auf die aktuellste Version 
Konsistenz 
Garantie
© OPITZ CONSULTING GmbH 2014 
Seite 14 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Verteilt auf einen Cluster 
AP/CA/CP 
Horizontale Saklierung 
Spezifische APIs 
BASE 
Typischerweise auf Keys 
Vordefinierte Abfragen 
Zentralisiert auf eine Maschine 
CA 
Vertikale Skalierung 
SQL 
ACID 
Index für jedes Attribut 
Flexible Abfragen 
SQL vs. NoSQL
© OPITZ CONSULTING GmbH 2014 
Seite 15 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
3 
Entwicklung von NoSQL- Anwendungen
© OPITZ CONSULTING GmbH 2014 
Seite 16 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
CRUD Operationen für NoSQL 
Erstellen bzw. Aktualisieren von neuen Datensätzen 
put 
putIfAbsent 
putIfPresent 
putIfVersion 
Löschen von Datensätzen 
delete 
deleteIfVersion 
Lesen von Datensätzen 
get 
multiGet 
Iterators 
multiGetIterator 
storeIterator
© OPITZ CONSULTING GmbH 2014 
Seite 17 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
EclipseLink und NoSQL 
Support für JPA-style Access 
Definition von Annotationen und XML zur Identifizierung von NoSQL Entitäten 
Support von JPQL 
Initialer Implementierung für Oracle NoSQL und MongoDB 
Unterstütz den Mix von relationalen und nicht relationalen Daten in eine einzigen Persistence-Unit 
Grundlegende JPA-Konzepte auf NoSQL Datenbanken anwendbar 
Persistence Entity, Embeddables, ElementCollection, OneToOne,…
© OPITZ CONSULTING GmbH 2014 
Seite 18 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
NoSQL und JPA mit EclipseLink 
Speicherung von JSON-Objekten mit JPA in 6 Schritten 
1.Mapping der Objekte 
@Entity 
@NoSql(dataFormat=DataFormatType.MAPPED) 
public class Tweet 
2.Definition der IDs 
@Id 
@GeneratedValue 
private String id; 
3.Mapping der Attribute
© OPITZ CONSULTING GmbH 2014 
Seite 19 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
NoSQL und JPA mit EclipseLink 
4.Definition der Lockingstrategie 
@Version 
private long version; 
5.Definition der Abfragen 
@NamedQuery / @ NamedNatvieQuery 
oder 
Query query = em.createQuery("Select o from Tweet o where text like ‚‘%DOAG2014%‘); 
List<Tweets> tweets = query.getResultList(); 
6.Spezifikation der Verbindung zur Datenbank 
<persistence-unit name="ondb" transaction-type="RESOURCE_LOCAL"> 
<class>de.oc.model.Tweet</class> 
<properties> <property name="eclipselink.target-database" value="org.eclipse.persistence.nosql.adapters.nosql.OracleNoSQLPlatform"/> 
<property name="eclipselink.nosql.connection-spec" value="org.eclipse.persistence.nosql.adapters.nosql.OracleNoSQLConnectionSpec"/> 
<property name="eclipselink.nosql.property.nosql.host" value="Localhost:5000"/> 
<property name="eclipselink.nosql.property.nosql.store" value="kvstore"/> 
<property name="eclipselink.logging.level" value="FINEST"/>
© OPITZ CONSULTING GmbH 2014 
Seite 20 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
4 
Polyglot Persistence
© OPITZ CONSULTING GmbH 2014 
Seite 21 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Relationale Datenbanken vs. NoSQL 
Oracle Database 
Oracle NoSQL Database 
Applikations- typ 
Applikation 
Data Management 
Charakteristiken 
Komplexe Daten 
Komplexe Abfragen 
Einfache Daten 
Einfache Joins 
Einfache Daten Einfache Abfragen 
Low TOC 
TBs von verteilten Daten 
Niedrige Latenzzeiten 
Flexibles Schema 
Spezielle Verwendung 
Voller Funktionsumfang 
Zentral verwaltete Daten 
Hohe Performance 
Verwaltung durch DBA 
Allgemein verwendbar
© OPITZ CONSULTING GmbH 2014 
Seite 22 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Polyglot Persistence 
Polyglot Persistence 
Verwendung von multiplen Datenspeichern, basierend auf der Art und Weise, wie die Anwendung die Daten benötigt 
Relationale Daten für die Speicherung von Benutzerinformationen, Rechnungen… 
Dokumentenorientierte NoSQL-Datenbanken für die Speicherung von Tweets, HitCounts, Logs… 
Graphorientierte NoSQL-Datenbanken für die Speicherung von Profilen aus den sozialen Netzwerken 
Anwendung 
Enterprise werden immer komplexer 
Die Speicherung der Daten in einer einzigen Datenbank ist absurd 
Die Speicherung der Daten in einem einzigen Modell führt sicherlich zu weiteren Problemen
© OPITZ CONSULTING GmbH 2014 
Seite 23 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Herausforderungen 
Architektur 
Steigerung der Komplexität der gesamten Anwendungslandschaft 
Implementierung 
Unterschiedliche Abfragesprache 
Unterschiedliche Datenstrukturen 
Betrieb 
neue Ausausforderungen bzgl. separater 
verschiedene Konzepte bzgl. Hochverfügbarkeit
© OPITZ CONSULTING GmbH 2014 
Seite 25 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Kontakt 
Stefan Kühnlein 
Solution Architect 
OPITZ CONSULTING GmbH Weltenburger Str. 4| 81677 München Tel. +49 (89) 680098-0 stefan.kuehnlein@opitz-consulting.com 
youtube.com/opitzconsulting 
@OC_WIRE 
slideshare.net/opitzconsulting 
xing.com/net/opitzconsulting

Contenu connexe

Plus de OPITZ CONSULTING Deutschland

Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"OPITZ CONSULTING Deutschland
 
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der PraxisOC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der PraxisOPITZ CONSULTING Deutschland
 
OC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und CloudOC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und CloudOPITZ CONSULTING Deutschland
 
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!OPITZ CONSULTING Deutschland
 
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OPITZ CONSULTING Deutschland
 
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...OPITZ CONSULTING Deutschland
 
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?OPITZ CONSULTING Deutschland
 
OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring OPITZ CONSULTING Deutschland
 
Effiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud NutzungEffiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud NutzungOPITZ CONSULTING Deutschland
 
OC|Weekly Talk - Mitarbeiterführung in Zeiten von Social Distance
OC|Weekly Talk - Mitarbeiterführung in Zeiten von Social DistanceOC|Weekly Talk - Mitarbeiterführung in Zeiten von Social Distance
OC|Weekly Talk - Mitarbeiterführung in Zeiten von Social DistanceOPITZ CONSULTING Deutschland
 

Plus de OPITZ CONSULTING Deutschland (20)

Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
 
OC|Webcast "Willkommen in der Cloud!"
OC|Webcast "Willkommen in der Cloud!"OC|Webcast "Willkommen in der Cloud!"
OC|Webcast "Willkommen in der Cloud!"
 
OC|Webcast "Die neue Welt der Virtualisierung"
OC|Webcast "Die neue Welt der Virtualisierung"OC|Webcast "Die neue Welt der Virtualisierung"
OC|Webcast "Die neue Welt der Virtualisierung"
 
10 Thesen zur professionellen Softwareentwicklung
10 Thesen zur professionellen Softwareentwicklung10 Thesen zur professionellen Softwareentwicklung
10 Thesen zur professionellen Softwareentwicklung
 
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
 
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der PraxisOC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
 
OC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und CloudOC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
 
OC|Webcast: Grundlagen der Oracle-Lizenzierung
OC|Webcast: Grundlagen der Oracle-LizenzierungOC|Webcast: Grundlagen der Oracle-Lizenzierung
OC|Webcast: Grundlagen der Oracle-Lizenzierung
 
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
 
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
 
OC|Weekly Talk The Power of DevOps…
OC|Weekly Talk  The Power of DevOps…OC|Weekly Talk  The Power of DevOps…
OC|Weekly Talk The Power of DevOps…
 
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
 
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
 
OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring
 
OC|Weekly Talk - Beratung remote
OC|Weekly Talk - Beratung remoteOC|Weekly Talk - Beratung remote
OC|Weekly Talk - Beratung remote
 
Effiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud NutzungEffiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud Nutzung
 
OC|Weekly Talk - Mitarbeiterführung in Zeiten von Social Distance
OC|Weekly Talk - Mitarbeiterführung in Zeiten von Social DistanceOC|Weekly Talk - Mitarbeiterführung in Zeiten von Social Distance
OC|Weekly Talk - Mitarbeiterführung in Zeiten von Social Distance
 
OC|Weekly Talk Remote Design Thinking
OC|Weekly Talk Remote Design ThinkingOC|Weekly Talk Remote Design Thinking
OC|Weekly Talk Remote Design Thinking
 
OC|Webcast Smart Innovation am 7. April 2020
OC|Webcast Smart Innovation am 7. April 2020OC|Webcast Smart Innovation am 7. April 2020
OC|Webcast Smart Innovation am 7. April 2020
 
2020 oracle lizenznews
2020 oracle lizenznews2020 oracle lizenznews
2020 oracle lizenznews
 

Polyglot Persistence und NoSQL - Mehr Flexibilität, mehr Komplexität!?

  • 1. © OPITZ CONSULTING GmbH 2014 Seite 1 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! Stefan Kühnlein Solution Architekt OPITZ CONSULTING GmbH Mehr Flexibilität, mehr Komplexität!? Nürnberg, 18.11.2014 Polyglot Persistence und NoSQL
  • 2. © OPITZ CONSULTING GmbH 2014 Seite 2 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! Agenda 1.Rückblick – Relationale Datenbanken 2.NoSQL-Datenbanken 3.Entwicklung von NoSQL-Anwendungen 4.Polyglot Persistence
  • 3. © OPITZ CONSULTING GmbH 2014 Seite 3 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 1 Rückblick – Relationale Datenbanken
  • 4. © OPITZ CONSULTING GmbH 2014 Seite 4 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! Relationale Datenbank Relationale Datenbank bevorzugt für die Speicherung von Daten es existieren ausgereifte Lösungen breite Akzeptanz und Vertrautheit unzählige Tools Speicherung der Daten in 2 dimensionalen Tabellen Verfügt über ein klar definiertes Schema inkl. Relationen und Constraints Unterstützung der SQL (Structured Query Language) eine „standardisierte“ Abfragesprache sehr flexible viele Operationen Relationale Datenbank haben sich zum Standard entwickelt
  • 5. © OPITZ CONSULTING GmbH 2014 Seite 5 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! Kennzeichen von Relationalen Datenbanken Transaktional ACID Automicity Consistency Isolation Durability Architekturentscheidungen Jeder End-User interagiert direkt mit der Datenbank RDBMS verwaltet die Integrität und Concurrency Unterstützung von unbekannten Anwendungspattern Flexible Abfragesprache Datenstrukturen ohne Ausrichtung auf eine bestimmtes Abfragemuster Datenbank läuft auf einen einzigen Rechner Sicherstellung des ACID-Anforderungen
  • 6. © OPITZ CONSULTING GmbH 2014 Seite 6 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! Grenzen der Relationalen Datenbanken Entwicklungen von immer komplexeren Anwendungen auf Basis von Relationalen Datenbanken Auslagerung der Businesslogik in eine separate Schicht Die Entwicklung von Anwendung erfolgt mehr über einen objektorientierten Ansatz statt einem prozeduralen Ansatz Einsatz von speziellen Frameworks Skalierbarkeit Datenbanken wachsen stetig und geraten außer Kontrolle Performance verschlechtert sich exponentiell
  • 7. © OPITZ CONSULTING GmbH 2014 Seite 7 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?!
  • 8. © OPITZ CONSULTING GmbH 2014 Seite 8 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! Empfehlung 1 – Optimierung von Relationalen Datenbanken Indizierung der „ganzen“ Datenbank -> geringfügig schnellere Ausführung von Datenbankabfrage Erstellung von Materialized Views für komplexe Joins -> Albtraum diese zu managen -> veralten ständig Denormalisierung -> Redundanzen Einführung von Caches -> Daten veralten und Cache muss konsistent gehalten werden -> Weitere Redundanzen
  • 9. © OPITZ CONSULTING GmbH 2014 Seite 9 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! Empfehlung 2 – Skalierung von Relationalen Datenbanken Einführung von Master/Slave Nur möglich unter der Annahme dass mehr lesend auf die Daten zugegriffen werden Schreiben auf dem Master; Lesen von den Slaves Der Master muss seine Daten zu den Slaves replizieren Stellt diese Lösung konsistente Daten zur Verfügung? Sharding Verbessert sowohl lesende als auch schreibende Zugriffe Kein Join über Partitionen Keine Referenzielle Integrität Benötigt eine Anpassung der Anwendungen Einführung eines Single-Point of Failures Stellt diese Lösung konsistente Daten zur Verfügung?
  • 10. © OPITZ CONSULTING GmbH 2014 Seite 10 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 2 NoSQL-Datenbanken
  • 11. © OPITZ CONSULTING GmbH 2014 Seite 11 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! BASE Akronym Basically Available Verteilung der Daten durch Replikation auf verschiedene Partitionen Zugriff auf Daten möglich auch wenn nicht alle Konten verfügbar sind Soft State ACID-Systeme gewährleisten die Konsistenz zu jedem beliebigen Zeitpunkt Bei NoSQL-Datenbanken wird den Entwickler überlassen, wie damit umgegangen werden soll Eventually consistent Daten werden erst zu einem späteren Zeitpunkt wieder konsistent
  • 12. © OPITZ CONSULTING GmbH 2014 Seite 12 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! Oracle NoSQL Datenbank Anwendung Driver Anwendung Driver Storage Node Data Center A Storage Node Data Center B Einfache Administration Flexibles Datenmodell Voraussagbare Performance ACID Transaktionen Transparente Integration
  • 13. © OPITZ CONSULTING GmbH 2014 Seite 13 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! Isolation Level in Oracle NoSQL DB Keine Time based Version based Absolute Lesen von veralteten Daten Daten für eine bestimmte Zeit aktuell Operationen auf bekannte oder frühere Version Operationen auf die aktuellste Version Konsistenz Garantie
  • 14. © OPITZ CONSULTING GmbH 2014 Seite 14 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! Verteilt auf einen Cluster AP/CA/CP Horizontale Saklierung Spezifische APIs BASE Typischerweise auf Keys Vordefinierte Abfragen Zentralisiert auf eine Maschine CA Vertikale Skalierung SQL ACID Index für jedes Attribut Flexible Abfragen SQL vs. NoSQL
  • 15. © OPITZ CONSULTING GmbH 2014 Seite 15 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 3 Entwicklung von NoSQL- Anwendungen
  • 16. © OPITZ CONSULTING GmbH 2014 Seite 16 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! CRUD Operationen für NoSQL Erstellen bzw. Aktualisieren von neuen Datensätzen put putIfAbsent putIfPresent putIfVersion Löschen von Datensätzen delete deleteIfVersion Lesen von Datensätzen get multiGet Iterators multiGetIterator storeIterator
  • 17. © OPITZ CONSULTING GmbH 2014 Seite 17 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! EclipseLink und NoSQL Support für JPA-style Access Definition von Annotationen und XML zur Identifizierung von NoSQL Entitäten Support von JPQL Initialer Implementierung für Oracle NoSQL und MongoDB Unterstütz den Mix von relationalen und nicht relationalen Daten in eine einzigen Persistence-Unit Grundlegende JPA-Konzepte auf NoSQL Datenbanken anwendbar Persistence Entity, Embeddables, ElementCollection, OneToOne,…
  • 18. © OPITZ CONSULTING GmbH 2014 Seite 18 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! NoSQL und JPA mit EclipseLink Speicherung von JSON-Objekten mit JPA in 6 Schritten 1.Mapping der Objekte @Entity @NoSql(dataFormat=DataFormatType.MAPPED) public class Tweet 2.Definition der IDs @Id @GeneratedValue private String id; 3.Mapping der Attribute
  • 19. © OPITZ CONSULTING GmbH 2014 Seite 19 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! NoSQL und JPA mit EclipseLink 4.Definition der Lockingstrategie @Version private long version; 5.Definition der Abfragen @NamedQuery / @ NamedNatvieQuery oder Query query = em.createQuery("Select o from Tweet o where text like ‚‘%DOAG2014%‘); List<Tweets> tweets = query.getResultList(); 6.Spezifikation der Verbindung zur Datenbank <persistence-unit name="ondb" transaction-type="RESOURCE_LOCAL"> <class>de.oc.model.Tweet</class> <properties> <property name="eclipselink.target-database" value="org.eclipse.persistence.nosql.adapters.nosql.OracleNoSQLPlatform"/> <property name="eclipselink.nosql.connection-spec" value="org.eclipse.persistence.nosql.adapters.nosql.OracleNoSQLConnectionSpec"/> <property name="eclipselink.nosql.property.nosql.host" value="Localhost:5000"/> <property name="eclipselink.nosql.property.nosql.store" value="kvstore"/> <property name="eclipselink.logging.level" value="FINEST"/>
  • 20. © OPITZ CONSULTING GmbH 2014 Seite 20 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 4 Polyglot Persistence
  • 21. © OPITZ CONSULTING GmbH 2014 Seite 21 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! Relationale Datenbanken vs. NoSQL Oracle Database Oracle NoSQL Database Applikations- typ Applikation Data Management Charakteristiken Komplexe Daten Komplexe Abfragen Einfache Daten Einfache Joins Einfache Daten Einfache Abfragen Low TOC TBs von verteilten Daten Niedrige Latenzzeiten Flexibles Schema Spezielle Verwendung Voller Funktionsumfang Zentral verwaltete Daten Hohe Performance Verwaltung durch DBA Allgemein verwendbar
  • 22. © OPITZ CONSULTING GmbH 2014 Seite 22 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! Polyglot Persistence Polyglot Persistence Verwendung von multiplen Datenspeichern, basierend auf der Art und Weise, wie die Anwendung die Daten benötigt Relationale Daten für die Speicherung von Benutzerinformationen, Rechnungen… Dokumentenorientierte NoSQL-Datenbanken für die Speicherung von Tweets, HitCounts, Logs… Graphorientierte NoSQL-Datenbanken für die Speicherung von Profilen aus den sozialen Netzwerken Anwendung Enterprise werden immer komplexer Die Speicherung der Daten in einer einzigen Datenbank ist absurd Die Speicherung der Daten in einem einzigen Modell führt sicherlich zu weiteren Problemen
  • 23. © OPITZ CONSULTING GmbH 2014 Seite 23 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! Herausforderungen Architektur Steigerung der Komplexität der gesamten Anwendungslandschaft Implementierung Unterschiedliche Abfragesprache Unterschiedliche Datenstrukturen Betrieb neue Ausausforderungen bzgl. separater verschiedene Konzepte bzgl. Hochverfügbarkeit
  • 24. © OPITZ CONSULTING GmbH 2014 Seite 25 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! Kontakt Stefan Kühnlein Solution Architect OPITZ CONSULTING GmbH Weltenburger Str. 4| 81677 München Tel. +49 (89) 680098-0 stefan.kuehnlein@opitz-consulting.com youtube.com/opitzconsulting @OC_WIRE slideshare.net/opitzconsulting xing.com/net/opitzconsulting