Polyglotte Persistenz & Multi-Model Datenbanken

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

Sinn (und Unsinn) für Informix Benutzer

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

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

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

RavenDB, schnell und skalierbar

Stefan Edlich, Achim Friedland, Jens Hampe, Benjamin Brauer. NoSQL. Einstieg in die Welt nichtrelationaler Web 2.0 Datenbanken ISBN:

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

Skalierbare Webanwendungen

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

Continuous Database Design

Überblick und Vergleich von NoSQL. Datenbanksystemen

Datenbanken und Datenbanktypen Tag 1 : Kapitel 1. Christian Inauen. Lernziele. Entwicklung der Datenbanken.

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

Neues aus der nicht-, semi- und relationalen Welt

Präsentation mongodb. David Wild

NoSQL Andere Wege in der Speicherung von Geodaten?

Dokumentenorientierte Datenbanken - MongoDB

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

JUG Saxony Day. OrientDB: Graphen in der Datenbank statt Knoten im Kopf

SODA Die Datenbank als Document Store Rainer Willems Oracle Deutschland B.V. & Co. KG Dreieich Schlüsselworte

NoSQL mit XML. Einsatzmöglichkeiten und Vorteile eines dokumentorien<erten Repositories. MarkupForum Jochen Jörg, Senior Consultant, MarkLogic

NoSQL & Big Data. NoSQL Databases and Big Data. NoSQL vs SQL DBs. NoSQL DBs - Überblick. Datenorientierte Systemanalyse. Gerhard Wohlgenannt

NoSQL Databases and Big Data

Big-Data-Technologien - Überblick - Prof. Dr. Jens Albrecht

Brownbag Session mongodb im Einsatz Grundlagen

Das Leben der Anderen

Zukunft der Oracle Applikationsentwicklung: BC4J & XML

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

Oracle Big Data Technologien Ein Überblick

Big Data Management Thema 14: Cassandra

Agenda. Anwendungsfälle. Integration in Java

Eclipse Scout Heute und Morgen. Jérémie Bresson BSI Business Systems Integration AG

Skalierbare Graph-basierte Analyse und Business Intelligence

Andere Datenbankmodelle. Graphendatenbanken

SQL oder NoSQL: Das ist die Frage! Oracle NoSQL Database

Stefan Edlich Achim Friedland Jens Rampe Benjamin Brauer. NoSQL. Einstieg in die Welt nichtrelationaler Web 2.0 Datenbanken HANSER

Roadshow - What s new in SQL Server 2016

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

Semistrukturierte Daten

Apache Lucene und Oracle in der Praxis - Volltextsuche in der Cloud

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel

Charakteristika von Unternehmensanwendungen

Elasticsearch und die Oracle Datenbank

SimpleVOC-Yetanother. Bausteine für eine Key/Value- Datenbank

Web Technologien NoSQL Datenbanken

1 Einführung Die Grundlagen Praxis 1 das Kassenbuch (zentraler CouchDB-Server) Praxis 2 das Kassenbuch als CouchApp...

Auf einen Blick. 1 Einführung Die Grundlagen Praxis 1 - das Kassenbuch. (zentraler CouchDB-Server) 139

Sprecher. Stephan Krauß Enterprise Portale E-Commerce. Dipl.-Phys. Johannes Knauf Business Analytics Data Science

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML

Big Data in der Praxis

Zustand und Entwicklung von DSpace

