20160310_ModernApplicationDevelopment_NoSQL_KPatenge

Karin Patenge
Karin PatengePrincipal Solution Engineer Core & Cloud Technologies @ Oracle em Oracle Germany
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Die Oracle NoSQL Datenbank
Karin Patenge | Leitende Systemberaterin | karin.patenge@oracle.com
Oracle Deutschland B.V. & Co KG
Twitter: @ModernAppDev12c | Web: http://tinyurl.com/ModernAppDev12c
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Agenda
1
2
3
4
Begriffe und Thematische Einordnung
Kurzer Überblick zur Oracle NoSQL Datenbank
Oracle NoSQL DB in der Praxis – Installation und Betrieb
Oracle NoSQL DB in der Praxis – Anwendungsentwicklung
Weiterführende Links und Informationen
3
5
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
1
2
3
4
Begriffe und Thematische Einordnung
Kurzer Überblick zur Oracle NoSQL Datenbank
Oracle NoSQL DB in der Praxis – Installation und Betrieb
Oracle NoSQL DB in der Praxis – Anwendungsentwicklung
Weiterführende Links und Informationen
4
5
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
NoSQL: Versuch einer Definition
„A NoSQL (originally referring to
“non SQL” database provides a
mechanism for storage and
retrieval of data that is modeled in
means other than the tabular
relations used in relational
databases.”
[Quelle: Wikipedia]
• NoSQL  „Not only SQL“
• Sammelbegriff für nicht-relationale Datenbanken, 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),
– keine Join-Operationen oder Multi-Object Transaktionen
unterstützen,
– und sehr entwicklerspezifisch sind.
• Derzeit noch keine Standardisierung
– Keine Abfragesprache (eben "NoSQL")
– Massive Produktvielfalt
(Siehe http://www.nosql-database.org/ )
– Produkte nur schwer vergleichbar
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
NoSQL Datenbanken – Eine Kategorisierung
Key-Value
Stores
Bsp.:
Oracle NoSQL DB
Redis
Document
Stores
Bsp.:
MongoDB
MarkLogic
Column Stores / BigTable
Bsp.:
HBase
Cassandra
Graph
Datenbanken
Bsp.:
Neo4J
Oracle NoSQL + Graph
7
Abbildungen: http://www.thoughtworks.com/insights/blog/nosql-databases-overview
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
1
2
3
4
Begriffe und Thematische Einordnung
Kurzer Überblick zur Oracle NoSQL Datenbank
Oracle NoSQL DB in der Praxis – Installation und Betrieb
Oracle NoSQL DB in der Praxis – Anwendungsentwicklung
Weiterführende Links und Informationen
9
5
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Oracle NoSQL Database
• Basiert auf Oracle Berkeley DB Java Edition High Availability
• Datenhaltung – ready for web scale
– Hochverfügbarkeit per Replikation
– Transparentes Loadbalancing
– Konsistenz und Persistenz konfigurierbar (ACID <-> BASE)
• Key-Value Datenhaltung als Basis
– JSON, AVRO Support
– Table API, Sekundärindexe
• Einfache Installation, Einrichtung und Erweiterung
• Läuft auf mehreren Knoten
– Ausnahme: „Lite“ Version läuft auf nur einem Knoten
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Die Basis: Was ist ein "Key-Value-Store"?
• Ansammlung von Key-Value-Paaren in einem Store, verteilt auf Partitionen
– Key – String, Major & Minor Key
– Value – Byte Array
• Identifikation über Key (oder Teile davon), Auslesen des Value
• Einfache Zugriffe: GET, PUT, DELETE
• Keine Standard-Abfragesprache wie SQL für RDBMS
Key Value
010101010 0198287981A98721891209A0909109039810983A0919032093091A
010101011 Das ist ein Text, der als Value abgelegt ist
… 000101010010111111010010101000111
Datenstrukturen sind nicht selbstbeschreibend
Zeilen
Key-Value Store CUSTOMERSKey = Index
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Oracle NoSQL Database Topologie
Partition 1 Partition 2 Partition 3
Storage
Nodes
Load balancer
Webserver Webserver
Application Server
NoSQLDB Treiber
Application Server
NoSQLDB Treiber
R M R
Application
Server
Webserver
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
1
2
3
4
Begriffe und Thematische Einordnung
Kurzer Überblick zur Oracle NoSQL Datenbank
Oracle NoSQL DB in der Praxis – Installation und Betrieb
Oracle NoSQL DB in der Praxis – Anwendungsentwicklung
Weiterführende Links und Informationen
16
5
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Die Oracle NoSQL DB in der Praxis
Installation und Betrieb
1. Kurze Diskussion der Deployment Optionen
2. Voraussetzungen prüfen
3. Kapazitätsplanung
4. Installation durchführen
5. Zielarchitektur definieren
6. NoSQL DB Cluster aufsetzen
7. Cluster erweitern
8. Ein neues Data Center hinzufügen
18
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Demo-Setup
• „Spielwiese“ Oracle Big Data Lite
VM v4.4.0
– Download:
http://www.oracle.com/technetwork/databas
e/bigdata-appliance/oracle-bigdatalite-
2104726.html
– Benötigt VirtualBox
(freie Desktop-Virtualisierung)
– Vorinstallierte Software-Komponenten
– Beispieldaten und –Skripte
– Hands-On Labs
Oracle Confidential – Internal/Restricted/Highly Restricted 19
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Schritt 1: Deployment Optionen
„Do-it-yourself“ NoSQL DB Cluster
• Was muss beachtet werden
– Hardware
– Netzwerk
– Sizing
– Installation
– Konfiguration
– Deployment
– Patchen
– Load Balancing
– ...
Engineered Systems Ansatz
• Oracle Big Data Appliance
– Schnell einsetzbar, günstige TCO, skalierbar
– Pre-integrated full rack configuration
• Oracle's Sun x86 Servers
• InfiniBand und Ethernet Connectivity
– Vorinstallierte SW-Komponenten
• U.a. NoSQL DB, Oracle R, Cloudera Enterprise
Technology software including Cloudera CDH, Cloudera
Manager, and Cloudera RTQ (Impala)
– Perfekt ausbalanciert
– Erweiterbar
20
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Schritt 2: Voraussetzungen prüfen
$ java –version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build
1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build
25.60-b23, mixed mode)
$ jps
3859 Jps
$
21
• Java SE Version 7 oder höher wird
vorausgesetzt
– Bezogen auf NoSQL Database 12cR1
• JPS (Java Virtual Machine Process
Status Tool)
– Standard-Werkzeug von Java SE
• Empfehlung:
NoSQL DB Knoten nicht auf
virtuellen Maschinen installieren
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Schritt 3a: Bestimmen der NoSQL DB Cache Größe
• DBCacheSize Werkzeug je.jar in
$KVHOME/lib
• Input:
– 1 Milliarde Sätze (K-V-Paare)
– Durchschn. Schlüsselgröße 15 Bytes
– Durchschn. Satzlänge 1 KB
• Ergebnis im Beispiel:
– 43 GB werden für das Cachen der
Schlüssel im Hauptspeicher benötigt
– Wieviel Hauptspeicher hat ein Storage
Node? Wieviel davon wird für den Cache
allokiert? Daumenregel -> ca. 60%
22
$ java -d64 -XX:+UseCompressedOops -jar
$KVHOME/lib/je.jar DbCacheSize -records
1000000000 -key 15 -data 1024
=== Environment Cache Overhead ===
3,157,213 minimum bytes
To account for JE daemon operation, record
locks, HA network connections, etc,
a larger amount is needed in practice.
=== Database Cache Size ===
Number of Bytes Description
--------------- -----------
43,126,658,112 Internal nodes only
1,113,239,107,552 Internal nodes and leaf
nodes
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Schritt 3b: Kapazitätsplanung für NoSQL DB
• Ermitteln von
– Anzahl der Storage Nodes
– Replikationsfaktor
– Anzahl der Partitionen
• InitialCapacityPlanning Werkzeug
– InitialCapacityPlanning.xls
in $KVHOME/doc/misc
23
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Schritt 4: Installation und Start auf einem Storage Node
$ mkdir <path1>/kv
$ cd <path1>/ kv
$ cp <path2>/kv-ee-3.5.2.tar.gz .
$ gunzip kv-ee-3.5.2.tar.gz
$ tar xvf kv-ee-3.5.2.tar
kv-3.5.2/
kv-3.5.2/doc/
...
$ cd kv-3.5.2
$ KVHOME=<path1>/kv/kv-3.5.2
$ export KVHOME
$ mkdir –p $KVHOME/kvroot
$ KVROOT=$KVHOME/kvroot
$ export KVROOT
$ java –jar $KVHOME/lib/kvstore.jar kvlite &
Created new kvlite store with args:
-root ./kvroot -store kvstore -host <host> -port 5000 -admin
5001
$ jps
6412 Jps
6302 kvstore.jar
$ java -jar lib/kvstore.jar ping -host <host> -port 5000
Pinging components of store kvstore based upon topology
sequence #14
10 partitions and 1 storage nodes
24
• Download-Seite
– http://www.oracle.com/technetwork/database/databa
se-technologies/nosqldb/downloads/index.html
• 2 Editionen verfügbar
– Community und Enterprise Edition
• Zusätzliche Software-Komponenten
– RDF Jena Adapter für NoSQL DB EE
– Treiber: Java, C, JavaScript, Python
• Installation auf jedem Storage Node
notwendig
– Verzeichnisname sollte überall identisch sein
• Umgebungsvariablen KVHOME und
KVROOT setzen
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Schritt 5: Topologie für die NoSQL Datenbank definieren
Lineare Skalierung und Replikation
25
• Elastic Auto Sharding
(split, add, contract)
Store
Shard
M
Shard
R
R
R R
Application
NoSQL Driver
M
• Writes to elected
node with flexible
durability
• Reads from any
node in system
Shard
R
R
M
Expand and Rebalance
Shard
M
R
R
• Auto re-balance of
data on expansion
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Schritt 6: 3x3 NoSQL Datenbank Cluster (1 Data Center)
$ cd /u01/nosql/scripts
$ ./makebootconfig.sh
Killing Java processes ...
kill 3446: No such process
Deleting old directories...
Creating new directories...
Done bootstrapping storage-node 1
Done bootstrapping storage-node 2
Done bootstrapping storage-node 3
$ ./startSNA.sh
$ jps –m
3761 ManagedService
3590 kvstore.jar
3591 kvstore.jar
...
$ ./runScript.sh 3x3.kvs
Connected to Admin in read-only mode
Connected to Admin in read-only mode
Store configured: kvstore
Executed plan 1, waiting for completion...
Plan 1 ended successfully
Executed plan 2, waiting for completion...
...
26
1. Bootstrapping auf den 3 beteiligten
Storage Nodes
2. Starten der Agenten auf den Storage
Nodes
3. Deployment einer 3x3 Topologie auf
den Storage Nodes
4. Überprüfen der Topologie
http://localhost:5001/
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 27
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Schritt 7: Hinzufügen eines neuen Shards (3x3 -> 4x3)
$ ./makebootconfig-sn4.sh
Done bootstrapping storage-node 4
$ ./startSNA-sn4.sh
$ ./runScript.sh 4x3.kvs
Executed plan 9, waiting for completion...
Plan 9 ended successfully
Created 4x3
Redistributed: 4x3
Topology transformation from current deployed
topology to 4x3:
Create 1 shard
Create 3 RNs
Relocate 2 RNs
Migrate 30 partitions
...
Executed plan 10, waiting for completion...
Plan 10 ended successfully
$
28
1. Bootstrapping auf neuem Storage Node
2. Starten des Agenten auf neuem Storage
Nodes
3. Deployment einer 4x3 Topologie
– Hinzufügen eines Storage Node zum Data
Center
– Klonen der Topologie
– Redistribution: Neues Shard,
Replikationsknoten, Verschieben der
Partitionen, Rebalancing des Clusters
4. Überprüfen der Topologie
http://localhost:5001/
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 29
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Schritt 8: Hinzufügen eines neuen Data Center (4x3 -> 4x4)
$ ./makebootconfig-sn5.sh
Done bootstrapping storage-node 5
$ ./startSNA-sn5.sh
$ ./runScript.sh 4x4.kvs
Executed plan 11, waiting for completion...
Plan 11 ended successfully
Executed plan 12, waiting for completion...
Plan 12 ended successfully
Created 4x4
Redistributed: 4x4
Topology transformation from current deployed topology
to 4x4:
Create 4 RNs
...
Executed plan 13, waiting for completion...
Plan 13 ended successfully
$ java -jar /u01/nosql/kv-ee/lib/kvstore.jar runadmin -
port 5000 -host kvhost01
kv-> show topology
store=kvstore numPartitions=120 sequence=179
zn: id=zn1 name=Potsdam repFactor=3 type=PRIMARY
zn: id=zn2 name=Berlin repFactor=1 type=PRIMARY
30
1. Bootstrapping auf neuem Storage Node
2. Starten des Agenten auf neuem Storage
Nodes
3. Deployment einer 4x4 Topologie
– Anlegen eines neuen Data Center
– Hinzufügen eines Storage Node zum neuen
Data Center
– Klonen der Topologie
– Redistribution: Neues Shard,
Replikationsknoten, Verschieben der
Partitionen, Rebalancing des Clusters
4. Überprüfen der Topologie
http://localhost:5001/ oder über
Kommandozeilenwerkzeug
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 31
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
1
2
3
4
Begriffe und Thematische Einordnung
Kurzer Überblick zur Oracle NoSQL Datenbank
Oracle NoSQL DB in der Praxis – Installation und Betrieb
Oracle NoSQL DB in der Praxis – Anwendungsentwicklung
Weiterführende Links und Informationen
32
5
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Die Oracle NoSQL DB in der Praxis
Anwendungsentwicklung
1. Erste Schritte mit der NoSQL DB: HelloModernAppDev.java
2. NoSQL DB Table API
3. Mittels REST API auf die Oracle NoSQL DB
4. Oracle NoSQL DB als Graph Datenbank: Knoten und Kanten
5. NoSQL DB mit Oracle DB über externe Tabellen verbinden
34
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Schritt 1: Ein HelloWorld-Beispiel mit der Java API
$ cd $KVHOME
$ java -jar $KVHOME/lib/kvstore.jar kvlite
$ Opened existing kvlite store with config:
-root ./kvroot -store kvstore -host <hostname> -
port 5000 -admin 5001
$ # 2. Terminalfenster
$ java -jar $KVHOME/lib/kvstore.jar ping -port
5000 -admin 5001 -host <hostname>
$ cd $KVHOME
$ gedit examples/hello/HelloModernAppDev.java
$ javac -cp examples:lib/kvclient.jar
examples/hello/HelloModernAppDev.java
$ java -cp examples:lib/kvclient.jar
hello.HelloModernAppDev
Hello Modern App Dev 12c Community !
$
35
• KVLITE
– Auf Basis einer 1x1 Topologie
• 1 Storage Node, 10 Partitionen
• KVLITE starten
• HelloModernAppDev.java
– Kompilieren und ausführen
– Key-Value Paare
• CRUD Operationen: PUT, GET, DELETE
• JavaDoc
http://docs.oracle.com/cd/NOSQL/html/javado
c/overview-summary.html
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Schritt 2: Table API
$ cd $KVHOME
$ java -jar lib/kvstore.jar runadmin -port 5000 -host
<hostname>
kv-> table create -name EMP
EMP-> add-field -type INTEGER -name empno
EMP-> add-field -type STRING -name ename
EMP-> add-field -type DOUBLE -name sal
EMP-> add-field -type STRING -name job
EMP-> primary-key -field empno
EMP-> exit
Table EMP built.
kv-> plan add-table -name EMP -wait
Executed plan 11, waiting for completion...
Plan 11 ended successfully
kv-> connect store -host localhost -port 5000 -name
kvstore
Connected to kvstore at localhost:5000.
kv-> put table -name EMP -json '{"empno":815,
"ename":"JONES", "sal": 3500, "job":"MANAGER"}'
Operation successful, row inserted.
...
kv-> get table –name emp
kv-> get –kv all
...
36
• Nutzen des CLI
• Operationen
– PUT TABLE, GET TABLE
• JavaDoc
http://docs.oracle.com/cd/E57769_01/ht
ml/javadoc/oracle/kv/table/TableAPI.htm
l
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Schritt 2: Table API – Tabellen im SQL Developer
37
• Verbindung auf NoSQL DB anlegen
– Host: <hostname>
– Store: kvstore
• Navigation wie gewohnt
• Nur Lese-Zugriffe
– Tabellen
– Daten
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Oracle12c. Tabellen.
Oracle12c. JSON
Document Store.
Oracle NoSQL DB
Oracle REST Data Services
(ORDS)
Schritt 3: REST API für NoSQL DB
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Schritt 3: Mit REST API auf NoSQL DB zugreifen
$ cd /u01/ords
$ java -jar ords.war standalone
$ java -jar ords.war nosqladd --pagelimit 20 sales
kvstore localhost:5000
$ // Browser
http://localhost:7070/ords/sales/metadata-catalog
http://localhost:7070/ords/sales/metadata-
catalog/tables/emp/
http://localhost:7070/ords/sales/metadata-
catalog/tables/emp/item
http://localhost:7070/ords/sales/tables/emp
http://localhost:7070/ords/sales/tables/emp/7999
curl -i -H "Content-Type: application/json" -X PUT -d
"{"empno": 8000, "ename": "PATENGE", "job":
"Consultant"}"
"http://localhost:7070/ords/sales/tables/emp/"
http://localhost:7070/ords/sales/tables/emp/8000
39
• ORDS installieren und konfigurieren
• Hier: Starten als Standalone
• NoSQL DB Store registrieren
• Auf Metadaten-Katalog zugreifen
• Auf Metadaten einer spezifischen
Tabelle zugreifen
• Auf Tabellendaten zugreifen
– Über Schlüssel
• CRUD
• Hinweis: JSON-Anzeige im Browser
– Hier: Plug-in für Firefox
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Schritt 4: Oracle NoSQL DB als Graph Datenbank
$ cd /opt/oracle/oracle-spatial-
graph/property_graph/dal/groovy
$ ./gremlin-opg-nosql.sh
opg-nosql> // Connect to the Oracle NoSQL DB
opg-nosql> server = new ArrayList<String>();
opg-nosql> server.add("bigdatalite:5000");
==>true
opg-nosql> cfg=new PgNosqlGraphConfigBuilder()
opg-nosql> .setDbEngine(DbEngine.NOSQL) 
opg-nosql> .setName("helloWorldGraph") 
opg-nosql> .setStoreName("kvstore") 
opg-nosql> .setHosts(server) 
opg-nosql> .addEdgeProperty("label",
PropertyType.STRING, "label") 
opg-nosql> .setMaxNumConnections(1).build();
...
• Knoten-Kanten-Modell
– Knoten und Kanten mit Attributen
• In-Memory Parallel Graph Analysis
– PGX Framework
– Beispiel mit Groovy Shell
• Teil von Oracle Big Data Spatial and
Graph
vertex1 vertex2
edge1
name: ″ Karin ″
location: ″Potsdam″
gender:“female“
name: ″Carsten″
location: ″Munich″
isColleagueOf
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
1
2
3
4
Begriffe und Thematische Einordnung
Kurzer Überblick zur Oracle NoSQL Datenbank
Oracle NoSQL DB in der Praxis – Installation und Betrieb
Oracle NoSQL DB in der Praxis – Anwendungsentwicklung
Weiterführende Links und Informationen
45
5
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
NoSQL DB Enterprise Edition und Community Edition
Feature NoSQL DB CE NoSQL DB EE
Lizenzkosten Verfügbar unter der AGPL License R
MyOracleSupport R R
Diskussionsforen R R
Open Source R
Java und C API R R
ACID Transaktionen R R
Large Object Support R R
Kein Single Point Of Failure R R
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
NoSQL DB Enterprise Edition und Community Edition
Feature NoSQL DB CE NoSQL DB EE
Integation mit Hadoop R R
Table API R R
RDBMS Integration Ext. Tables R
Jena Adapter (Graph/SPARQL) R
Event Processing (CQL) R
Online Administration R R
JMX Monitoring R R
SNMP Monitoring R
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Hilfreiche Informationen und Links
• Öffentlich verfügbare Inhalte
– Oracle Oracle NoSQL im OTN http://www.oracle.com/technetwork/database/database-
technologies/nosqldb/documentation/index.html
– Online Dokumentation http://docs.oracle.com/cd/NOSQL/html/index.html
– JavaDoc der Java API http://docs.oracle.com/cd/NOSQL/html/javadoc/index.html
– Wieviel Storage Nodes werden benötigt – Ressourcen planen für die Oracle NoSQL DB:
http://docs.oracle.com/cd/NOSQL/html/AdminGuide/Oracle-NoSQLDB-Admin.pdf#page=16
– Oracle Big Data Lite VM http://www.oracle.com/technetwork/community/developer-vm/index.html#bdl
– Oracle Dojo # 2 zu „Big Data: Eine Einführung in Oracle NoSQL DB, Hadoop MapReduce, Oracle Big Data
Connectors“ http://www.oracle.com/webfolder/technetwork/de/community/dojo/index.html
– Blog von Charles Lambs https://blogs.oracle.com/charlesLamb/
– Vortrag metafinanz Informationssysteme GmbH auf DOAG Konferenz 2013
http://www.metafinanz.de/sites/default/files/DOAG_2013_Oracle NoSQL Database.pdf
50
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 51
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
1 de 39

