NoSQL Datenbanksysteme...NoSQL Datenbanksysteme Übersicht, Abgrenzung & Charakteristik Ralf...

Preview:

Citation preview

NoSQL Datenbanksysteme Übersicht, Abgrenzung & Charakteristik Ralf Leipner Domain Architect Analytics, Risk Management & Finance 33. Berner Architekten Treffen 15.04.2016

ANALYTICS, RISK MANAGEMENT & FINANCE ARCHITECTURE ARFA

49%

35%

29%

16%

12%

11%

unflexibel, starres Schema

Unfähigkeit in der Skalierung

hohe Latenz, niedrige Perfomance

Kosten, Aufwand

Komplexität

Andere

Warum haben wir NoSQL Datenbanken im Einsatz?

Seite 3 PostFinance AG | 15.04.2016 | V1.00 | öffentlich | NoSQL Datenbanken | Ralf Leipner Quelle: Couchbase NoSQL Survey, Dezember 2011, 1351

–  Datenvolumen & Skalierbarkeit –  Google: BigTable -> HBase –  Facebook Cassanda –  Riak

–  Neue oder / und komplexe Datenstrukturen –  Graphen: Neo4j

–  Änderungsfrequenz –  Agile Softwareentwicklung –  Performance

–  InMemory: Redis –  Verfügbarkeit

Gründe für die Entstehung von NoSQL

Seite 4 PostFinance AG | 15.04.2016 | V1.00 | öffentlich | NoSQL Datenbanken | Ralf Leipner

Es gibt keine gültige oder gebräuchliche Definition nur die lapidare Formulierung »Not Only SQL». Eingrenzung: Unter NoSQL wird eine neue Generation von Datenbanksystemen verstanden, die meistens einige der nachfolgenden Punkte berücksichtigen: 1.  Das zugrundeliegende Datenmodell ist nicht relational. 2.  Die Systeme sind von Anbeginn an auf eine verteilte und horizontale

Skalierbarkeit ausgerichtet. 3.  Das NoSQL-System ist Open Source. 4.  Das System ist schemafrei oder hat nur schwächere

Schemarestriktionen. 5.  Aufgrund der verteilten Architektur unterstützt das System eine einfache

Datenreplikation. 6.  Das System bietet eine einfache API. 7.  Dem System liegt meistens auch ein anderes Konsistenzmodell

zugrunde: z.B. "Eventually Consistent" aber nicht "ACID". Quelle: NoSQL: Einstieg in die Welt nichtrelationaler… von Stefan Edlich, Achim Friedland

Definition von NoSQL Datenbanken

PostFinance AG | 15.04.2016 | V1.00 | öffentlich | NoSQL Datenbanken | Ralf Leipner Seite 5

Kategorien von NoSQL Datenbanken

PostFinance AG | 15.04.2016 | V1.00 | öffentlich | NoSQL Datenbanken | Ralf Leipner Seite 7

Seite 8

http://bigdata-madesimple.com/a-deep-dive-into-nosql-a-complete-list-of-nosql-databases/

PostFinance AG | 15.04.2016 | V1.00 | öffentlich | NoSQL Datenbanken | Ralf Leipner

NoSQL Kategorien

Quelle:: www.nosql-database.org. Die Zusammenstellung erhebt keinen Anspruch auf Vollständigkeit. Es sind Stand 13.04.2016 231 noSQL Datenbanken gelistet. Projekte, die eingestellt wurden, sind nicht berücksichtigt. Graphisch aufgearbeitet mit WebFocus.

PostFinance AG | 15.04.2016 | V1.00 | öffentlich | NoSQL Datenbanken | Ralf Leipner Seite 9

NoSQL Typen total

Quelle:: www.nosql-database.org. Die Zusammenstellung erhebt keinen Anspruch auf Vollständigkeit. Es sind Stand 13.04.2016 231 noSQL Datenbanken gelistet. Projekte, die eingestellt wurden, sind nicht berücksichtigt. Graphisch aufgearbeitet mit WebFocus.

PostFinance AG | 15.04.2016 | V1.00 | öffentlich | NoSQL Datenbanken | Ralf Leipner Seite 10

NoSQL Typen anteilig

Quelle:: www.nosql-database.org. Die Zusammenstellung erhebt keinen Anspruch auf Vollständigkeit. Es sind Stand 13.04.2016 231 noSQL Datenbanken gelistet. Projekte, die eingestellt wurden, sind nicht berücksichtigt. Graphisch aufgearbeitet mit WebFocus.

PostFinance AG | 15.04.2016 | V1.00 | öffentlich | NoSQL Datenbanken | Ralf Leipner Seite 11

