© OPITZ CONSULTING GmbH 2014 
Seite 1 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Stefan Kühnlein Solut...
© OPITZ CONSULTING GmbH 2014 
Seite 2 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Agenda 
1.Rückblick –...
© OPITZ CONSULTING GmbH 2014 
Seite 3 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
1 
Rückblick – Relati...
© OPITZ CONSULTING GmbH 2014 
Seite 4 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Relationale Datenbank...
© OPITZ CONSULTING GmbH 2014 
Seite 5 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Kennzeichen von Relat...
© OPITZ CONSULTING GmbH 2014 
Seite 6 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Grenzen der Relationa...
© 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 – Optimi...
© OPITZ CONSULTING GmbH 2014 
Seite 9 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Empfehlung 2 – Skalie...
© 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 
Basic...
© OPITZ CONSULTING GmbH 2014 
Seite 12 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Oracle NoSQL Datenba...
© OPITZ CONSULTING GmbH 2014 
Seite 13 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Isolation Level in O...
© OPITZ CONSULTING GmbH 2014 
Seite 14 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Verteilt auf einen C...
© OPITZ CONSULTING GmbH 2014 
Seite 15 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
3 
Entwicklung von N...
© OPITZ CONSULTING GmbH 2014 
Seite 16 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
CRUD Operationen für...
© OPITZ CONSULTING GmbH 2014 
Seite 17 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
EclipseLink und NoSQ...
© OPITZ CONSULTING GmbH 2014 
Seite 18 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
NoSQL und JPA mit Ec...
© OPITZ CONSULTING GmbH 2014 
Seite 19 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
NoSQL und JPA mit Ec...
© OPITZ CONSULTING GmbH 2014 
Seite 20 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
4 
Polyglot Persiste...
© OPITZ CONSULTING GmbH 2014 
Seite 21 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Relationale Datenban...
© OPITZ CONSULTING GmbH 2014 
Seite 22 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Polyglot Persistence...
© OPITZ CONSULTING GmbH 2014 
Seite 23 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Herausforderungen 
...
© OPITZ CONSULTING GmbH 2014 
Seite 25 
Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 
Kontakt 
Stefan Kühn...
Nächste SlideShare
Wird geladen in …5
×

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

635 Aufrufe

Veröffentlicht am

http://www.opitz-consulting.com/go/3-6-11

Mit Polyglot Persistence wird die Verwendung von mehreren unterschiedlichen Datenquellen für eine spezifische Anwendung bezeichnet. Würde man versuchen, z. B. JSON-Dokumente in einer relationalen Datenbank zu speichern, so würde dies sicherlich funktionieren, es gäbe jedoch massive Nachteile bzgl. der Flexibilität und Effektivität beim Speichern der Daten. Um den Anforderungen von unterschiedlichen Datenquellen und Datenformaten gerecht zu werden, wurden verschiedenen Datenbanksysteme entwickelt, die jeweils eine spezielle Problemdomäne adressieren.

So benötigt eine nichttriviale Multiplattform-Anwendung Daten aus unterschiedlichen Formaten und Bereichen, die jeweils eine differenzierte Abfrage benötigen. Hierzu gehören Aspekte wie die Volltextsuche, Key-Value-Pairs, Suche nach geographischen Punkten und graph-transversale Abfragen. Oracle stellt mit der Oracle NoSQL Datenbank eine horizontale skalierbare Key-Value-Datenbank bereit, die über eine Hadoop Integration verfügt und eine einfache leistungsfähige Client API mit sich bringt.

In seinem Vortrag bei der DOAG Konferenz 2014 erläuterte unser Datenbankexperte Stefan Kühnlein das Konzept von Polyglot Persistence und zeigte, wie Oracle NoSQL-Datenbanken in eine Anwendung integriert werden können.

--
Über uns:
Als führender Projektspezialist für ganzheitliche IT-Lösungen tragen wir zur Wertsteigerung der Organisationen unserer Kunden bei und bringen IT und Business in Einklang. Mit OPITZ CONSULTING als zuverlässigem Partner können sich unsere Kunden auf ihr Kerngeschäft konzentrieren und ihre Wettbewerbsvorteile nachhaltig absichern und ausbauen.

Über unsere IT-Beratung: http://www.opitz-consulting.com/go/3-8-10
Unser Leistungsangebot: http://www.opitz-consulting.com/go/3-8-874
Karriere bei OPITZ CONSULTING: http://www.opitz-consulting.com/go/3-8-5

Veröffentlicht in: Umweltschutz
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
635
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
3
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

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

  1. 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. 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. 3. © OPITZ CONSULTING GmbH 2014 Seite 3 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 1 Rückblick – Relationale Datenbanken
  4. 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. 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. 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. 7. © OPITZ CONSULTING GmbH 2014 Seite 7 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?!
  8. 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. 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. 10. © OPITZ CONSULTING GmbH 2014 Seite 10 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 2 NoSQL-Datenbanken
  11. 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. 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. 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. 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. 15. © OPITZ CONSULTING GmbH 2014 Seite 15 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 3 Entwicklung von NoSQL- Anwendungen
  16. 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. 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. 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. 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. 20. © OPITZ CONSULTING GmbH 2014 Seite 20 Polyglot Persistence - Mehr Flexibilität, mehr Komplexität?! 4 Polyglot Persistence
  21. 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. 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. 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. 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

×