Recomendados

Überblick zu Oracle Database 12c Release 2 por
Überblick zu Oracle Database 12c Release 2Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2Ulrike Schwinn
442 visualizações40 slides
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs por
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAsKarin Patenge
132 visualizações34 slides
Oracle Database Appliance X5-2 por
Oracle Database Appliance X5-2Oracle Database Appliance X5-2
Oracle Database Appliance X5-2Ileana Somesan
2K visualizações49 slides
Überblick Oracle Datenbank Hochverfügbarkeit por
Überblick Oracle Datenbank HochverfügbarkeitÜberblick Oracle Datenbank Hochverfügbarkeit
Überblick Oracle Datenbank HochverfügbarkeitIleana Somesan
4.7K visualizações49 slides
Oracle Engineered Systems - Chance oder Risiko? por
Oracle Engineered Systems - Chance oder Risiko?Oracle Engineered Systems - Chance oder Risiko?
Oracle Engineered Systems - Chance oder Risiko?Trivadis
839 visualizações25 slides
Oracle Database Appliance X4-2 por
Oracle Database Appliance X4-2Oracle Database Appliance X4-2
Oracle Database Appliance X4-2Ileana Somesan
2.5K visualizações45 slides

Mais conteúdo relacionado

Mais procurados

Oracle Technology Monthly Oktober 2017 por
Oracle Technology Monthly Oktober 2017Oracle Technology Monthly Oktober 2017
Oracle Technology Monthly Oktober 2017oraclebudb
1.9K visualizações17 slides
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge por
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatengeKarin Patenge
622 visualizações48 slides
Oracle GoldenGate Monitoring por
Oracle GoldenGate MonitoringOracle GoldenGate Monitoring
Oracle GoldenGate MonitoringIleana Somesan
831 visualizações42 slides
Oracle Database In-Memory Advisor (Deutsch) por
Oracle Database In-Memory Advisor (Deutsch)Oracle Database In-Memory Advisor (Deutsch)
Oracle Database In-Memory Advisor (Deutsch)Ileana Somesan
4.3K visualizações21 slides
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick por
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickBig Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickKarin Patenge
335 visualizações48 slides
Oracle Database Appliance, DOAG Regio Berlin Brandenburg, Juni 2012 por
Oracle Database Appliance, DOAG Regio Berlin Brandenburg, Juni 2012Oracle Database Appliance, DOAG Regio Berlin Brandenburg, Juni 2012
Oracle Database Appliance, DOAG Regio Berlin Brandenburg, Juni 2012Ileana Somesan
1.9K visualizações31 slides

