Polyglot Persistence und NoSQL

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

NoSQL. Prof. Dr. Ingo Claßen. Einführung. Kategorisierung von NoSQL-Systemen. Verteilung. Konsistenz. Literatur

NoSQL. Was Architekten beachten sollten. Dr. Halil-Cem Gürsoy adesso AG. SEACON 2012 Hamburg

SODA. Die Datenbank als Document Store. Rainer Willems. Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG

RavenDB, schnell und skalierbar

Eclipse und EclipseLink

Skalierbare Webanwendungen

Big Data und Oracle bringen die Logistik in Bewegung

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

Softwareentwicklung mit Enterprise JAVA Beans

Das Leben der Anderen

Java Persistence API 2.x. crud + relationships + jp-ql

Inhaltsverzeichnis. Lothar Piepmeyer. Grundkurs Datenbanksysteme. Von den Konzepten bis zur Anwendungsentwicklung ISBN:

Einführung in CouchDB

OR-Mapping. WS2008/2009 DBIS/Dr. Karsten Tolle

Datenbankbasierte Lösungen

NoSQL Datenbanken EIN ÜBERBLICK ÜBER NICHT-RELATIONALE DATENBANKEN UND DEREN POTENTIALE IM ALLGEMEINEN UND IN DER INDUSTRIE

SQL- & NoSQL-Datenbanken. Speichern und Analysen von großen Datenmengen

Oracle Big Data Technologien Ein Überblick

Thomas Matzner Berater für Systemanalyse Couchbase. Java User Group München

Datenbanksysteme Kapitel 6: Neue Konzepte der Datenbanktechnologie

Kapitel 14. Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) Prof. Dr. Wolfgang Weber Vorlesung Datenbanken

Configuration Management mit Verbosy OSDC Eric Lippmann

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen


Datenbanksysteme Kapitel 6: Neue Konzepte der Datenbanktechnologie

SQL - Datenbankdesign - Aufbau

XML in der Oracle Datenbank

<Insert Picture Here> RAC Architektur und Installation

Hibernate Das Praxisbuch für Entwickler

Oracle9i Designer. Rainer Willems. Page 1. Leitender Systemberater Server Technology Competence Center Frankfurt Oracle Deutschland GmbH

Relationale Datenbanken Kursziele

NoSQL-Databases. Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck,

Inhaltsverzeichnis. Stefan Edlich, Achim Friedland, Jens Hampe, Benjamin Brauer, Markus Brückner. NoSQL

Kein blasses Schema? NoSQL und Big Data mit Hibernate OGM

HA Architekturen mit MySQL

Inhalt. 1 Einleitung Warum dieses Buch? Der rote Faden Danksagung URL zum Buch 4. TEIL I Einführung 5

IDM: Identity Connector Framework (ICF) und SAP Connectors

ANALYTICS, RISK MANAGEMENT & FINANCE ARCHITECTURE. NoSQL Datenbanksysteme Übersicht, Abgrenzung & Charakteristik

Oracle 10g und SQL Server 2005 ein Vergleich. Thomas Wächtler 39221

Soziotechnische Informationssysteme

Hibernate und Elasticsearch Von 0 auf 100 in 40 Minuten

Deep Dive in WebLogic Server und Multi- Tenancy

Übungsaufgabe Transaktion als Middleware

Datenbanken Grundlagen und Design

Neues aus der nicht-, semi- und relationalen Welt

O/R Mapper. O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010

Hibernate. Vortragender : Nabil Janah Kursleiter : Prof. Dr. Björn Dreher Lehrveranstaltung : Komponenten-Architekturen. Nabil janah 1 Hibernate

Übungsaufgaben zur Klausurvorbereitung Datenbanken 2, SoSe 2016

Persönlichkeiten bei bluehands

Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue?

5000 User+, Erfahrungen im Produktivbetrieb einer Saas-DB. DOAG 2011 Konferenz + Ausstellung Bernhard Vogel & Frank Szilinski, esentri

Oracle Web Center 11g

Treffpunkt Semicolon. NoSQL. mit JPA und Hibernate OGM. Thomas Much

anwendungen programmieren Datenbank entwerfen & Implementierung Analyse bis zur SQL- NoSQL-Datenbanken Uwe Klug Mit einer Einführung in 2.

Datenbanksysteme. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2015/16.

EE SE1 Oracle RDBMS. Andrew Lacy Solution Architect. OPITZ CONSULTING Deutschland GmbH. Foto: Siobhan Bickerdike

Java Forum Stuttgart 2013 twitter.com/kspichale spichale.blogspot.de

Referent: Marko Modsching. Vortrag: JPA mit Hibernate. Datum: Deutsche Software Engineering & Research GmbH

NoSQL Andere Wege in der Speicherung von Geodaten?

Datenadminstrator, Datenbankdesigner, Systemanalytiker (für die logische Sicht zuständig)

Hochverfügbare Webanwendungen mit Apache Cassandra. msg systems ag, 26. November 2014

Überblick und Vergleich von NoSQL. Datenbanksystemen

