MultiWrite APIの使用によるデータの挿入
MultiWrite APIを使用して、1つのデータベース操作で複数のデータ行を追加できます。
WriteMultipleRequest
クラスを使用して、表に関連付けられた一連のPutRequest
操作を実行できます。それらでは、それらの主キーの同じシャード・キー部分が、単一のアトミック書込み操作として共有されます。WriteMultipleRequest
クラスを使用して、データを親表と子表に同時に追加することもできます。これは、関連する複数の行をアトミックに変更する効率的な方法です。操作が正常に完了すると、WriteMultipleResult.getSuccess()
メソッドでtrueが返されます。
様々なクラスおよびメソッドの詳細は、Oracle NoSQL Java SDK APIリファレンスを参照してください。
private static void writeMul(NoSQLHandle handle,String parent_tblname,
String parent_data, String child_tblname, String child_data){
WriteMultipleRequest umRequest = new WriteMultipleRequest();
PutRequest putRequest =
new PutRequest().setValueFromJson(parent_data,null).setTableName(parent_tblname);
umRequest.add(putRequest, false);
putRequest =
new PutRequest().setValueFromJson(child_data,null).setTableName(child_tblname);
umRequest.add(putRequest, false);
WriteMultipleResult umResult = handle.writeMultiple(umRequest);
}
borneo.WriteMultipleRequest
クラスを使用して、表に関連付けられた一連のPutRequest
操作を実行できます。それらでは、それらの主キーの同じシャード・キー部分が、単一のアトミック書込み操作として共有されます。borneo.WriteMultipleRequest
クラスを使用して、データを親表と子表に同時に追加することもできます。これは、関連する複数の行をアトミックに変更する効率的な方法です。
様々なクラスおよびメソッドの詳細は、Oracle NoSQL Python SDK APIリファレンスを参照してください。
def mul_write(handle,parent_tblname,parent_data,
child_tblname, child_data):
request = PutRequest()
request.set_value_from_json(parent_data)
request.set_table_name('ticket')
wm_req.add(request, True)
request1 = PutRequest()
request1.set_table_name(child_tblname)
request1.set_value_from_json(child_data)
wm_req.add(request1, True)
result = handle.write_multiple(wm_req)
WriteMultipleRequest
クラスを使用して、表に関連付けられた一連のPutRequest
操作を実行できます。それらでは、それらの主キーの同じシャード・キー部分が、単一のアトミック書込み操作として共有されます。WriteMultipleRequest
クラスを使用して、データを親表と子表に同時に追加することもできます。これは、関連する複数の行をアトミックに変更する効率的な方法です。
様々なクラスおよびメソッドの詳細は、Oracle NoSQL Go SDK APIリファレンスを参照してください。
//multiple write from the table
func mul_write(client *nosqldb.Client, err error, parenttbl_name string,
parent_data string, childtbl_name string, child_data string)(){
value, err := types.NewMapValueFromJSON(parent_data)
putReq := &nosqldb.PutRequest{
TableName: parenttbl_name,
Value: value,
}
wmReq := &nosqldb.WriteMultipleRequest{
TableName: "",
Timeout: 10 * time.Second,
}
wmReq.AddPutRequest(putReq, true)
value1, err := types.NewMapValueFromJSON(child_data)
putReq1 := &nosqldb.PutRequest{
TableName: childtbl_name,
Value: value1,
}
wmReq.AddPutRequest(putReq1, true)
wmRes, err := client.WriteMultiple(wmReq)
if err != nil {
fmt.Printf("WriteMultiple() failed: %v\n", err)
return
}
if wmRes.IsSuccess() {
fmt.Printf("WriteMultiple() succeeded\n")
} else {
fmt.Printf("WriteMultiple() failed\n")
}
}
writeMany
メソッドを使用して、表に関連付けられた一連のput操作を実行できます。それらでは、それらの主キーの同じシャード・キー部分が、単一のアトミック書込み操作として共有されます。writeMany
メソッドを使用して、データを親表と子表に同時に追加することもできます。これは、関連する複数の行をアトミックに変更する効率的な方法です。
メソッドの詳細は、NoSQLClientクラスを参照してください。
const ops = [
{
tableName: 'ticket',
put: {
"ticketNo": "1762344493810",
"confNo" : "LE6J4Z"
},
abortOnFail: true
},
{
tableName: 'ticket.bagInfo',
put: {
"ticketNo":"1762344493810",
"id":"79039899165297",
"tagNum":"17657806255240",
"routing":"MIA/LAX/MEL",
"lastActionCode":"OFFLOAD",
"lastActionDesc":"OFFLOAD",
"lastSeenStation":"MEL",
"lastSeenTimeGmt":"2019-02-01T16:13:00Z",
"bagArrivalDate":"2019-02-01T16:13:00Z"
},
abortOnFail: true
}
];
const res = await handle.writeMany(ops, null);
const ops = [
{
tableName: 'ticket',
put: {
"ticketNo": "1762344493810",
"confNo" : "LE6J4Z"
},
abortOnFail: true
},
{
tableName: 'ticket.bagInfo',
put: {
"ticketNo":"1762344493810",
"id":"79039899165297",
"tagNum":"17657806255240",
"routing":"MIA/LAX/MEL",
"lastActionCode":"OFFLOAD",
"lastActionDesc":"OFFLOAD",
"lastSeenStation":"MEL",
"lastSeenTimeGmt":"2019-02-01T16:13:00Z",
"bagArrivalDate":"2019-02-01T16:13:00Z"
},
abortOnFail: true
}
];
const res = await handle.writeMany(ops, null);
PutManyAsync
メソッドを使用して、表に関連付けられた一連のput操作を実行できます。それらでは、それらの主キーの同じシャード・キー部分が、単一のアトミック書込み操作として共有されます。PutManyAsync
メソッドを使用して、データを親表と子表に同時に追加することもできます。これは、関連する複数の行をアトミックに変更する効率的な方法です。
すべてのクラスおよびメソッドの詳細は、Oracle NoSQL Dotnet SDK APIリファレンスを参照してください。
private static async Task mul_write(NoSQLClient client,string parentbl_name,
string data1, string childtbl_name, string data2){
var result = await client.WriteManyAsync(
new WriteOperationCollection()
.AddPut(parentbl_name, FieldValue.FromJsonString(data1).AsMapValue)
.AddPut(childtbl_name, FieldValue.FromJsonString(data2).AsMapValue)
);
}