Mais procurados(20)

Oracle Technology Monthly Oktober 2017 por oraclebudb
Oracle Technology Monthly Oktober 2017Oracle Technology Monthly Oktober 2017
Oracle Technology Monthly Oktober 2017
oraclebudb1.9K visualizações
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge por Karin Patenge
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
Karin Patenge622 visualizações
Oracle GoldenGate Monitoring por Ileana Somesan
Oracle GoldenGate MonitoringOracle GoldenGate Monitoring
Oracle GoldenGate Monitoring
Ileana Somesan831 visualizações
Oracle Database In-Memory Advisor (Deutsch) por Ileana Somesan
Oracle Database In-Memory Advisor (Deutsch)Oracle Database In-Memory Advisor (Deutsch)
Oracle Database In-Memory Advisor (Deutsch)
Ileana Somesan4.3K visualizações
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick por Karin Patenge
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickBig Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Karin Patenge335 visualizações
Oracle Database Appliance, DOAG Regio Berlin Brandenburg, Juni 2012 por Ileana Somesan
Oracle Database Appliance, DOAG Regio Berlin Brandenburg, Juni 2012Oracle Database Appliance, DOAG Regio Berlin Brandenburg, Juni 2012
Oracle Database Appliance, DOAG Regio Berlin Brandenburg, Juni 2012
Ileana Somesan1.9K visualizações
Das ende von owb was nun migrationspfade fuer owb_projekte-dani schnider-stan... por Trivadis
Das ende von owb was nun migrationspfade fuer owb_projekte-dani schnider-stan...Das ende von owb was nun migrationspfade fuer owb_projekte-dani schnider-stan...
Das ende von owb was nun migrationspfade fuer owb_projekte-dani schnider-stan...
Trivadis629 visualizações
AOUG 2019 Oracle Centrally Managed Users 18c / 19c por Stefan Oehrli
AOUG 2019 Oracle Centrally Managed Users 18c / 19cAOUG 2019 Oracle Centrally Managed Users 18c / 19c
AOUG 2019 Oracle Centrally Managed Users 18c / 19c
Stefan Oehrli2.3K visualizações
Überblick Oracle Datenbank 12c por Ileana Somesan
Überblick Oracle Datenbank 12cÜberblick Oracle Datenbank 12c
Überblick Oracle Datenbank 12c
Ileana Somesan4.9K visualizações
Replikation im heterogenen Umfeld mit Oracle GoldenGate por Ileana Somesan
Replikation im heterogenen Umfeld mit Oracle GoldenGateReplikation im heterogenen Umfeld mit Oracle GoldenGate
Replikation im heterogenen Umfeld mit Oracle GoldenGate
Ileana Somesan1.8K visualizações
Oracle und Docker por Stefan Oehrli
Oracle und DockerOracle und Docker
Oracle und Docker
Stefan Oehrli181 visualizações
Infinispan - NoSQL für den Enterprise Java Alltag por gedoplan
Infinispan - NoSQL für den Enterprise Java AlltagInfinispan - NoSQL für den Enterprise Java Alltag
Infinispan - NoSQL für den Enterprise Java Alltag
gedoplan590 visualizações
20181210_ITTage2018_OracleNoSQLDB_KPatenge por Karin Patenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge
Karin Patenge66 visualizações
DOAG Webinar Oracle und Docker por Stefan Oehrli
DOAG Webinar Oracle und DockerDOAG Webinar Oracle und Docker
DOAG Webinar Oracle und Docker
Stefan Oehrli303 visualizações
Rsyslog - Deutsche Qualitätsarbeit für Linux por Trivadis
Rsyslog - Deutsche Qualitätsarbeit für LinuxRsyslog - Deutsche Qualitätsarbeit für Linux
Rsyslog - Deutsche Qualitätsarbeit für Linux
Trivadis767 visualizações
Oracle Database Appliance, Partnerwebcast, November 2011 por Ileana Somesan
Oracle Database Appliance, Partnerwebcast, November 2011Oracle Database Appliance, Partnerwebcast, November 2011
Oracle Database Appliance, Partnerwebcast, November 2011
Ileana Somesan1.4K visualizações
Codd & ACID - ein Ausflug in die Datenbank-Theorie und Geschichte por Markus Flechtner
Codd & ACID - ein Ausflug in die Datenbank-Theorie und GeschichteCodd & ACID - ein Ausflug in die Datenbank-Theorie und Geschichte
Codd & ACID - ein Ausflug in die Datenbank-Theorie und Geschichte
Markus Flechtner707 visualizações
Oracle12c threaded execution - Ressourcen sparen zum Nulltarif?!? por Trivadis
Oracle12c threaded execution - Ressourcen sparen zum Nulltarif?!?Oracle12c threaded execution - Ressourcen sparen zum Nulltarif?!?
Oracle12c threaded execution - Ressourcen sparen zum Nulltarif?!?
Trivadis1.1K visualizações
Oracle GoldenGate: Synchronisation zwischen Oracle und MySQL Datenbanken, Nov... por Ileana Somesan
Oracle GoldenGate: Synchronisation zwischen Oracle und MySQL Datenbanken, Nov...Oracle GoldenGate: Synchronisation zwischen Oracle und MySQL Datenbanken, Nov...
Oracle GoldenGate: Synchronisation zwischen Oracle und MySQL Datenbanken, Nov...
Ileana Somesan4.7K visualizações
Oracle Database 12c In-Memory Option por Ileana Somesan
Oracle Database 12c In-Memory Option Oracle Database 12c In-Memory Option
Oracle Database 12c In-Memory Option
Ileana Somesan2K visualizações

