Get API를 사용하여 데이터 인출
GetRequest API를 사용하여 기본 키를 사용하여 단일 데이터 행을 인출합니다.
기본적으로 모든 읽기 작업은 결국 일관성이 유지됩니다. 이 유형의 읽기는 절대 일관성을 사용하는 읽기보다 비용이 적게 듭니다. Consistency 클래스의 setConsistency() 메소드를 사용하여 NoSQLHandle 인스턴스에 대한 기본 일관성을 변경할 수 있습니다.
GetRequest 클래스는 데이터를 읽을 수 있는 간단하고 강력한 방법을 제공하며 보다 복잡한 읽기 요청에 질의를 사용할 수 있습니다. 테이블에서 데이터를 읽으려면 GetRequest 클래스를 사용하여 대상 테이블 및 대상 키를 지정하고 NoSQLHandle.get()를 사용하여 요청을 실행합니다. 작업의 결과는 GetResult에서 확인할 수 있습니다. NoSQLHandleConfig.setConsistency(oracle.nosql.driver.Consistency) 및 GetRequest.setConsistency() 메소드를 사용하여 NoSQLHandle 인스턴스에 대한 기본 일관성을 변경할 수 있습니다.
QueryData.java의 전체 코드를 여기에서 다운로드하십시오.
//Fetch single row using get API
private static void getRow(NoSQLHandle handle,String colName,int Id) throws Exception {
MapValue key = new MapValue().put(colName, Id);
GetRequest getRequest = new GetRequest().setKey(key)
.setTableName(tableName);
GetResult getRes = handle.get(getRequest);
/* on success, GetResult.getValue() returns a non-null value */
if (getRes.getValue() != null) {
System.out.println("\t" +getRes.getValue().toString());
} else {
System.out.println("Get Failed");
}
}
주: 하위 테이블에서 데이터를 인출하려면 setTableName 메소드에서 테이블의 전체 이름(parent_tablename.child_tablename)을 지정합니다. 예제에서 전체 코드 TableJoins.java를 다운로드하여 여기에서 상위-하위 테이블에서 데이터를 인출하는 방법을 이해합니다.
GetRequest API를 사용하여 기본 키를 사용하여 단일 데이터 행을 인출합니다. borneo.NoSQLHandle.get() 메소드를 사용하여 단일 행을 읽을 수 있습니다. 이 방법을 사용하면 기본 키 값을 기반으로 레코드를 검색할 수 있습니다. borneo.GetRequest 클래스는 단순 get 작업에 사용됩니다. 대상 행에 대한 기본 키 값을 포함하고 borneo.GetResult 인스턴스를 반환합니다. 핸들을 생성하기 전에 borneo.NoSQLHandleConfig.set_consistency()를 사용하여 borneo.NoSQLHandle에 대한 기본 일관성을 변경할 수 있습니다. borneo.GetRequest.set_consistency()를 사용하여 단일 요청에 대해 변경할 수 있습니다.
QueryData.py의 전체 코드를 여기에서 다운로드하세요.
# Fetch single row using get API
def getRow(handle,colName,Id):
request = GetRequest().set_table_name('stream_acct')
request.set_key({colName: Id})
print('Query results: ')
result = handle.get(request)
print('Query results are' + str(result.get_value()))
주: 하위 테이블에서 데이터를 인출하려면 set_table_name 메소드에서 테이블의 전체 이름(parent_tablename.child_tablename)을 지정합니다. 예제에서 전체 코드 TableJoins.py를 다운로드하여 여기서 상위-하위 테이블에서 데이터를 인출하는 방법을 이해합니다.
GetRequest API를 사용하여 기본 키를 사용하여 단일 데이터 행을 인출합니다. Client.Get 함수를 사용하여 단일 행을 읽을 수 있습니다. 이 기능을 사용하면 기본 키 값을 기반으로 레코드를 검색할 수 있습니다. nosqldb.GetRequest는 단순 get 작업에 사용됩니다. 대상 행에 대한 기본 키 값을 포함하고 nosqldb.GetResult 인스턴스를 반환합니다. get 작업이 성공하면 nil이 아닌 GetResult.Version가 반환됩니다. 클라이언트를 생성하기 전에 RequestConfig.Consistency를 사용하여 nosqldb.RequestConfig에 대한 기본 일관성을 변경할 수 있습니다. GetRequest.Consistency 필드를 사용하여 단일 요청에 대해 변경할 수 있습니다.
QueryData.go는 여기의 예에서 전체 코드를 다운로드합니다.
//fetch data from the table
func getRow(client *nosqldb.Client, err error, tableName string, colName string, Id int)(){
key:=&types.MapValue{}
key.Put(colName, Id)
req:=&nosqldb.GetRequest{
TableName: tableName,
Key: key,
}
res, err:=client.Get(req)
if err != nil {
fmt.Printf("GetResults() failed: %v\n", err)
return
}
if res.RowExists() {
fmt.Printf("Got row: %v\n", res.ValueAsJSON())
} else {
fmt.Printf("The row does not exist.\n")
}
}
주: 하위 테이블에서 데이터를 인출하려면 TableName 매개변수에 테이블의 전체 이름(parent_tablename.child_tablename)을 지정합니다. 예제에서 전체 코드 TableJoins.go를 다운로드하여 여기서 상위-하위 테이블에서 데이터를 가져오는 방법을 이해합니다.
get API를 사용하여 기본 키를 사용하여 단일 데이터 행을 인출합니다. get 메소드를 사용하여 단일 행을 읽을 수 있습니다. 이 방법을 사용하면 기본 키 값을 기반으로 레코드를 검색할 수 있습니다. 메소드 세부 정보는 NoSQLClient 클래스를 참조하십시오.
Consistency enumeration을 사용하여 읽기 작업의 일관성을 설정합니다. 정합성 보장 속성을 사용하여 NoSQLClient 인스턴스를 생성하는 데 사용되는 초기 구성에서 읽기 작업에 대한 기본 정합성을 설정할 수 있습니다. 또한 get 메소드의 GetOpt 인수에서 consistency 속성을 설정하여 단일 읽기 작업에 대해 이 속성을 변경할 수도 있습니다.
JavaScript: QueryData.js 예제에서 전체 코드를 다운로드합니다.
//fetches single row with get API
async function getRow(handle,idVal) {
try {
const result = await handle.get(TABLE_NAME,{acct_Id: idVal });
console.log('Got row: %O', result.row);
} catch(error) {
console.error(' Error: ' + error.message);
}
}
TypeScript: get 및 기타 데이터 관련 메소드에 행에 대한 선택적 유형 매개변수를 제공할 수도 있습니다. type 매개변수를 사용하면 TypeScript 컴파일러가 반환된 GetResult 메소드에 대한 type 힌트를 제공하고 전달된 키를 유형 검사할 수 있습니다. type을 확인하는 동안 컴파일러는 primary key 필드가 테이블 스키마의 일부인지, primary key 필드의 type이 허용되는 types(문자열, 숫자, 날짜 또는 부울) 중 하나인지 검사합니다. QueryData.ts의 전체 코드를 여기에서 다운로드하십시오.
interface StreamInt {
acct_Id: Integer;
profile_name: String;
account_expiry: TIMESTAMP;
acct_data: JSON;
}
/*fetches single row with get API*/
async function getRow(handle: NoSQLClient,idVal: Integer) {
try {
const result = await handle.get<StreamInt>(TABLE_NAME,{acct_Id: idVal });
console.log('Got row: %O', result.row);
} catch(error) {
console.error(' Error: ' + error.message);
}
}
주: 하위 테이블에서 데이터를 인출하려면 TABLE_NAME 매개변수에 테이블의 전체 이름(parent_tablename.child_tablename)을 지정합니다. TableJoins.js 여기의 전체 JavaScript 코드와 TableJoins.ts 여기의 전체 TypeScript 코드를 다운로드하여 상위-하위 테이블에서 데이터를 가져오는 방법을 알아보십시오.
GET API를 사용하여 primary key를 사용하여 단일 데이터 행을 패치(fetch)합니다. GetAsync 메소드를 사용하여 단일 행을 읽을 수 있습니다. 이 메소드를 사용하면 primary key 값을 기반으로 행을 검색할 수 있습니다. 필드 이름은 테이블 기본 키 열 이름과 동일해야 합니다. 옵션을 GetOptions로 전달할 수도 있습니다.
정합성 보장 열거를 사용하여 읽기 작업의 일관성을 설정할 수 있습니다. 읽기 작업에 대한 기본 일관성은 NoSQLConfig의 Consistency 속성으로 설정될 수 있습니다. GetOptions의 Consistency 속성을 사용하여 단일 Get 작업에 대한 일관성을 변경할 수도 있습니다. GetAsync 메소드는 Task<GetResult<RecordValue>>를 반환합니다. GetResult 인스턴스는 반환된 행, 행 버전 및 기타 정보를 포함합니다. 제공된 기본 키를 가진 행이 테이블에 없으면 행 및 버전 속성의 값이 모두 널입니다.
QueryData.cs의 전체 코드를 여기에서 다운로드하십시오.
private static async Task getRow(NoSQLClient client,String colName, int Id){
var result = await client.GetAsync(TableName,
new MapValue
{
[colName] =Id
});
if (result.Row != null){
Console.WriteLine("Got row: {0}\n", result.Row.ToJsonString());
}
else {
Console.WriteLine("Row with primaryKey {0} doesn't exist",colName);
}
}
주: 하위 테이블에서 데이터를 인출하려면 TableName 매개변수에 테이블의 전체 이름(parent_tablename.child_tablename)을 지정합니다. 예제에서 전체 코드 TableJoins.cs를 다운로드하여 여기서 상위-하위 테이블에서 데이터를 인출하는 방법을 이해합니다.