Daten - DWH Community

Werbung
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
Herunterladen