Similar a 20160310_ModernApplicationDevelopment_NoSQL_KPatenge

Oracle Database 12c Release 2 por
Oracle Database 12c Release 2 Oracle Database 12c Release 2
Oracle Database 12c Release 2 oraclebudb
736 visualizações40 slides
Agile Oracle database modeling and development - APEX Connect 2020 por
Agile Oracle database modeling and development - APEX Connect 2020Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020Torsten Kleiber
239 visualizações66 slides
Spezialitäten der Oracle Lizenzierung - DOAG Konferenz 2010 - OPITZ CONSULTI... por
Spezialitäten der Oracle Lizenzierung -  DOAG Konferenz 2010 - OPITZ CONSULTI...Spezialitäten der Oracle Lizenzierung -  DOAG Konferenz 2010 - OPITZ CONSULTI...
Spezialitäten der Oracle Lizenzierung - DOAG Konferenz 2010 - OPITZ CONSULTI...OPITZ CONSULTING Deutschland
1.3K visualizações30 slides
20181120_DOAG_OracleNoSQLDB_KPatenge por
20181120_DOAG_OracleNoSQLDB_KPatenge20181120_DOAG_OracleNoSQLDB_KPatenge
20181120_DOAG_OracleNoSQLDB_KPatengeKarin Patenge
80 visualizações31 slides
Docker-Images mit vorinstallierter Instanz einer Oracle-DB por
Docker-Images mit vorinstallierter Instanz einer Oracle-DBDocker-Images mit vorinstallierter Instanz einer Oracle-DB
Docker-Images mit vorinstallierter Instanz einer Oracle-DBPeter Ramm
36 visualizações10 slides
Datenbanken - Eine Übersicht (WPMeetUP München) por
Datenbanken - Eine Übersicht (WPMeetUP München)Datenbanken - Eine Übersicht (WPMeetUP München)
Datenbanken - Eine Übersicht (WPMeetUP München)Dietmar Leher
800 visualizações35 slides

Similar a 20160310_ModernApplicationDevelopment_NoSQL_KPatenge(20)