(Iemens Gull. Mit 148 Abbildungen

Florian Hopf Anwendungsfälle für

Big Data Informationen neu gelebt

Oracle Datenbank Architektur - nicht nur für Einsteiger

6.4 Nicht-Relationale Datenbanksysteme

Cassandra Query Language (CQL)

NoSQL HANSER. Einstieg in die Web 2.0 Datenbanken. Stefan Edlich Achim Friedland Jens Hampe Benjamin Brauer Markus Brückner

Abstract Graphdatenbanken. Autor: Thi Minh Phuong Pham Modul: Oberseminar Datenbanksysteme Betreuer: Prof. Dr.-Ing. Thomas Kudrass

Schneller als Hadoop?

Oracle Datenbank Architektur nicht nur für Einsteiger. Martin Klier Klug GmbH integrierte Systeme, Teunz

Realtime Daten-Rückschreibung in Tableau mit der Extensions API //

ifadm Vortrag IUG 2015

MongoDB Big Data mit Open Source

NoSQL-Datenbanken. Kapitel 1: Einführung. Dr. Anika Groß Sommersemester Universität Leipzig 1-1

Webbasierte Exploration von großen 3D-Stadtmodellen mit dem 3DCityDB Webclient

Abstrakt zum Vortrag im Oberseminar. Graphdatenbanken. Gero Kraus HTWK Leipzig 14. Juli 2015

Untersuchungen zum Einsatz von Apache CouchDB als Geodatenbank

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

VAADIN, SPRING BOOT & REST

Next Generation Cloud

1. Angular-User Group Meetup, Nürnberg. Authentifizierung mit Angular JS und Microservices

Suchen und Finden mit Lucene und Solr. Florian Hopf

Use Cases für Change Data Streams Change Data Streams erstellen Change Data Capture mit Kafka (Connect) Demo. #Debezium

NoSQL Graphdatenbanken mit HyperGraphDB. Tage der Datenbanken Donnerstag, Ludger Schönfeld, B. Sc. ludger.schoenfeld[at]smail.fh-koeln.

Umsetzung von BI-Lösungen mit Unterstützung einer Suchmaschine. TDWI Stuttgart Tobias Kraft, exensio GmbH

NoSQL & MongoDB Avision GmbH Dr. Gernot Pfanner

Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit dem Web-Framework Django

Die relationale Datenbank hat Konkurrenz!

Agenda. (1) Einleitung (2) neo4j. (3) Beispiel + Demo

Web-Anwendungen, SS17 - Fragentypen

NoSQL. Hintergründe und Anwendungen. Andreas Winschu

als Alternative zu REST Manuel

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

Wide column-stores für Architekten

Datenbanken Grundlagen und Design

NoSQL Datenbanken am Beispiel von CouchDB

Grundlagen Internet-Technologien. Serverseitige Web-Programmierung mit CGI, Teil II: Perl im Web Version 1.11

<Insert Picture Here> MySQL Workbench für Einsteiger

Soziotechnische Informationssysteme

LOVOO auf Wolke 7. Stefan Weigert (Head of Data) BI Trendforum, Dresden,

QBus Enterprise Service Bus. intersales Creating the Digital Enterprise

Oracle Big Data Technologien Ein Überblick

Oracle 9i Einführung Performance Tuning

Infrastruktur entwickeln mit Chef

Google Gears Offline Web?

Transkript:

Polyglotte Persistenz & Multi-Model Datenbanken 192. Datenbankstammtisch 29.10.2014 Michael Hackstein @mchacki www.arangodb.com

Michael Hackstein ArangoDB Kern Entwickler Web Frontend Graphen Visualisierung Graphen Funktionalität!! Organisator der cologne.js!! MS. Inf. (Datenbanken und Informations Systeme) 2

Single-Model Datenarchitektur Relationale Welt 3

Die Ära von Multi-Model bricht an NoSQL Welt Dokumente - JSON type": color": size": material : form : type : "pants", waist": 32, length : 34, color": "blue", material : cotton" Basierend auf Key-Value Stores type": "sweater", color": "blue", Speichern Dokumente mit logischer size": M, material : wool, form : turtleneck" Zusammengehörigkeit in collections type : "television", Dateneinträge werden als Dokumente mit diagonal screen size": 46, hdmi inputs": 3, Attributstruktur behandelt wall mountable": true, built-in digital tuner": true, contrast Ermöglichen Abfragen und Indizierung von dynamic ratio : 50,000:1, Resolution : 1920x1080 Attributwerten "sweater", "blue", M, wool, turtleneck" Graphen Fokussiert auf m-zu-n Beziehungen zwischen Objekten Speichern property graphs. (Knoten und Kanten haben Attribute) Einfache Abfragen für Pfade beliebiger und womöglich unbekannter Länge Key Value Speichere Daten immer zu einem Unique-Key Daten werden nicht von dem System analysiert Insbesondere gibt es kein Schema Und keine Sekundäre Indexe Skalieren und Partitionierung vergleichsweise einfach 4

Ein E-Kommerz System: Relationale Sicht Sales-History Recommendations Kunden Einkaufswagen Produkt-Katalog 5

Polyglotte Persistenz User Sessions Financial Data User Sessions Financial Data Redis RDBMS KeyValue RDBMS Shopping Cart Recommendations Shopping Cart Recommendations Riak Neo4J KeyValue Graph Product Catalog Analytics Product Catalog Analytics MongoDB Cassandra Document Column Reporting User activity log Reporting User activity log RDBMS Cassandra RDBMS Column Quelle: Martin Fowler, http://martinfowler.com/articles/nosql-intro.pdf 6

Single Model NoSQL-Datenbanken Sales-History Recommendations Kunden userid": 239178239, Name": "Smith", productid : 128623883, lastlogin : 2012-11-01", number": 5, Visits": 121, price : 12.20, shipping address : abc, shipping address : def DocumentStore GraphStore DocumentStore userid": 239178239, productid : 128623883, number": 5, price : 12.20, Name": "Meyer", lastlogin : 2012-11-21", Visits": 20, shipping address : xyz, 423453453=> 874365563=> 4328, shirt, L, 1, 12.99 6378, sweater, M, 2, 37.95 3245, sweater, blue, 1, 99.95 3245, pants, 32/34, black, 1, 99.95 KeyValueStore 5463, shirt, S, 1, 9.99 6378, sweater, M, 2, 37.95 3245, pants, 32/34, black, 1, 99.95 Einkaufswagen type": "sweater", color": "blue", size": M, material : wool, form : turtleneck" type : "pants", waist": 32, length : 34, color": "blue", material : cotton" type : "television", diagonal screen size": 46, hdmi inputs": 3, wall mountable": true, built-in digital tuner": true, dynamic contrast ratio : 50,000:1, Resolution : 1920x1080 DocumentStore Produkt-Katalog type": "sweater", color": "blue", size": M, material : wool, form : turtleneck" 7

Vorteile & Aufwand Natürliche Abbildung der Daten in der DB DB ist optimiert für genau dieses Datenformat Abfragen sind zugeschnitten auf dieses Format Fokussierung auf die Anwendungslogik Daten müssen redundant gehalten und synchronisiert werden Mehrere Technologien müssen verwendet werden Administrationsaufwand ist deutlich höher 8

Alternative: Multi Model Datenbanken Können mehrere Datenformate natürlich speichern: Key-Value-Paare Dokumente Graphen Abfrage Möglichkeiten für jedes Format Unterschiedliche Abfragen sind kombinierbar 9

Polyglotte Persistenz User Sessions Financial Data User Sessions Financial Data KeyValue RDBMS ArangoDB ArangoDB Shopping Cart Recommendations Shopping Cart Recommendations KeyValue Graph ArangoDB ArangoDB Product Catalog Analytics Product Catalog Analytics Document Column ArangoDB Cassandra Reporting User activity log Reporting User activity log RDBMS Column RDBMS Cassandra Source: Martin Fowler, http://martinfowler.com/articles/nosql-intro.pdf 10

Use Case: Multi-Model-Databases Sales-History Recommendations Kunden userid": 239178239, Name": "Smith", productid : 128623883, lastlogin : 2012-11-01", number": 5, Visits": 121, price : 12.20, shipping address : abc, shipping address : def DocumentStore GraphStore DocumentStore userid": 239178239, productid : 128623883, number": 5, price : 12.20, Name": "Meyer", lastlogin : 2012-11-21", Visits": 20, shipping address : xyz, 423453453=> 874365563=> 4328, shirt, L, 1, 12.99 6378, sweater, M, 2, 37.95 3245, sweater, blue, 1, 99.95 3245, pants, 32/34, black, 1, 99.95 KeyValueStore 5463, shirt, S, 1, 9.99 6378, sweater, M, 2, 37.95 3245, pants, 32/34, black, 1, 99.95 Einkaufswagen type": "sweater", color": "blue", size": M, material : wool, form : turtleneck" type : "pants", waist": 32, length : 34, color": "blue", material : cotton" type : "television", diagonal screen size": 46, hdmi inputs": 3, wall mountable": true, built-in digital tuner": true, dynamic contrast ratio : 50,000:1, Resolution : 1920x1080 DocumentStore Produkt-Katalog type": "sweater", color": "blue", size": M, material : wool, form : turtleneck" 11

Meine 4 Lieblingsfeatures von MULTI-MODEL speichert Graphen und Dokumente AQL mit eingebauten Joins & Traversals ACID beinhaltet Transaktionen über mehrere Collections FOXX erweitere die API und passe sie an deine Bedürfnisse an 12

AQL Dokument Abfrage: FOR user IN users FILTER user.active == true FOR game IN games FILTER game.player == user._id RETURN username: user.name, score: game.score Verändere Dokumente: FOR u IN users FILTER u.status == 'not active'! UPDATE u WITH active: false IN users Graphen Traversal: RETURN GRAPH_TRAVERSAL( "underground_plan", "stations/main_station", "outbound", mindepth: 2, maxdepth: 5 ) 13

ACID - Transaktionen Führe eine Transaktion aus: db._executetransaction( collections: write: ["users", "products"], read: "recommendations", action: function()! ); // all operations go here throw "failure"; // Triggers rollback 14

Vorteile & Aufwand Natürliche Abbildung der Daten in der DB DB ist optimiert für genau dieses Datenformat Abfragen sind zugeschnitten auf dieses Format Fokussierung auf die Anwendungslogik Nur noch eine Technology nötig Daten müssen redundant gehalten und synchronisiert werden Mehrere Technologien müssen verwendet werden Administrationsaufwand ist deutlich höher 15

Foxx Füge deine eigene, versionierbare REST-API zu ArangoDB hinzu, geschrieben in JavaScript Verwende sie als Web Service von Rails, Node.js etc. Verwende sie direkt als Speicher für Web-frameworks wie AngularJS, EmberJS, Backbone etc. OAuth2.0 und HTTP-Basic Auth eingebaut Operationen sind in der Datenbank gekapselt Weniger Netzwerkverkehr, direkter Datenzugriff Erhöht den Datenschutz Setups mit mehreren Endgeräten Microservices /\ (~( ) ) /\_/\ ( _-----_(@ @) ( \ / / /--\ \ V " " " " 16

Eine Übersicht über features Open Source und Kostenfrei (Apache 2 license) Sharding & Replication eingebaut JavaScript (V8 ist im Server eingebettet) Treiber für viele Programmiersprachen Eingebautes Web Interface Vollständige Dokumentation Professioneller sowie Community Support 17

Technische Details Automatische Schema Erkennung Schema-freie Daten unwahrscheinlich Viele (Teil-)schemata sind zwischen Dokumenten geteilt Datenbankkern geschrieben in C++ JavaScript und C++ für weitere Funktionalität Performanz kritische Teile können nach C++ portiert werden Daten werden als Memory mapped Files im Speicher gehalten Verschiedene Sekundäre Indizes Hashindex, Skiplistindex Geoindex Fulltextindex 18

Sharding Umsetzung Coordinator Coordinator Consensus DBServer DBServer Replica Replica 19

Sharding Verteilung Beim erstellen einer Collection müssen angegeben werden: Anzahl der verwendeten Shards Menge von Attributen welche den Shardkey festlegen (default: _key) Derzeit nicht zur Laufzeit änderbar Dokumente werden anhand eines Hashes über die Shard- Attribute verteilt. Abfragen können auch über alle anderen Attribute erfolgen Der ganze Cluster muss befragt werden Weniger Optimierungsmöglichkeiten! Eine Sinnvolle Menge von Shardattributen muss frühzeitig bestimmt werden 20

Graphen in ArangoDB (Einfach) Edgecollection speichert Kanten zwischen beliebigen anderen Collections Uneingeschränkte Kanten Erstellung Keine Garantien über den Graphen Lose Enden, Verwaiste Kanten Knoten unabhängig von ihren Kanten 21

Graphen in ArangoDB (Erweitert) Graphen-Modul erlaubt Bedingungen in Graphen Kanten können auf Start- und Ziel-Collections eingeschränkt werden Knoten sind nichtmehr unabhängig von ihren Kanten Wenn ein Knoten gelöscht wird, werden Kanten ebenso gelöscht Wenn eine Kante erstellt wird, wird geprüft ob die Knoten existieren Mehrere Collections können in einem Graphen zusammengefasst werden und in einer Abfrage einfach verwendet werden 22

Vielen Dank!!! Gibt es Fragen? Twitter/github: @mchacki Email: mchacki@arangodb.com Google Group: https://groups.google.com/forum/#!forum/arangodb 23