Benutzer-Werkzeuge

Webseiten-Werkzeuge


nosql:connect_read_write_oracle_nosql_db_11gr2

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:

  1. Name des Stores
  2. Liste mit den SN Nodes für den Zugriff auf den Store
  3. Parameter für Consistency und Durability definieren siehe ⇒ Übersicht Key-Value Store der Orace NoSQL DB 11g R2

Aufruf:

       // 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();
 

Dokumentation: KVstore Connect

Wert in den Store schreiben

Die einfachste Methode eine Wert in den Store zuschreiben ist die Methode put der Klasse KVstore:

Beispiel:

       // 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));

Existiert der Key wird der Wert überschrieben.

Dokumentation : KVstore put

Wert aus dem Store auslesen

       // 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);
 

Dokumentation: 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.

        // 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...");
 
        } 

Gesamten Store auslesen

Beispiel: Zählen aller Datensätze in einem Store mit Hilfe des storeIterator der Klasse KVstore.

    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(" --------------------------------------");
 
    }

KVStore.multiGetIterator() verwenden

Quellen

Cookies helfen bei der Bereitstellung von Inhalten. Diese Website verwendet Cookies. Mit der Nutzung der Website erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Computer gespeichert werden. Außerdem bestätigen Sie, dass Sie unsere Datenschutzerklärung gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website. Weitere Information
"Autor: Gunther Pipperr"
nosql/connect_read_write_oracle_nosql_db_11gr2.txt · Zuletzt geändert: 2013/08/19 15:12 von gpipperr