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