Oracle Database 12c Release 2 por oraclebudb
Oracle Database 12c Release 2 Oracle Database 12c Release 2
Oracle Database 12c Release 2
oraclebudb736 visualizações
Agile Oracle database modeling and development - APEX Connect 2020 por Torsten Kleiber
Agile Oracle database modeling and development - APEX Connect 2020Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020
Torsten Kleiber239 visualizações
Spezialitäten der Oracle Lizenzierung - DOAG Konferenz 2010 - OPITZ CONSULTI... por OPITZ CONSULTING Deutschland
Spezialitäten der Oracle Lizenzierung -  DOAG Konferenz 2010 - OPITZ CONSULTI...Spezialitäten der Oracle Lizenzierung -  DOAG Konferenz 2010 - OPITZ CONSULTI...
Spezialitäten der Oracle Lizenzierung - DOAG Konferenz 2010 - OPITZ CONSULTI...
OPITZ CONSULTING Deutschland1.3K visualizações
20181120_DOAG_OracleNoSQLDB_KPatenge por Karin Patenge
20181120_DOAG_OracleNoSQLDB_KPatenge20181120_DOAG_OracleNoSQLDB_KPatenge
20181120_DOAG_OracleNoSQLDB_KPatenge
Karin Patenge80 visualizações
Docker-Images mit vorinstallierter Instanz einer Oracle-DB por Peter Ramm
Docker-Images mit vorinstallierter Instanz einer Oracle-DBDocker-Images mit vorinstallierter Instanz einer Oracle-DB
Docker-Images mit vorinstallierter Instanz einer Oracle-DB
Peter Ramm36 visualizações
Datenbanken - Eine Übersicht (WPMeetUP München) por Dietmar Leher
Datenbanken - Eine Übersicht (WPMeetUP München)Datenbanken - Eine Übersicht (WPMeetUP München)
Datenbanken - Eine Übersicht (WPMeetUP München)
Dietmar Leher800 visualizações
Tipps & Tricks zum Aufbau einer Unternehmenscloud mit CC13 por OPITZ CONSULTING Deutschland
Tipps & Tricks zum Aufbau einer Unternehmenscloud mit CC13Tipps & Tricks zum Aufbau einer Unternehmenscloud mit CC13
Tipps & Tricks zum Aufbau einer Unternehmenscloud mit CC13
OPITZ CONSULTING Deutschland1.1K visualizações
IPv6 Integration im Datacenter - wie komplex ist es wirklich? por Swiss IPv6 Council
IPv6 Integration im Datacenter - wie komplex ist es wirklich?IPv6 Integration im Datacenter - wie komplex ist es wirklich?
IPv6 Integration im Datacenter - wie komplex ist es wirklich?
Swiss IPv6 Council1.4K visualizações
Boost your APEX Deployment and Provisioning with Docker por Steven Grzbielok
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with Docker
Steven Grzbielok1.3K visualizações
Oracle AVDF in der Praxis por Trivadis
Oracle AVDF in der PraxisOracle AVDF in der Praxis
Oracle AVDF in der Praxis
Trivadis954 visualizações
Sesam (APEX) Öffne Dich por Oliver Lemm
Sesam (APEX) Öffne DichSesam (APEX) Öffne Dich
Sesam (APEX) Öffne Dich
Oliver Lemm382 visualizações
DB2 High Availability für IBM Connections, Sametime oder Traveler por Nico Meisenzahl
DB2 High Availability für IBM Connections, Sametime oder TravelerDB2 High Availability für IBM Connections, Sametime oder Traveler
DB2 High Availability für IBM Connections, Sametime oder Traveler
Nico Meisenzahl477 visualizações
Oracle hadoop doag-big-data_09_2014_gpi por Gunther Pippèrr
Oracle hadoop doag-big-data_09_2014_gpiOracle hadoop doag-big-data_09_2014_gpi
Oracle hadoop doag-big-data_09_2014_gpi
Gunther Pippèrr1.3K visualizações
Was Sie über NoSQL Datenbanken wissen sollten! por adesso AG
Was Sie über NoSQL Datenbanken wissen sollten!Was Sie über NoSQL Datenbanken wissen sollten!
Was Sie über NoSQL Datenbanken wissen sollten!
adesso AG1.3K visualizações
Best Practices SharePoint and SQL Installation por Samuel Zürcher
Best Practices SharePoint and SQL InstallationBest Practices SharePoint and SQL Installation
Best Practices SharePoint and SQL Installation
Samuel Zürcher2.1K visualizações
Cloud-native and Enterprise Java? Hold my beer! por OPEN KNOWLEDGE GmbH
Cloud-native and Enterprise Java? Hold my beer!Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!
OPEN KNOWLEDGE GmbH47 visualizações
Oracle Private & Public Database-as-a-Service por oraclebudb
Oracle Private & Public Database-as-a-ServiceOracle Private & Public Database-as-a-Service
Oracle Private & Public Database-as-a-Service
oraclebudb1K visualizações
Big Data Konnektivität por Trivadis
Big Data KonnektivitätBig Data Konnektivität
Big Data Konnektivität
Trivadis439 visualizações

Mais de Karin Patenge

20190704_AGIT_Georaster_ImageryData_KPatenge por
20190704_AGIT_Georaster_ImageryData_KPatenge20190704_AGIT_Georaster_ImageryData_KPatenge
20190704_AGIT_Georaster_ImageryData_KPatengeKarin Patenge
7.7K visualizações210 slides
20190703_AGIT_GeoRasterWorkshop_GriddedData_KPatenge por
20190703_AGIT_GeoRasterWorkshop_GriddedData_KPatenge20190703_AGIT_GeoRasterWorkshop_GriddedData_KPatenge
20190703_AGIT_GeoRasterWorkshop_GriddedData_KPatengeKarin Patenge
269 visualizações212 slides
20181123 dn2018 graph_analytics_k_patenge por
20181123 dn2018 graph_analytics_k_patenge20181123 dn2018 graph_analytics_k_patenge
20181123 dn2018 graph_analytics_k_patengeKarin Patenge
76 visualizações24 slides
20180921_DOAG_BigDataDays_OracleSpatialandPython_kpatenge por
20180921_DOAG_BigDataDays_OracleSpatialandPython_kpatenge20180921_DOAG_BigDataDays_OracleSpatialandPython_kpatenge
20180921_DOAG_BigDataDays_OracleSpatialandPython_kpatengeKarin Patenge
158 visualizações37 slides
20181019 code.talks graph_analytics_k_patenge por
20181019 code.talks graph_analytics_k_patenge20181019 code.talks graph_analytics_k_patenge
20181019 code.talks graph_analytics_k_patengeKarin Patenge
38 visualizações16 slides
OracleCode_Berlin_Jun2018_AnalyzeBitcoinTransactionDataUsingAsGraph por
OracleCode_Berlin_Jun2018_AnalyzeBitcoinTransactionDataUsingAsGraphOracleCode_Berlin_Jun2018_AnalyzeBitcoinTransactionDataUsingAsGraph
OracleCode_Berlin_Jun2018_AnalyzeBitcoinTransactionDataUsingAsGraphKarin Patenge
126 visualizações33 slides

Mais de Karin Patenge(15)

