ネームスペースの作成
ネームスペースは表のグループを定義するもので、その中ですべての表名を一意に識別する必要があります。ネームスペースを使用すると、表権限の管理をグループ操作として実行できます。ネームスペースに認可権限を付与すると、ネームスペースとネームスペース内の表の両方にアクセスできるユーザーを決定できます。ネームスペースを使用すると、データベース・ストアに同じ名前の表を存在させることができます。このような表にアクセスするには、完全修飾の表名を使用します。完全修飾の表名では、表名の前にネームスペースがあり、その後にコロン(:)があります(ns1:table1
など)。
すべての表は、ネームスペースの一部です。sysdefault
というデフォルトのOracle NoSQL Databaseネームスペースがあります。すべての表は、他のネームスペースを作成し、そこに新しいテーブルを作成するまで、デフォルトのsysdefault
ネームスペースに割り当てられます。既存の表のネームスペースは変更できません。sysdefault
ネームスペースの表は、完全修飾名を必要とせず、表名のみで操作できます。
CREATE NAMESPACE
文を使用して、新しいネームスペースを追加できます。CREATE NAMESPACE [IF NOT EXISTS] namespace_name
ノート:
sys
で始まるネームスペース名は予約されています。接頭辞sys
は、どのネームスペースにも使用できません。
ns1
という名前のネームスペースを定義します。CREATE NAMESPACE IF NOT EXISTS ns1
APIの使用によるネームスペースの作成:
SystemRequest
クラスを使用してネームスペースを作成できます。SystemRequest
クラスは、表に依存しない管理操作を実行するために使用します。これらの操作は非同期であり、完了を確認する必要があります。
private static void createNS(NoSQLHandle handle) throws Exception {
String createNSDDL = "CREATE NAMESPACE IF NOT EXISTS ns1";
SystemRequest sysreq = new SystemRequest();
sysreq.setStatement(createNSDDL.toCharArray());
SystemResult sysres = handle.systemRequest(sysreq);
sysres.waitForCompletion(handle, 60000,1000);
System.out.println("Namespace " + nsName + " is created");
}
SystemRequest
クラスを使用してネームスペースを作成できます。SystemRequest
クラスは、表に依存しない管理操作を実行するために使用します。
def create_ns(handle):
statement = '''CREATE NAMESPACE IF NOT EXISTS ns1'''
sysreq = SystemRequest().set_statement(statement)
sys_result = handle.system_request(sysreq)
sys_result.wait_for_completion(handle, 40000, 3000)
print('Created namespace: ns1')
SystemRequest
クラスを使用してネームスペースを作成できます。SystemRequest
クラスは、表に依存しない管理操作を実行するために使用します。これらは長時間実行される可能性がある操作であり、操作の完了を確認する必要があります。
func createNS(client *nosqldb.Client, err error)(){
stmt := fmt.Sprintf("CREATE NAMESPACE IF NOT EXISTS ns1")
sysReq := &nosqldb.SystemRequest{
Statement: stmt,
}
sysRes, err := client.DoSystemRequest(sysReq)
_, err = sysRes.WaitForCompletion(client, 60*time.Second, time.Second)
if err != nil {
fmt.Printf("Error finishing CREATE NAMESPACE request: %v\n", err)
return
}
fmt.Println("Created Namespace ns1 ")
return
}
adminDDL
メソッドを使用してネームスペースを作成できます。adminDDL
メソッドは、表に依存しない管理操作を実行するために使用します。
async function createNS(handle) {
const createNS = `CREATE NAMESPACE IF NOT EXISTS ns1`;
let res = await handle.adminDDL(createNS);
console.log('Namespace created: ns1' );
}
ExecuteAdminSync
メソッドは、表に依存しない管理操作を実行するために使用します。
private static async Task createNS(NoSQLClient client){
var sql =
$@"CREATE NAMESPACE IF NOT EXISTS ns1";
var adminResult = await client.ExecuteAdminAsync(sql);
// Wait for the operation completion
await adminResult.WaitForCompletionAsync();
Console.WriteLine(" Created namespace ns1");
}