Im Vergleich: Hochverfügbarkeitslösungen für die MySQL -Datenbank

Aktuelle SE Praktiken für das WWW

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

Christian Kühl. Von JDO zu JPA Entwicklung einer Migrationsstrategie

Gregor Raschke 2008 HIBERNATE. Eine Einführung

DATENBANK LÖSUNGEN. mit Azure. Peter Schneider Trainer und Consultant. Lernen und Entwickeln.

Infinispan - NoSQL für den Enterprise Java Alltag

Darko Križić. NoSQL Datenbanken

Performance Tuning & Scale-Out mit MySQL

Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken

Innovator 11 excellence. DDL importieren. Data-Definition-Language-Dateien in Datenbankschema importieren. HowTo.

Big Data Informationen neu gelebt

Vorlesung ) Einführung

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Übung B. JPA Java Persistence API. Prof. Dr. Andreas Schmietendorf 1. Übung B (Exkurs)

EclipseLink: JPA 2.0 und noch mehr

Erfahrungen aus dem Betatest Oracle Database 11g

Architekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller

NHibernate vs. Entity Framework

Erfahrungen mit TimesTen 7.0

Einleitung 19. Teil I Einführung in Datenbanksysteme 25. Kapitel 1 Wozu Datenbanksysteme da sind 27

Frühling für iphone-apps

1. Einführung. Datenbanken Grundlagen

Die Alternative zum Web-Form Modell

Rein relationale DB in Prod? Datenbanken in produktiven Einsatz? SQL + NoSQL DB in Prod? (MongoDB, Redis, CouchDB, Cassandra)

Effizienzsteigerung durch Mapping- Tools bei der Integration von RDBMS in Java-Anwendungen

Grundlagen der PostgreSQL Administration

PostgreSQL im praktischen Einsatz. Stefan Schumacher

Vesant JDO Genie für transparente Persistenz mit relationalen Datenbanken.

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Relationales Datenbanksystem Oracle

Datenbankpraktikum, Gruppe F. JPA mit Hibernate. Alexander Stautner, Harald Zauner, Sascha Schreier

Referenzielle Integrität SQL

Transkript:

Polyglot Persistence und NoSQL Mehr Flexibilität, mehr Komplexität!? Stefan Kühnlein Solution Architekt OPITZ CONSULTING GmbH Nürnberg, 18.11.2014 OPITZ CONSULTING GmbH 2014 Seite 1

Agenda 1. Rückblick Relationale Datenbanken 2. NoSQL-Datenbanken 3. Entwicklung von NoSQL-Anwendungen 4. Polyglot Persistence OPITZ CONSULTING GmbH 2014 Seite 2

1 Rückblick Relationale Datenbanken OPITZ CONSULTING GmbH 2014 Seite 3

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 4

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 5

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 6

OPITZ CONSULTING GmbH 2014 Seite 7

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 8

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 9

2 NoSQL-Datenbanken OPITZ CONSULTING GmbH 2014 Seite 10

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 11

Oracle NoSQL Datenbank Anwendung Driver Anwendung Driver Einfache Administration Flexibles Datenmodell Voraussagbare Performance ACID Transaktionen Transparente Integration Storage Node Data Center A Storage Node Data Center B OPITZ CONSULTING GmbH 2014 Seite 12

Isolation Level in Oracle NoSQL DB Garantie Lesen von veralteten Daten Daten für eine bestimmte Zeit aktuell Operationen auf bekannte oder frühere Version Operationen auf die aktuellste Version Konsistenz Keine Time based Version based Absolute OPITZ CONSULTING GmbH 2014 Seite 13

SQL vs. NoSQL Zentralisiert auf eine Maschine CA Vertikale Skalierung SQL ACID Index für jedes Attribut Flexible Abfragen Verteilt auf einen Cluster AP/CA/CP Horizontale Saklierung Spezifische APIs BASE Typischerweise auf Keys Vordefinierte Abfragen OPITZ CONSULTING GmbH 2014 Seite 14

3 Entwicklung von NoSQL- Anwendungen OPITZ CONSULTING GmbH 2014 Seite 15

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 16

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 17

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 18

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 19

4 Polyglot Persistence OPITZ CONSULTING GmbH 2014 Seite 20

Relationale Datenbanken vs. NoSQL Oracle Database Oracle NoSQL Database Applikationstyp Komplexe Daten Komplexe Abfragen Einfache Daten Einfache Joins Einfache Daten Einfache Abfragen Applikation Data Management Charakteristiken Voller Funktionsumfang Zentral verwaltete Daten Hohe Performance Verwaltung durch DBA Allgemein verwendbar Low TOC TBs von verteilten Daten Niedrige Latenzzeiten Flexibles Schema Spezielle Verwendung OPITZ CONSULTING GmbH 2014 Seite 21

Polyglot Persistence 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 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 OPITZ CONSULTING GmbH 2014 Seite 22

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 23

Fragen und Antworten OPITZ CONSULTING GmbH 2014 Seite 24

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 OPITZ CONSULTING GmbH 2014 Seite 25