20190704_AGIT_Georaster_ImageryData_KPatenge por Karin Patenge
20190704_AGIT_Georaster_ImageryData_KPatenge20190704_AGIT_Georaster_ImageryData_KPatenge
20190704_AGIT_Georaster_ImageryData_KPatenge
Karin Patenge7.7K visualizações
20190703_AGIT_GeoRasterWorkshop_GriddedData_KPatenge por Karin Patenge
20190703_AGIT_GeoRasterWorkshop_GriddedData_KPatenge20190703_AGIT_GeoRasterWorkshop_GriddedData_KPatenge
20190703_AGIT_GeoRasterWorkshop_GriddedData_KPatenge
Karin Patenge269 visualizações
20181123 dn2018 graph_analytics_k_patenge por Karin Patenge
20181123 dn2018 graph_analytics_k_patenge20181123 dn2018 graph_analytics_k_patenge
20181123 dn2018 graph_analytics_k_patenge
Karin Patenge76 visualizações
20180921_DOAG_BigDataDays_OracleSpatialandPython_kpatenge por Karin Patenge
20180921_DOAG_BigDataDays_OracleSpatialandPython_kpatenge20180921_DOAG_BigDataDays_OracleSpatialandPython_kpatenge
20180921_DOAG_BigDataDays_OracleSpatialandPython_kpatenge
Karin Patenge158 visualizações
20181019 code.talks graph_analytics_k_patenge por Karin Patenge
20181019 code.talks graph_analytics_k_patenge20181019 code.talks graph_analytics_k_patenge
20181019 code.talks graph_analytics_k_patenge
Karin Patenge38 visualizações
OracleCode_Berlin_Jun2018_AnalyzeBitcoinTransactionDataUsingAsGraph por Karin Patenge
OracleCode_Berlin_Jun2018_AnalyzeBitcoinTransactionDataUsingAsGraphOracleCode_Berlin_Jun2018_AnalyzeBitcoinTransactionDataUsingAsGraph
OracleCode_Berlin_Jun2018_AnalyzeBitcoinTransactionDataUsingAsGraph
Karin Patenge126 visualizações
Graph Analytics on Data from Meetup.com por Karin Patenge
Graph Analytics on Data from Meetup.comGraph Analytics on Data from Meetup.com
Graph Analytics on Data from Meetup.com
Karin Patenge356 visualizações
5 Gründe für Oracle Spatial Technologies por Karin Patenge
5 Gründe für Oracle Spatial Technologies5 Gründe für Oracle Spatial Technologies
5 Gründe für Oracle Spatial Technologies
Karin Patenge56 visualizações
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama... por Karin Patenge
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...
Karin Patenge299 visualizações
20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge por Karin Patenge
20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge
20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge
Karin Patenge68 visualizações
Oracle NoSQL Database: Integration in den Oracle Enterprise Manager 12 por Karin Patenge
Oracle NoSQL Database: Integration in den Oracle Enterprise Manager 12Oracle NoSQL Database: Integration in den Oracle Enterprise Manager 12
Oracle NoSQL Database: Integration in den Oracle Enterprise Manager 12
Karin Patenge202 visualizações
20160229_ModernApplicationDevelopment_Python_KPatenge por Karin Patenge
20160229_ModernApplicationDevelopment_Python_KPatenge20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge
Karin Patenge235 visualizações
Datenbank-gestützte Validierung und Geokodierung von Adressdatenbeständen por Karin Patenge
Datenbank-gestützte Validierung und Geokodierung von AdressdatenbeständenDatenbank-gestützte Validierung und Geokodierung von Adressdatenbeständen
Datenbank-gestützte Validierung und Geokodierung von Adressdatenbeständen
Karin Patenge648 visualizações
Raster Algebra mit Oracle Spatial und uDig por Karin Patenge
Raster Algebra mit Oracle Spatial und uDigRaster Algebra mit Oracle Spatial und uDig
Raster Algebra mit Oracle Spatial und uDig
Karin Patenge748 visualizações
Geodatenmanagement und -Visualisierung mit Oracle Spatial Technologies por Karin Patenge
Geodatenmanagement und -Visualisierung mit Oracle Spatial TechnologiesGeodatenmanagement und -Visualisierung mit Oracle Spatial Technologies
Geodatenmanagement und -Visualisierung mit Oracle Spatial Technologies
Karin Patenge1.7K visualizações

