nosql:oracle_nosql_table_definition
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | Letzte ÜberarbeitungBeide Seiten der Revision | ||
nosql:oracle_nosql_table_definition [2014/05/03 22:40] – [Das Konzept einer Tabelle in der NoSQL Datenbank v3 verwenden] gpipperr | nosql:oracle_nosql_table_definition [2014/05/03 22:40] – [Quellen] gpipperr | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Das Konzept einer Tabelle in der NoSQL Datenbank v3 verwenden ====== | ||
- | Mit der Version 3 der Oracle NoSQL Datenbank wird das Konzept der Tabelle in den Key-Value Store eingeführt. | ||
- | Neben der Vereinfachung der Entwicklung steht dem Entwickler dann auch das Konzept eines Index auf die Values des Stores zur Verfügung. | ||
- | |||
- | Eine Tabelle wird erst mit **table create** definiert und damit mit einem **plan add-table** erzeugt. | ||
- | |||
- | |||
- | |||
- | Beispiel Anlegen der Tabelle EMP: | ||
- | |||
- | Starten der Koncole (hier als Beispiel mit einer [[nosql: | ||
- | |||
- | <code powershell> | ||
- | set KVHOME=D: | ||
- | |||
- | java -jar %KVHOME%\lib\kvcli.jar -host localhost -port 5000 -store kvstore | ||
- | |||
- | </ | ||
- | |||
- | |||
- | Die Tabelle anlegen: | ||
- | <code java> | ||
- | |||
- | kv-> table create -name emp -desc "Die Mitarbeiter" | ||
- | |||
- | emp-> add-field -type integer | ||
- | emp-> primary-key -field empno | ||
- | |||
- | emp-> add-field -type string | ||
- | emp-> add-field -type string | ||
- | emp-> add-field -type integer | ||
- | emp-> add-field -type long -name hiredate | ||
- | emp-> add-field -type float -name sal -default 0 | ||
- | emp-> add-field -type float -name comm | ||
- | emp-> add-field -type integer | ||
- | |||
- | emp-> exit | ||
- | |||
- | Table emp built. | ||
- | |||
- | |||
- | kv-> plan add-table -name emp -wait | ||
- | |||
- | Executed plan 5, waiting for completion... | ||
- | Plan 5 ended successfully | ||
- | |||
- | </ | ||
- | |||
- | Eine Index auf den Namen mit **" | ||
- | |||
- | <code java> | ||
- | |||
- | kv-> plan add-index -name IDX_EMP_ENAME -table emp -field ename | ||
- | |||
- | Started plan 6. Use show plan -id 6 to check status. | ||
- | To wait for completion, use plan wait -id 6 | ||
- | | ||
- | kv-> plan wait -id 6 | ||
- | |||
- | Plan 6 ended successfully | ||
- | |||
- | </ | ||
- | |||
- | |||
- | Mit **show tables** alle Tabellen anzeigen, mit **show tables -name** eine bestehende Tabelle als JSON Schema anzeigen. | ||
- | |||
- | Die erzeugte Tabelle anzeigen mit: | ||
- | <code java> | ||
- | |||
- | kv-> show tables | ||
- | Tables: | ||
- | emp -- Die Mitarbeiter | ||
- | |||
- | kv-> show tables -name emp | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | }, { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | }, { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | }, { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | }, { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | }, { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | }, { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | }, { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | } ], | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | } ] | ||
- | } | ||
- | </ | ||
- | |||
- | |||
- | Daten auslesen: | ||
- | |||
- | <code java> | ||
- | |||
- | kv-> get table -name emp -pretty | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | |||
- | 1 row returned. | ||
- | |||
- | </ | ||
- | |||
- | |||
- | |||
- | Einfache Java Klasse um die Daten in die Tabelle einzulesen: | ||
- | |||
- | <code java TableReadWrite.java> | ||
- | |||
- | import java.text.ParseException; | ||
- | import java.text.SimpleDateFormat; | ||
- | |||
- | import java.util.Date; | ||
- | |||
- | import oracle.kv.KVStore; | ||
- | import oracle.kv.KVStoreConfig; | ||
- | import oracle.kv.KVStoreFactory; | ||
- | import oracle.kv.table.Row; | ||
- | import oracle.kv.table.Table; | ||
- | import oracle.kv.table.TableAPI; | ||
- | |||
- | public class TableReadWrite { | ||
- | |||
- | // KV Store | ||
- | public static KVStore kvstore = null; | ||
- | |||
- | | ||
- | public static void main(String[] args) throws ParseException { | ||
- | TableReadWrite tableReadWrite = new TableReadWrite(); | ||
- | |||
- | // get the host to connect as first parameter | ||
- | String host = " | ||
- | // get the store Name | ||
- | String store = " | ||
- | KVStoreConfig kvconfig = new KVStoreConfig(store, | ||
- | // Connect to the store | ||
- | kvstore = KVStoreFactory.getStore(kvconfig); | ||
- | |||
- | // get the Table API | ||
- | TableAPI tableAPI = kvstore.getTableAPI(); | ||
- | |||
- | //get a reference to the table | ||
- | Table empTable = tableAPI.getTable(" | ||
- | |||
- | // Get a Row instance | ||
- | Row empRow = empTable.createRow(); | ||
- | |||
- | // put data in the row | ||
- | empRow.put(" | ||
- | |||
- | empRow.put(" | ||
- | empRow.put(" | ||
- | empRow.put(" | ||
- | |||
- | // date handling | ||
- | SimpleDateFormat formatter = new SimpleDateFormat(" | ||
- | Date date = (Date) formatter.parse(" | ||
- | |||
- | empRow.put(" | ||
- | empRow.put(" | ||
- | empRow.put(" | ||
- | empRow.put(" | ||
- | |||
- | // write the data to the store | ||
- | tableAPI.put(empRow, | ||
- | | ||
- | //-------- Read the data again from the Store | ||
- | //------- Use an Index | ||
- | | ||
- | //get Ref on the index | ||
- | Index empEmpnoIndex = empTable.getIndex(" | ||
- | | ||
- | IndexKey empEmpnoIndexKey=empEmpnoIndex.createIndexKey(); | ||
- | | ||
- | TableIterator< | ||
- | | ||
- | while (result.hasNext()) { | ||
- | Row empRowResult = result.next(); | ||
- | // read row | ||
- | String jRow=empRowResult.toJsonString(true); | ||
- | System.out.println(jRow); | ||
- | | ||
- | } | ||
- | | ||
- | } | ||
- | } | ||
- | |||
- | </ | ||
- | ==== Quellen ==== | ||
- | |||
- | |||
- | Oracle: | ||
- | |||
- | * http:// |
nosql/oracle_nosql_table_definition.txt · Zuletzt geändert: 2015/05/13 14:22 von gpipperr