–  Assoziatives Array, Key ist der Index meist in binären Blobs gespeichert –  Zugriff nur über einen Schlüssel –  Zusammengesetzte Keys möglich

–  customer:residential:meier –  Teilweise mit Transaktionsunterstützung (REDIS) –  Auch in-memory (Persistieren auf Disk in Intervallen) mit begrenzter

Skalierung –  Auch als skalierbare Lösung ausgelegt (RIAK) –  Replikationen auch kaskadierend –  Einsatzszenario: Time Series Data Management, Media Streaming

Key Value Store

Seite 12 PostFinance AG | 15.04.2016 | V1.00 | öffentlich | NoSQL Datenbanken | Ralf Leipner

–  Basieren auf Konzepten von Googles Big Table –  Verwalten Daten in Tabellen –  Datensatz mit beliebig vielen (auch unterschiedlichen) Spalten –  Dynamisches Schema & nicht schemalos –  Tabellen haben keine Beziehungen –  Sharding: horizontale Skalierung eingebaut

–  Über konsistent Hashing Algorithmus oder über Werte –  Kaum oder keine Aggregationsfunktionen (min, max, count, sum….)

–  Kann durch Integration von Suchmaschinen teilweise kompensiert werden (Apache SOLR, ElasticSearch)

–  Einsatzszenario: Suchmaschinen Index, Message Stores, CMS –  Hoher Durchsatz

–  HBase «column families» in Anlehnung an spaltenorientierte Datenbanken –  Diskzugriff beim Lesen minimieren

Column Stores

Seite 13 PostFinance AG | 15.04.2016 | V1.00 | öffentlich | NoSQL Datenbanken | Ralf Leipner

–  Speicherung der Daten in einer festgelegten Notation z.B. JSON auch BSON –  Abbildung von komplexen Datenstrukturen möglich

–  Datensatz besteht eigentlich aus einer ID & einem Datencontainer –  Keine Abhängigkeiten (Joins) zwischen den Datensätzen, aber über die

Applikationslogik über Referenzen im möglich –  In einigen Produkten ist es möglich in «Collections» gleichartige

Dokumente abzubilden. –  Map / Reduce als Abfrage Mechanismus

–  Map: Bildung von Key Value Paaren –  Reduce: Aggregation

–  Teilweise auch dynamische Abfragen möglich –  API’s z.B. Java, HTTP/REST –  Dynamische Schemata –  Auch in-memory (Persistieren auf Disk in Intervallen)

Document Store

Seite 14 PostFinance AG | 15.04.2016 | V1.00 | öffentlich | NoSQL Datenbanken | Ralf Leipner

–  Speicherung von komplexen vernetzten Domänen und ihren Daten in –  Knoten (Entitäten) –  Kanten (Beziehungstypen) –  Kanten & Knoten können Eigenschaften (Attribute-Wert Paare) haben.

–  Beziehungen werden hier nicht vermieden sondern sind Konzept –  Performance: Physisch werden die Beziehungen nicht wie bei RDBMS

zur Laufzeit über Joins erzeugt sondern «Apriori» persistiert –  Visualisierung im Frontend spielt eine wichtige Rolle –  Algorithmen wie der schnellste Pfad von A-B gehören zum Lieferumfang –  Effiziente Abfragesprachen z.B. Cypher (Neo4j)

Graphen DB’s

Seite 15 PostFinance AG | 15.04.2016 | V1.00 | öffentlich | NoSQL Datenbanken | Ralf Leipner

Seite 16 PostFinance AG | 15.04.2016 | V1.00 | öffentlich | NoSQL Datenbanken | Ralf Leipner

Visualisierte Abfrage einer Graphen Datenbank

Weitere Überlegungen

–  Reifegrad der NoSQL Systeme? –  Integration in den Betrieb –  Backup in verteilten Systemen

–  Aufwand bei Anpassungen oder Migration auf Grund von (neuen) Anforderungen…

–  Steigende Abfragekomplexität –  Welche Datenbank für welchen Zweck? –  Hybride Lösungen der Datenhaltung möglich?

–  Kombinationen aus RDBMS & NoSQL –  Kombination NoSQL

–  NewSQL Datenbanken

PostFinance AG | 15.04.2016 | V1.00 | öffentlich | NoSQL Datenbanken | Ralf Leipner Seite 17

Seite 18

Kontaktdaten - Ralf Leipner

https://www.xing.com/profile/Ralf_Leipner

ralf.leipner@postfinance.ch

https://ch.linkedin.com/in/ralf-leipner-4535b9

Seite 19

rleipner

+41 (79) 669 38 47

PostFinance AG | 15.04.2016 | V1.00 | öffentlich | NoSQL Datenbanken | Ralf Leipner

Recommended