20160310_ModernApplicationDevelopment_NoSQL_KPatenge

  • 2. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Die Oracle NoSQL Datenbank Karin Patenge | Leitende Systemberaterin | karin.patenge@oracle.com Oracle Deutschland B.V. & Co KG Twitter: @ModernAppDev12c | Web: http://tinyurl.com/ModernAppDev12c
  • 3. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Agenda 1 2 3 4 Begriffe und Thematische Einordnung Kurzer Überblick zur Oracle NoSQL Datenbank Oracle NoSQL DB in der Praxis – Installation und Betrieb Oracle NoSQL DB in der Praxis – Anwendungsentwicklung Weiterführende Links und Informationen 3 5
  • 4. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 1 2 3 4 Begriffe und Thematische Einordnung Kurzer Überblick zur Oracle NoSQL Datenbank Oracle NoSQL DB in der Praxis – Installation und Betrieb Oracle NoSQL DB in der Praxis – Anwendungsentwicklung Weiterführende Links und Informationen 4 5
  • 5. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | NoSQL: Versuch einer Definition „A NoSQL (originally referring to “non SQL” database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases.” [Quelle: Wikipedia] • NoSQL  „Not only SQL“ • Sammelbegriff für nicht-relationale Datenbanken, 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), – keine Join-Operationen oder Multi-Object Transaktionen unterstützen, – und sehr entwicklerspezifisch sind. • Derzeit noch keine Standardisierung – Keine Abfragesprache (eben "NoSQL") – Massive Produktvielfalt (Siehe http://www.nosql-database.org/ ) – Produkte nur schwer vergleichbar
  • 6. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | NoSQL Datenbanken – Eine Kategorisierung Key-Value Stores Bsp.: Oracle NoSQL DB Redis Document Stores Bsp.: MongoDB MarkLogic Column Stores / BigTable Bsp.: HBase Cassandra Graph Datenbanken Bsp.: Neo4J Oracle NoSQL + Graph 7 Abbildungen: http://www.thoughtworks.com/insights/blog/nosql-databases-overview
  • 7. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 1 2 3 4 Begriffe und Thematische Einordnung Kurzer Überblick zur Oracle NoSQL Datenbank Oracle NoSQL DB in der Praxis – Installation und Betrieb Oracle NoSQL DB in der Praxis – Anwendungsentwicklung Weiterführende Links und Informationen 9 5
  • 8. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Oracle NoSQL Database • Basiert auf Oracle Berkeley DB Java Edition High Availability • Datenhaltung – ready for web scale – Hochverfügbarkeit per Replikation – Transparentes Loadbalancing – Konsistenz und Persistenz konfigurierbar (ACID <-> BASE) • Key-Value Datenhaltung als Basis – JSON, AVRO Support – Table API, Sekundärindexe • Einfache Installation, Einrichtung und Erweiterung • Läuft auf mehreren Knoten – Ausnahme: „Lite“ Version läuft auf nur einem Knoten
  • 9. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Die Basis: Was ist ein "Key-Value-Store"? • Ansammlung von Key-Value-Paaren in einem Store, verteilt auf Partitionen – Key – String, Major & Minor Key – Value – Byte Array • Identifikation über Key (oder Teile davon), Auslesen des Value • Einfache Zugriffe: GET, PUT, DELETE • Keine Standard-Abfragesprache wie SQL für RDBMS Key Value 010101010 0198287981A98721891209A0909109039810983A0919032093091A 010101011 Das ist ein Text, der als Value abgelegt ist … 000101010010111111010010101000111 Datenstrukturen sind nicht selbstbeschreibend Zeilen Key-Value Store CUSTOMERSKey = Index
  • 10. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Oracle NoSQL Database Topologie Partition 1 Partition 2 Partition 3 Storage Nodes Load balancer Webserver Webserver Application Server NoSQLDB Treiber Application Server NoSQLDB Treiber R M R Application Server Webserver
  • 11. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 1 2 3 4 Begriffe und Thematische Einordnung Kurzer Überblick zur Oracle NoSQL Datenbank Oracle NoSQL DB in der Praxis – Installation und Betrieb Oracle NoSQL DB in der Praxis – Anwendungsentwicklung Weiterführende Links und Informationen 16 5
  • 12. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Die Oracle NoSQL DB in der Praxis Installation und Betrieb 1. Kurze Diskussion der Deployment Optionen 2. Voraussetzungen prüfen 3. Kapazitätsplanung 4. Installation durchführen 5. Zielarchitektur definieren 6. NoSQL DB Cluster aufsetzen 7. Cluster erweitern 8. Ein neues Data Center hinzufügen 18
  • 13. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Demo-Setup • „Spielwiese“ Oracle Big Data Lite VM v4.4.0 – Download: http://www.oracle.com/technetwork/databas e/bigdata-appliance/oracle-bigdatalite- 2104726.html – Benötigt VirtualBox (freie Desktop-Virtualisierung) – Vorinstallierte Software-Komponenten – Beispieldaten und –Skripte – Hands-On Labs Oracle Confidential – Internal/Restricted/Highly Restricted 19
  • 14. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Schritt 1: Deployment Optionen „Do-it-yourself“ NoSQL DB Cluster • Was muss beachtet werden – Hardware – Netzwerk – Sizing – Installation – Konfiguration – Deployment – Patchen – Load Balancing – ... Engineered Systems Ansatz • Oracle Big Data Appliance – Schnell einsetzbar, günstige TCO, skalierbar – Pre-integrated full rack configuration • Oracle's Sun x86 Servers • InfiniBand und Ethernet Connectivity – Vorinstallierte SW-Komponenten • U.a. NoSQL DB, Oracle R, Cloudera Enterprise Technology software including Cloudera CDH, Cloudera Manager, and Cloudera RTQ (Impala) – Perfekt ausbalanciert – Erweiterbar 20
  • 15. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Schritt 2: Voraussetzungen prüfen $ java –version java version "1.8.0_60" Java(TM) SE Runtime Environment (build 1.8.0_60-b27) Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode) $ jps 3859 Jps $ 21 • Java SE Version 7 oder höher wird vorausgesetzt – Bezogen auf NoSQL Database 12cR1 • JPS (Java Virtual Machine Process Status Tool) – Standard-Werkzeug von Java SE • Empfehlung: NoSQL DB Knoten nicht auf virtuellen Maschinen installieren
  • 16. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Schritt 3a: Bestimmen der NoSQL DB Cache Größe • DBCacheSize Werkzeug je.jar in $KVHOME/lib • Input: – 1 Milliarde Sätze (K-V-Paare) – Durchschn. Schlüsselgröße 15 Bytes – Durchschn. Satzlänge 1 KB • Ergebnis im Beispiel: – 43 GB werden für das Cachen der Schlüssel im Hauptspeicher benötigt – Wieviel Hauptspeicher hat ein Storage Node? Wieviel davon wird für den Cache allokiert? Daumenregel -> ca. 60% 22 $ java -d64 -XX:+UseCompressedOops -jar $KVHOME/lib/je.jar DbCacheSize -records 1000000000 -key 15 -data 1024 === Environment Cache Overhead === 3,157,213 minimum bytes To account for JE daemon operation, record locks, HA network connections, etc, a larger amount is needed in practice. === Database Cache Size === Number of Bytes Description --------------- ----------- 43,126,658,112 Internal nodes only 1,113,239,107,552 Internal nodes and leaf nodes
  • 17. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Schritt 3b: Kapazitätsplanung für NoSQL DB • Ermitteln von – Anzahl der Storage Nodes – Replikationsfaktor – Anzahl der Partitionen • InitialCapacityPlanning Werkzeug – InitialCapacityPlanning.xls in $KVHOME/doc/misc 23
  • 18. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Schritt 4: Installation und Start auf einem Storage Node $ mkdir <path1>/kv $ cd <path1>/ kv $ cp <path2>/kv-ee-3.5.2.tar.gz . $ gunzip kv-ee-3.5.2.tar.gz $ tar xvf kv-ee-3.5.2.tar kv-3.5.2/ kv-3.5.2/doc/ ... $ cd kv-3.5.2 $ KVHOME=<path1>/kv/kv-3.5.2 $ export KVHOME $ mkdir –p $KVHOME/kvroot $ KVROOT=$KVHOME/kvroot $ export KVROOT $ java –jar $KVHOME/lib/kvstore.jar kvlite & Created new kvlite store with args: -root ./kvroot -store kvstore -host <host> -port 5000 -admin 5001 $ jps 6412 Jps 6302 kvstore.jar $ java -jar lib/kvstore.jar ping -host <host> -port 5000 Pinging components of store kvstore based upon topology sequence #14 10 partitions and 1 storage nodes 24 • Download-Seite – http://www.oracle.com/technetwork/database/databa se-technologies/nosqldb/downloads/index.html • 2 Editionen verfügbar – Community und Enterprise Edition • Zusätzliche Software-Komponenten – RDF Jena Adapter für NoSQL DB EE – Treiber: Java, C, JavaScript, Python • Installation auf jedem Storage Node notwendig – Verzeichnisname sollte überall identisch sein • Umgebungsvariablen KVHOME und KVROOT setzen
  • 19. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Schritt 5: Topologie für die NoSQL Datenbank definieren Lineare Skalierung und Replikation 25 • Elastic Auto Sharding (split, add, contract) Store Shard M Shard R R R R Application NoSQL Driver M • Writes to elected node with flexible durability • Reads from any node in system Shard R R M Expand and Rebalance Shard M R R • Auto re-balance of data on expansion
  • 20. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Schritt 6: 3x3 NoSQL Datenbank Cluster (1 Data Center) $ cd /u01/nosql/scripts $ ./makebootconfig.sh Killing Java processes ... kill 3446: No such process Deleting old directories... Creating new directories... Done bootstrapping storage-node 1 Done bootstrapping storage-node 2 Done bootstrapping storage-node 3 $ ./startSNA.sh $ jps –m 3761 ManagedService 3590 kvstore.jar 3591 kvstore.jar ... $ ./runScript.sh 3x3.kvs Connected to Admin in read-only mode Connected to Admin in read-only mode Store configured: kvstore Executed plan 1, waiting for completion... Plan 1 ended successfully Executed plan 2, waiting for completion... ... 26 1. Bootstrapping auf den 3 beteiligten Storage Nodes 2. Starten der Agenten auf den Storage Nodes 3. Deployment einer 3x3 Topologie auf den Storage Nodes 4. Überprüfen der Topologie http://localhost:5001/
  • 21. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 27
  • 22. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Schritt 7: Hinzufügen eines neuen Shards (3x3 -> 4x3) $ ./makebootconfig-sn4.sh Done bootstrapping storage-node 4 $ ./startSNA-sn4.sh $ ./runScript.sh 4x3.kvs Executed plan 9, waiting for completion... Plan 9 ended successfully Created 4x3 Redistributed: 4x3 Topology transformation from current deployed topology to 4x3: Create 1 shard Create 3 RNs Relocate 2 RNs Migrate 30 partitions ... Executed plan 10, waiting for completion... Plan 10 ended successfully $ 28 1. Bootstrapping auf neuem Storage Node 2. Starten des Agenten auf neuem Storage Nodes 3. Deployment einer 4x3 Topologie – Hinzufügen eines Storage Node zum Data Center – Klonen der Topologie – Redistribution: Neues Shard, Replikationsknoten, Verschieben der Partitionen, Rebalancing des Clusters 4. Überprüfen der Topologie http://localhost:5001/
  • 23. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 29
  • 24. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Schritt 8: Hinzufügen eines neuen Data Center (4x3 -> 4x4) $ ./makebootconfig-sn5.sh Done bootstrapping storage-node 5 $ ./startSNA-sn5.sh $ ./runScript.sh 4x4.kvs Executed plan 11, waiting for completion... Plan 11 ended successfully Executed plan 12, waiting for completion... Plan 12 ended successfully Created 4x4 Redistributed: 4x4 Topology transformation from current deployed topology to 4x4: Create 4 RNs ... Executed plan 13, waiting for completion... Plan 13 ended successfully $ java -jar /u01/nosql/kv-ee/lib/kvstore.jar runadmin - port 5000 -host kvhost01 kv-> show topology store=kvstore numPartitions=120 sequence=179 zn: id=zn1 name=Potsdam repFactor=3 type=PRIMARY zn: id=zn2 name=Berlin repFactor=1 type=PRIMARY 30 1. Bootstrapping auf neuem Storage Node 2. Starten des Agenten auf neuem Storage Nodes 3. Deployment einer 4x4 Topologie – Anlegen eines neuen Data Center – Hinzufügen eines Storage Node zum neuen Data Center – Klonen der Topologie – Redistribution: Neues Shard, Replikationsknoten, Verschieben der Partitionen, Rebalancing des Clusters 4. Überprüfen der Topologie http://localhost:5001/ oder über Kommandozeilenwerkzeug
  • 25. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 31
  • 26. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 1 2 3 4 Begriffe und Thematische Einordnung Kurzer Überblick zur Oracle NoSQL Datenbank Oracle NoSQL DB in der Praxis – Installation und Betrieb Oracle NoSQL DB in der Praxis – Anwendungsentwicklung Weiterführende Links und Informationen 32 5
  • 27. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Die Oracle NoSQL DB in der Praxis Anwendungsentwicklung 1. Erste Schritte mit der NoSQL DB: HelloModernAppDev.java 2. NoSQL DB Table API 3. Mittels REST API auf die Oracle NoSQL DB 4. Oracle NoSQL DB als Graph Datenbank: Knoten und Kanten 5. NoSQL DB mit Oracle DB über externe Tabellen verbinden 34
  • 28. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Schritt 1: Ein HelloWorld-Beispiel mit der Java API $ cd $KVHOME $ java -jar $KVHOME/lib/kvstore.jar kvlite $ Opened existing kvlite store with config: -root ./kvroot -store kvstore -host <hostname> - port 5000 -admin 5001 $ # 2. Terminalfenster $ java -jar $KVHOME/lib/kvstore.jar ping -port 5000 -admin 5001 -host <hostname> $ cd $KVHOME $ gedit examples/hello/HelloModernAppDev.java $ javac -cp examples:lib/kvclient.jar examples/hello/HelloModernAppDev.java $ java -cp examples:lib/kvclient.jar hello.HelloModernAppDev Hello Modern App Dev 12c Community ! $ 35 • KVLITE – Auf Basis einer 1x1 Topologie • 1 Storage Node, 10 Partitionen • KVLITE starten • HelloModernAppDev.java – Kompilieren und ausführen – Key-Value Paare • CRUD Operationen: PUT, GET, DELETE • JavaDoc http://docs.oracle.com/cd/NOSQL/html/javado c/overview-summary.html
  • 29. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Schritt 2: Table API $ cd $KVHOME $ java -jar lib/kvstore.jar runadmin -port 5000 -host <hostname> kv-> table create -name EMP EMP-> add-field -type INTEGER -name empno EMP-> add-field -type STRING -name ename EMP-> add-field -type DOUBLE -name sal EMP-> add-field -type STRING -name job EMP-> primary-key -field empno EMP-> exit Table EMP built. kv-> plan add-table -name EMP -wait Executed plan 11, waiting for completion... Plan 11 ended successfully kv-> connect store -host localhost -port 5000 -name kvstore Connected to kvstore at localhost:5000. kv-> put table -name EMP -json '{"empno":815, "ename":"JONES", "sal": 3500, "job":"MANAGER"}' Operation successful, row inserted. ... kv-> get table –name emp kv-> get –kv all ... 36 • Nutzen des CLI • Operationen – PUT TABLE, GET TABLE • JavaDoc http://docs.oracle.com/cd/E57769_01/ht ml/javadoc/oracle/kv/table/TableAPI.htm l
  • 30. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Schritt 2: Table API – Tabellen im SQL Developer 37 • Verbindung auf NoSQL DB anlegen – Host: <hostname> – Store: kvstore • Navigation wie gewohnt • Nur Lese-Zugriffe – Tabellen – Daten
  • 31. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Oracle12c. Tabellen. Oracle12c. JSON Document Store. Oracle NoSQL DB Oracle REST Data Services (ORDS) Schritt 3: REST API für NoSQL DB
  • 32. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Schritt 3: Mit REST API auf NoSQL DB zugreifen $ cd /u01/ords $ java -jar ords.war standalone $ java -jar ords.war nosqladd --pagelimit 20 sales kvstore localhost:5000 $ // Browser http://localhost:7070/ords/sales/metadata-catalog http://localhost:7070/ords/sales/metadata- catalog/tables/emp/ http://localhost:7070/ords/sales/metadata- catalog/tables/emp/item http://localhost:7070/ords/sales/tables/emp http://localhost:7070/ords/sales/tables/emp/7999 curl -i -H "Content-Type: application/json" -X PUT -d "{"empno": 8000, "ename": "PATENGE", "job": "Consultant"}" "http://localhost:7070/ords/sales/tables/emp/" http://localhost:7070/ords/sales/tables/emp/8000 39 • ORDS installieren und konfigurieren • Hier: Starten als Standalone • NoSQL DB Store registrieren • Auf Metadaten-Katalog zugreifen • Auf Metadaten einer spezifischen Tabelle zugreifen • Auf Tabellendaten zugreifen – Über Schlüssel • CRUD • Hinweis: JSON-Anzeige im Browser – Hier: Plug-in für Firefox
  • 33. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Schritt 4: Oracle NoSQL DB als Graph Datenbank $ cd /opt/oracle/oracle-spatial- graph/property_graph/dal/groovy $ ./gremlin-opg-nosql.sh opg-nosql> // Connect to the Oracle NoSQL DB opg-nosql> server = new ArrayList<String>(); opg-nosql> server.add("bigdatalite:5000"); ==>true opg-nosql> cfg=new PgNosqlGraphConfigBuilder() opg-nosql> .setDbEngine(DbEngine.NOSQL) opg-nosql> .setName("helloWorldGraph") opg-nosql> .setStoreName("kvstore") opg-nosql> .setHosts(server) opg-nosql> .addEdgeProperty("label", PropertyType.STRING, "label") opg-nosql> .setMaxNumConnections(1).build(); ... • Knoten-Kanten-Modell – Knoten und Kanten mit Attributen • In-Memory Parallel Graph Analysis – PGX Framework – Beispiel mit Groovy Shell • Teil von Oracle Big Data Spatial and Graph vertex1 vertex2 edge1 name: ″ Karin ″ location: ″Potsdam″ gender:“female“ name: ″Carsten″ location: ″Munich″ isColleagueOf
  • 34. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 1 2 3 4 Begriffe und Thematische Einordnung Kurzer Überblick zur Oracle NoSQL Datenbank Oracle NoSQL DB in der Praxis – Installation und Betrieb Oracle NoSQL DB in der Praxis – Anwendungsentwicklung Weiterführende Links und Informationen 45 5
  • 35. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | NoSQL DB Enterprise Edition und Community Edition Feature NoSQL DB CE NoSQL DB EE Lizenzkosten Verfügbar unter der AGPL License R MyOracleSupport R R Diskussionsforen R R Open Source R Java und C API R R ACID Transaktionen R R Large Object Support R R Kein Single Point Of Failure R R
  • 36. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | NoSQL DB Enterprise Edition und Community Edition Feature NoSQL DB CE NoSQL DB EE Integation mit Hadoop R R Table API R R RDBMS Integration Ext. Tables R Jena Adapter (Graph/SPARQL) R Event Processing (CQL) R Online Administration R R JMX Monitoring R R SNMP Monitoring R
  • 37. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Hilfreiche Informationen und Links • Öffentlich verfügbare Inhalte – Oracle Oracle NoSQL im OTN http://www.oracle.com/technetwork/database/database- technologies/nosqldb/documentation/index.html – Online Dokumentation http://docs.oracle.com/cd/NOSQL/html/index.html – JavaDoc der Java API http://docs.oracle.com/cd/NOSQL/html/javadoc/index.html – Wieviel Storage Nodes werden benötigt – Ressourcen planen für die Oracle NoSQL DB: http://docs.oracle.com/cd/NOSQL/html/AdminGuide/Oracle-NoSQLDB-Admin.pdf#page=16 – Oracle Big Data Lite VM http://www.oracle.com/technetwork/community/developer-vm/index.html#bdl – Oracle Dojo # 2 zu „Big Data: Eine Einführung in Oracle NoSQL DB, Hadoop MapReduce, Oracle Big Data Connectors“ http://www.oracle.com/webfolder/technetwork/de/community/dojo/index.html – Blog von Charles Lambs https://blogs.oracle.com/charlesLamb/ – Vortrag metafinanz Informationssysteme GmbH auf DOAG Konferenz 2013 http://www.metafinanz.de/sites/default/files/DOAG_2013_Oracle NoSQL Database.pdf 50
  • 38. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 51