Datenmanagement je nach Bedarf Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Analysen fordern ihre speziellen Daten •Klassisches Query + Reporting wird ergänzt Bild+Spracherkennung Pattern Analysen 2 Kilometer Graph-basierte Analysen Beziehungen Nachbarschaften Cluster Automatisierte Statistiken Messdatenerfassung Verteilungen Gewichtungen Ausreißer Data Mining Spatial Analysen Text Mining Korrelationen Regressionen Klassifikationen Clustering Zeitreihenbetrachtung Kürzeste Wege Geographische Verteilung Umfeldanalysen Sentiments Textklassifikation Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Zusätzliche Anforderungen an die Datenhaltung HDFS noSQL RDBMS Geographische Daten (Spatial) Graphen-Daten (Netzwerke) Geographische Daten (Spatial) Graphen-Daten (Netzwerke) Geographische Daten (Spatial) Graphen-Daten (Netzwerke) Formatlose Daten (JSON) Formatlose Daten (JSON) Formatlose Daten (JSON) Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal 3 Eine von vielen ähnlichen Stimmen – Martin Fowler http://martinfowler.com/nosql.html Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 4 2 Herangehensweisen: Single-Model oder Multi-Model Single-Model Relational Database JSON Document Store Multi-Model Graph Database XML Database Relational Data Graph Data JSON Documents XML Data Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 5 Aspekte Multi-Model Ansatz: • Profitiert von Konsolidierung und Standardisierung • Standardisierte Administration • Konsistente Datensicherheitregeln • Einfache Integration von Daten unterschiedlicher Formate • Transkationaler Kontext und Verfügbarkeit Single-Model Ansatz: • Profitiert von Spezialisierung • Spezialisierte Datenformate • Spezialisierte Zugriffsmethoden und Indizes • Spezielle Programmiersprachen • Sehr Bedarfsorientiert Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 6 Oracle Produkt Strategie erlaubt beide Wege Single-Model • Oracle stellt unterschiedliche Data Stores bereit – Oracle Datenbank (RDBMS) – Oracle NoSQL Database (K-V) – Hadoop • Integration mittels Werkzeugen und Schnittstellen – z.B. Big Data SQL Multi-Model • Oracle Datenbank unterstützt mehrere Datenmodelle – Relational – XML – JSON - Spatial - Graph - OLAP • Integrierter Zugriff auf alle Objekte/Daten in der Datenbank Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 7 HDFS (Hadoop), RDBMS, noSQL Concurrency 5 Skills Acquisition Cost 4.5 Complex Query Response Times 4 3.5 3 2.5 2 Backup per TB Cost Single Record Read/Write Performance 1.5 1 RDBMS 0.5 NoSQL DB 0 Hadoop System per TB Cost Bulk Write Performance Governance Tools Bigger numbers are better! Privileged User Security General User Security Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 8 NoSQL Datenbanken Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal 9 NoSQL • Sammelbegriff für nicht-relationale DBs, die – – – – – – – massiv parallelisierbar sind, horizontal verteilt auf mehreren Servern Daten ablegen („Sharding“), weitgehend ohne Datenmodell („Schema-less“) arbeiten Datenkonsistenz nicht zwingend durchsetzen (nicht ACID compliant), sehr große Datenmengen schnell und kostengünstig speichern und wieder abrufen können, keine Join-Operationen oder Multi-Object Transaktionen unterstützen und sehr entwicklerspezifisch sind. • Übersicht auf http://www.nosql-database.org/ • Produkte nur schwer vergleichbar • Kaum Standards Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 10 Vergleich SQL mit NoSQL ACID oder BASE? SQL - RDBMS (ACID) NoSQL (BASE) Atomicity Consistency Isolation Durability Basically Available Soft State Eventual consistency Zwingend höchste Priorität für Datenkonsistenz und Integrität Konsistenz und Integrität können teilweise aufgegeben werden ("C" oder "A" in "CAP") Verteilte Datenhaltung per Replikation möglich, aber untergeordnet Verteilte Datenhaltung (Partition Awareness) hat höchste Priorität Datenmodell als Schema Kein Datenmodell Abfragesprache: SQL Keine Abfragesprache; direkte API-Zugriffe Abfrageausführung durch Optimizer Know-How in der Anwendung Generische Datenbank für viele Anwendungen Datenhaltung wird speziell auf eine Anwendung zugeschnitten Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 11 Typen von NoSQL Datenbanken Key-Value Stores Document Stores Bsp.: Oracle Berkeley DB Redis Bsp.: MongoDB MarkLogic (XML) Column Stores / BigTable Graph Datenbanken Bsp.: HBase Cassandra Bsp.: Neo4J Oracle NoSQL (mit RDF) Abbildungen : http://www.thoughtworks.com/insights/blog/nosql-databases-overview Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 12 Was ist ein Key-Value-Store? Key-Value Store CUSTOMERS Key = Index Key Zeilen Value 010101010 … … … … … 010101011 … … … … … … … … … … … Datenstrukturen sind nicht selbstbeschreibend • • • • • • Im wesentlichen eine zweispaltige Tabelle – "KEY" und "VALUE" VALUE kann auch ein komplexes Objekt sein Die Anwendung kennt die Datenstrukturen – nicht selbstbeschreibend Joins zu anderen Key-Value Stores allein durch die Anwendung Einfache Zugriffe: GET, PUT, DELETE Einfach parallelisierbar Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Die Oracle NoSQL Datenbank Flexibles und einfaches Datenmodell • Key-Value-Paare – Major-/Minor-Key Paradigma – Einfache Operationen – CRUD API (Create | Read / Retrieve | Update | Delete), Multi-Write support • HTTP (REST): PUT oder POST | GET | PATCH oder PUT | DELETE – Scope der Transaktion – Werte eines Major key ein API Aufruf Major key: userid Strings Minor key: Byte Array Value Options: Value: Opaque Object subscriptions expiration date JSON Large Object address phone # email id RDF Triples Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | picture .jpg Tables/Rows 14 Beispiel Key-Value-Paar Major key SSN: 111-22-3333 First_Name: Ashok Minor key Last_Name: Joshi Address: Street: 400 Oracle Parkway City: Redwood Shores State: CA ZIP: 94085 Nested Minor key Balance: $1,000,000.00 Transaction history: 2013-01: Buy X for $100;00, sell Y for $200.00 2013-02: Buy X for $140.00, 2013-03: … Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 15 Oracle NoSQL Database Beispiel mit Java API : Daten lesen aus dem Key-Value-Store public class ReadKVData { public static void main(String[] args){ KVStoreConfig config = new KVStoreConfig("kvstore", "localhost:5000"); KVStore store = KVStoreFactory.getStore(config); ValueVersion returnValue = store.get(„BigData“); System.out.println("Key: " + myKey.toString()); System.out.println("Value: " + new String(returnValue.getValue().getValue())); store.close(); } } Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Oracle NoSQL Anbindung mit bekannten Technologien Application NoSQL DB Driver External Table / Hive KVInputStream HDFS, Hadoop Scala / Python Spark REST API Java / C API Ext Table HIVE Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | SQL JSON – Das universelle Format Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal 18 JSON – JavaScript Object Notation • Sehr einfaches Datenaustauschformat • Einfachere Konzepte als XML • Basiert auf JavaScript-Code • Javascript auch auf Server wichtig: node.js • Breite Unterstützung durch Web-APIs – Google, Twitter, Facebook & Co. • JSON-Path Anfragen (analog zu XPATH) • Setzt sich mehr und mehr durch Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Native JSON Unterstützung in der Oracle DB 12g • JSON Dokumente speichern und verwalten – JSON als Text speichern (VARCHAR2, CLOB, BLOB) Ohne Schema - volle Flexibilität – Kein eigener Datentyp: Nutzung der Standard-Datentypen für Zeichenketten bzw. Binärdaten – Indizierung mit einem JSON aware Index JSON ermöglicht schemalose Datenhaltung in der Oracle-Datenbank ... • API Zugriff auf JSON – REST Services ... aber komplett integriert mit der – Java API (weitere Programmiersprachen in Planung) relationalen Welt! • SQL Abfragen direkt auf JSON-Dokumente – Reporting, Analyse und relationaler Zugriff direkt auf JSON-Dokumente – Dualität JSON / SQL Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 20 JSON / SQL Dualität Oracle Database 12c JSON Datenzugriff per REST oder Native API SQL JSON wird in der Datenbank gespeichert Analysen / Queries per SQL Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 21 Wie geht das mit der Dualität? JSON-Sicht auf relationale Daten • • • • Relationale Sicht auf JSON Node.js Treiber für die Oracle DB APEX_JSON ORDS PL/SQL Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 22 Demo Beispiel Multi-Model: Oracle DB als JSON Document Store Social Media (Twitter) Analyse JSON Dokumente als CLOBs Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 23 Demo https://technology.de.oracle.com/pls/htmldb/f?p=207:1 Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal 24 Geodaten Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal 25 Geodaten werden immer wichtiger • Fast immer sind Geographie-Bezüge in den Daten • Spatial Datentypen und modelle – 2D / 3D Geometrien • Neue Analyse-Möglichkeiten in der Kombination von Geound Wirtschaftsdaten • Graphisches Visualisieren von regionalen Unterschieden – Raster / Vektor- Daten – Topologien – Network Data Model Spatial Analysen Spatial Search ( Orte, Distanzen , Lagen) Adress-Konvertierung (Geocoding) Routing • Besondere Häufung von Vorkommnissen • Kriminalität, Verkehrsunfälle, Staus • Analysieren von Nachbarschaften – Wie wirkt sich die lokale Nähe von Einrichtungen aus • Infrastruktur, Verkehrsmittel, Schulen – Welche besonderen Merkmale qualifizieren eine Region • Fähigkeiten, Vorlieben der Bewohner (z. B. Kaufkraft, Freizeitverhalten) Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 26 Beispiele für Geodateneinsatz • Optimierung von Logistikprozessen – Finden von kürzesten Wegen bei Inspektionsfahren – Routen-Optimierung bei Speditionen – Planung bei dem Aufbau von Versorgungseinrichtungen Leitungsdokumentation • Optimierung von Infrastrukturen – Wegeplanung – Netzplanung (z. B. Stromtrassen) • Straßendaten – Betriebsmittelstandorte – Verkehrsplanung Liegenschaftskataster Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 27 Ein Schritt zurück: Woher kommt der Ortsbezug? Geokodierung als Datenprozessierungsschritt Daten Geocodieren Analysieren Visualisieren Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 28 Oracle DB als Geodatenbank Orts-/Raumbezogene Analysen Demo Der Orts-/Raumbezug als Information Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 29 Der Datentyp SDO_GEOMETRY* Für die Speicherung standardkonformer geometrischer Elemente (Vektordaten) * Bestandteil von Oracle Locator (für 2-dimensionale Geometrien -> Vektordaten) Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 30 Geo-Informationen sind mit SQL abfragbar Oracle Database 12c Media JSON SemiStructured Messages Location Unstructured LOB XML RDF Domain-Spezifische Indizes Structured SQL Datenzugriff und –auswertung mittels SQL Relational Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 31 Ortsbezogene Daten: Erlaubt universellen Zugriff • Tweet: schade #goldengate wieder mal im nebel • Instagram Bildunterschrift: 골든게이트 교* • Text- oder Sprachnachricht: Fahre mit Cabrio auf 101 North. Überquere gerade Grenze zwischen Marin County und San Francisco County • GPS Sensor Koordinaten: N 37°49′11″ W 122°28′44″ • Wo ist jetzt der nächste freie Parkplatz für mich (bzw. )? * Golden Gate Bridge (koreanisch) Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 32 Beispiele für ortsbezogene Analysen • WLAN Performance analysieren (Unterbrochene Verbindungen, Nutzung, Auslastung): Call Daten auf Ort mappen, aggregieren und anzeigen. Mit anderen Daten, z.B. Sensordaten verknüpfen und analysieren • Start-Ziel-Analyse im Nahverkehr: Daten über Fahrkartenkäufe kombinieren mit andern Daten für Analyse ,wieviel Personen welche Route von A nach B fahren • Tweets auf Ort mappen: Wo wird getwittert von wievielen Personen und was sagen die zu Ort A? Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 33 Beispiele für ortsbezogene Analysen Tweets aggregieren über hierarchische Ebenen Risikobewertung für Grundstücke Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal 34 Graphen-Daten in der Datenhaltung Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal 35 Graph-Datenmodell • Was ist ein Graph? – Ein Set von Beziehungen (Kanten) und Knoten (Optional auch Attribute) – Ein Graph sind einfach gesprochen zwei verbundene Objekte B C • Was ist das Spannende an einer Graphen-Betrachtung? – Mit Graphen kann man nahezu alles in der realen Welt beschreiben A • Beziehungen zwischen Personen (Facebook, Linkedin, Twitter, Baidu, Google+,…) • Cyber-Netzwerke, Strom-Netzwerke, Molekülstrukturen • Knoledge-Graphen (IBM Watson, Apple SIRI, Google Knowledge Graph) D F E – Graphen sind intuitiv und flexibel • Gute Navigationsmöglichkeiten und einfach zu visualisieren • Zur Speicherung ist kein besonderes Datenbankschema nötig -> optimal für noSQL DBs Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 36 Das “Property Graph Data Model” in der Big Data Appliance • Knoten – Mit einem unique identifier. – in/out Kanten. – Eine Reihe von key-value Eigenschaften. • Kanten (Beziehungen) – – – – Mit einem unique identifier. Ein Beginn- und End-Bereich. Festlegen von Beziehungstypen. Eine Reihe von key-value Eigenschaften. https://github.com/tinkerpop/blueprints/wiki/Property-Graph-Model Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Einsatzbespiele für den Graph-Einsatz Linked Data und mehr Semantic Metadata Layer • Unified content metadata for federated resources • Validate semantic and structural consistency Text Mining & Entity Analytics • Find related content & relations by navigating connected entities • “Reason” across entities Social Media Analysis • Analyze social relations using curated metadata − Blogs, wikis, tweets, video − Calendars, IM, voice Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 38 Data Format Support • GML, GraphML, GraphSON • Oracle-defined Property Graph flat files – Vertex file, Edge file – Support basic data types + Date with Timezone + Serializable objects – Allow multiple data types to be associated with one key – UTF8 based 1,name,1,Barack%20Obama,, 1,age,2,,53, 1,likes,1,scrabble,, 1,likes,5,,,2009-01-20T00:00:00.000-05:00 1,occupation,1,44th%20president%20of%20United%20States%20of%20America,, Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 39 Text Search mit Apache Lucene/Solr • Integration mit Apache Lucene/Solr • Manuelle und Auto-Indizierung von Graph Elementen • Abfragen mit einer Syntax wie “*oracle* or *graph*” sind machbar Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 40 In-Memory Graph Analyse-Framework • Große Graph Analysen können Zeit- und Rechenintensiv sein – The computation typically involves touching most nodes and edges in the graph – The data-access pattern is random • In-memory, parallel framework erlaubt schnelle Graphen-Analysen • Moderne Rechnerarchitekturen werden ausgenutzt – Parallelisierung durch viele CPU Cores – Ausnutzen von großen Hauptspeicherausbauten • J2EE container support (WLS, Tomcat, Jetty) Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 41 35 Graph-Funktionen Detecting Components and Communities Ranking and Walking Pagerank, Personalized Pagerank, Betweenness Centrality (w/ variants), Closeness Centrality, Degree Centrality, Eigenvector Centrality, HITS, Random walking and sampling (w/ variants) Tarjan’s, Kosaraju’s, Weakly Connected Components, Label Propagation (w/ variants), Soman and Narang’s Evaluating Community Structures ∑ Link Prediction ∑ Path-Finding Hop-Distance (BFS) Dijkstra’s, Bi-directional Dijkstra’s Bellman-Ford’s Conductance, Modularity Clustering Coefficient (Triangle Counting) Adamic-Adar SALSA (Twitter’s Who-to-follow) Other Classics Vertex Cover Minimum Spanning-Tree(Prim’s) Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 42 Einmalige Graphen-Filter Operation • Graph-Analysen lesen Graph-Daten in den Hauptspeicher z. B. von HBase oder NoSQL Analytic Analytic Request Request – Speichergrenzen sind leicht erreichbar bei großen GraphObjekten – Ein Subgraph-Mechanismus löst dieses Probleme • Subgraphen werden durch den Zugriffsmechanismus gebildet Property Graph Engine Analytic Analytic Analytic Request Request Analytic TransRequest Request actional Request • Alle Graphen können parallel dazu weiter verändert werden – Das System propagiert Änderungen in den In-Memory Analysebereich des Graph Oracle Property Graph or RDF (HBase or NoSQL) Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 43 http://sccloud033:8080/apex/f?p=133:3 Beispiel: Oracle DB als Graph Datenbank Graph-Analyse mittels Regelbasis Demo Graphen als Sammlung von Triples Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 44 Graph-bezogene Analysen: Filtern und Analysieren • Social Media Analysen (Social Intelligence) – Wer ist mit wem verbandelt? – Über wieviel Ecken? • Wer ist die zentrale Figur in einem Netzwerk? – Wer ist die einfluchsreichste Person? • Welche Hinweise auf verdächtige Aktivitäten gibt es? Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 45