NoSQL Datenbanksysteme - Berner Architekten Treffen

Werbung
ARFA
ANALYTICS, RISK MANAGEMENT & FINANCE ARCHITECTURE
NoSQL Datenbanksysteme
Übersicht, Abgrenzung & Charakteristik
Ralf Leipner
Domain Architect Analytics, Risk Management & Finance
33. Berner Architekten Treffen
15.04.2016
Warum haben wir NoSQL Datenbanken im Einsatz?
Andere
Komplexität
Kosten, Aufwand
hohe Latenz, niedrige Perfomance
Unfähigkeit in der Skalierung
unflexibel, starres Schema
11%
12%
16%
29%
35%
49%
Quelle: Couchbase NoSQL Survey, Dezember 2011, 1351
PostFinance AG | 15.04.2016 | V1.00 | öffentlich | NoSQL Datenbanken | Ralf Leipner
Seite 3
Gründe für die Entstehung von NoSQL
–  Datenvolumen & Skalierbarkeit
–  Google: BigTable -> HBase
–  Facebook Cassanda
–  Riak
–  Neue oder / und komplexe Datenstrukturen
–  Graphen: Neo4j
–  Änderungsfrequenz
–  Agile Softwareentwicklung
–  Performance
–  InMemory: Redis
–  Verfügbarkeit
PostFinance AG | 15.04.2016 | V1.00 | öffentlich | NoSQL Datenbanken | Ralf Leipner
Seite 4
Definition von NoSQL Datenbanken
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".
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
http://bigdata-madesimple.com/a-deep-dive-intonosql-a-complete-list-of-nosql-databases/
PostFinance AG | 15.04.2016 | V1.00 | öffentlich | NoSQL Datenbanken | Ralf Leipner
Seite 8
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
Key Value Store
–  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
PostFinance AG | 15.04.2016 | V1.00 | öffentlich | NoSQL Datenbanken | Ralf Leipner
Seite 12
Column Stores
–  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
PostFinance AG | 15.04.2016 | V1.00 | öffentlich | NoSQL Datenbanken | Ralf Leipner
Seite 13
Document Store
–  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)
PostFinance AG | 15.04.2016 | V1.00 | öffentlich | NoSQL Datenbanken | Ralf Leipner
Seite 14
Graphen DB’s
–  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)
PostFinance AG | 15.04.2016 | V1.00 | öffentlich | NoSQL Datenbanken | Ralf Leipner
Seite 15
Visualisierte Abfrage einer Graphen Datenbank
PostFinance AG | 15.04.2016 | V1.00 | öffentlich | NoSQL Datenbanken | Ralf Leipner
Seite 16
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
+41 (79) 669 38 47
[email protected]
https://www.xing.com/profile/Ralf_Leipner
https://ch.linkedin.com/in/ralf-leipner-4535b9
rleipner
PostFinance AG | 15.04.2016 | V1.00 | öffentlich | NoSQL Datenbanken | Ralf Leipner
Seite 19
Herunterladen