Benutzer-Werkzeuge

Webseiten-Werkzeuge


nosql:connect_read_write_oracle_nosql_db_11gr2

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
nosql:connect_read_write_oracle_nosql_db_11gr2 [2013/06/26 10:59] – [Wert aus dem Store auslesen, bearbeiten und prüfen ob der Wert sich in zwischen geändert hat] gpipperrnosql:connect_read_write_oracle_nosql_db_11gr2 [2013/07/04 20:07] gpipperr
Zeile 1: Zeile 1:
 +====== Die Oracle NoSQL DB abfragen ======
 +
 +
 +==== Verbindung zum Store aufbauen =====
 +
 +Über die Factory Klasse KVStoreFactory wird mit Hilfe der Klasse KVStoreConfig die Verbindung zu einem Store aufgebaut.
 +
 +Notwendige Parameter:
 +  - Name des Stores
 +  - Liste mit den SN Nodes für den Zugriff auf den Store
 +  - Parameter für Consistency und Durability definieren siehe => [[nosql:db_architektur_oracle_nosql_db_11gr2#acid_transaktionelles_verhalten|Übersicht Key-Value Store der Orace NoSQL DB 11g R2]]
 +
 +Aufruf:
 +<code java>
 +       
 +       // Node liste
 +       String[] kvhosts = {"nosqldb01:5000","nosqldb02:5000","nosqldb03:5000"}
 +        
 +       // Config erzeugen
 +       KVStoreConfig kvconfig = new KVStoreConfig("GPIDB", kvhosts);
 +        
 +       // Consistency definieren
 +       kvconfig.setConsistency(Consistency.NONE_REQUIRED);
 +
 +       // Durabiltiy definieren
 +       kvconfig.setDurability(Durability.COMMIT_NO_SYNC);
 +        
 +       // Store Zugriff öffnen
 +       KVStore kstore = KVStoreFactory.getStore(kvconfig);
 +        
 +        
 +       // Mit dem Store arbeiten
 +       // ----------
 +        ....
 +       // ----------
 +        
 +        
 +       // Store wieder schließen
 +       kstore.close();
 +        
 +</code>
 +
 +Dokumentation: [[http://docs.oracle.com/cd/NOSQL/html/GettingStartedGuide/kvapi.html|KVstore Connect]]
 +
 +==== Wert in den Store schreiben ====
 +
 +Die einfachste Methode eine Wert in den Store zuschreiben ist die Methode put der Klasse KVstore:
 +
 +Beispiel:
 +<code java>
 +       // Key mit Minor und Mayer  Komponente anlegen
 +       Key k = Key.createKey("MAIN_KEY", "SLAVE_KEY");
 +       // Wert als Byte Array anlegen   
 +       byte[] b = ("Wert").getBytes();
 +       // Wert in den Store schreiben  
 +       kvstore.put(k, Value.createValue(b));
 +</code>
 +
 +Existiert der Key wird der Wert überschrieben.
 +
 +Dokumentation : [[http://docs.oracle.com/cd/NOSQL/html/GettingStartedGuide/recordput.html| KVstore put ]]
 +
 +
 +
 +==== Wert aus dem Store auslesen ====
 +
 +<code java>
 +       // Key erzeugen
 +       Key datakey = Key.createKey("ABCDEFG");
 +       
 +       // Daten aus dem Store mit den Key wieder lesen
 +       ValueVersion vv = kvstore.get(datakey);
 +       // Daten auslesen
 +       Value vdata = vv.getValue();
 +       
 +       // Nutzdaten wieder herstellen
 +       String data = new String(vdata.getValue());
 +       // Daten ausgeben
 +       System.out.println(data);
 +        
 +</code>
 +
 +
 +Dokumentation:  [[http://docs.oracle.com/cd/NOSQL/html/GettingStartedGuide/singleget.html|Simple Read]]
 +
 +==== putIfVersion()  - Wert aus dem Store auslesen, bearbeiten und prüfen ob der Wert sich in zwischen geändert hat==== 
 +
 +Jeder Satz im Store hat eine interne Versionsnummer, über dieser Versionsnummer kann beim einfügen ( putIfVersion() ) geprüft werden, ob eine neuer Version des Satzes im Store existiert und entsprechend darauf reagiert werden.
 +
 +
 +<code java>
 +        // Schlüssel erzeugen
 +        // nur der Mayor Part wird gefüllt
 +        Key datakey = Key.createKey(mayorkey);
 +                    
 +        // Daten aus dem Store wieder lesen
 +        ValueVersion vv = kvstore.get(datakey);
 +        // Version merken
 +        Version matchVersion = vv.getVersion();
 +        // Value auslesen
 +        Value  vdata = vv.getValue();
 +        String data = new String(vdata.getValue());
 +        System.out.println("INFO -- Read Value for the Key::" + mayorkey+" Version("+ matchVersion.getVersion() + ") fond data::" + data);
 +        
 +        //Daten ändern
 +        data="Neuer Wert";
 +        vdata = Value.createValue(data.getBytes());
 +        
 +        // wert wieder zurückschreiben
 +        Version newVersion = kvstore.putIfVersion(datakey, vdata, matchVersion);
 +        
 +        // falls Null konnte nicht zurückgeschrieben werden
 +        //
 +        if (newVersion == null) {
 +            //Auf den fehlgeschlagenen Versuch nun reagieren
 +            throw new MyException("Fehler aufgetreten...");
 +
 +        } 
 +</code>
 +==== Gesamten Store auslesen ====
 +
 +Beispiel: Zählen aller Datensätze in einem Store mit Hilfe des storeIterator der Klasse KVstore.
 +
 +<code java>
 +    public static void countAll() {
 +
 +        // Iterator Objekt für den gesamten Store erstellen
 +        // zur Zeit (R2) wird nur die Direction.UNORDERED untersützt 
 +        Iterator<KeyValueVersion> ifulldb = kvstore.storeIterator(Direction.UNORDERED, 10);
 +
 +        int storeCount = 0;
 +
 +        while (ifulldb.hasNext()) {
 +         
 +            // Key aus dem Store laden 
 +            KeyValueVersion e = ifulldb.next();
 +            storeCount++;
 +        }
 +
 +        System.out.println(" --------------------------------------");
 +        System.out.println(" -- Total Count of Records in the  Database :: " + storeCount);
 +        System.out.println(" --------------------------------------");
 +       
 +    }
 +
 +</code>
 +
 +
 +==== Quellen ====
 +
 +Beispiele:
 +  * http://www.oracle.com/technetwork/articles/bigdata/oracle-nosqldb-appdev-1891870.html
  
nosql/connect_read_write_oracle_nosql_db_11gr2.txt · Zuletzt geändert: 2013/08/19 15:12 von gpipperr