NoSQL 핸들 가져오기

Oracle NoSQL Database 드라이버를 사용하여 테이블에 액세스하는 방법을 알아봅니다. NoSQL 핸들을 생성하여 애플리케이션 개발을 시작합니다. NoSQLHandle를 사용하여 테이블에 액세스하고 모든 작업을 실행합니다.

NoSQLHandle로 표시되는 연결을 만들려면 NoSQLHandleFactory.createNoSQLHandle 메소드와 NoSQLHandleConfig 클래스를 사용하여 핸들을 가져옵니다. NoSQLHandleConfig 클래스를 사용하면 응용 프로그램이 핸들 구성을 지정할 수 있습니다. 자세한 내용은 Java API Reference Guide를 참조하십시오.

다음 코드를 사용하여 NoSQL 핸들을 얻습니다.
/* Configure a handle for the desired Region and AuthorizationProvider.
 * By default this SignatureProvider constructor reads authorization
 * information from ~/.oci/config and uses the default user profile and
 * private key for request signing. Additional SignatureProvider
 * constructors are available if a config file is not available or
 * desirable. 
 */
AuthorizationProvider ap = new SignatureProvider();

/* Use the us-ashburn-1 region */
NoSQLHandleConfig config = new NoSQLHandleConfig(Region.US_ASHBURN_1, ap);
config.setAuthorizationProvider(ap);

/* Sets a default compartment for all requests from this handle. This 
 * may be overridden in individual requests or by using a
 * compartment-name prefixed table name.
 */
config.setDefaultCompartment("mycompartment");

// Open the handle
NoSQLHandle handle = NoSQLHandleFactory.createNoSQLHandle(config);

// Use the handle to execute operations

핸들에는 연관된 메모리 및 네트워크 리소스가 있습니다. 핸들을 사용하여 응용 프로그램이 완료되면 NoSQLHandle.close 메소드를 사용하여 리소스를 확보합니다.

네트워크 작업과 리소스 할당 및 할당 해제 오버헤드를 최소화하려면 핸들을 반복적으로 만들고 닫지 않는 것이 좋습니다. 예를 들어, 각 작업에 대한 핸들을 만들고 닫으면 응용 프로그램 성능이 저하됩니다. 핸들은 동시 작업을 허용하므로 단일 핸들만으로도 다중 스레드 응용 프로그램의 테이블에 액세스할 수 있습니다. 여러 핸들을 만들면 성능상의 이점을 제공하지 않고 추가적인 리소스 오버헤드가 발생합니다.

핸들은 먼저 통신 끝점, 권한 부여 정보 및 핸들 구성의 기본값을 구성하기 위한 borneo.NoSQLHandleConfig 인스턴스를 생성하여 생성됩니다. borneo.NoSQLHandleConfig는 서비스에 대한 접속을 나타냅니다. 생성된 후에는 리소스를 정리하려면 borneo.NoSQLHandle.close() 메소드를 사용하여 닫아야 합니다. 핸들은 스레드에 안전하며 공유하기 위한 것입니다.

Oracle NoSQL Cloud Service에 대한 NoSQL 핸들을 획득한 예는 다음과 같습니다.
from borneo import NoSQLHandle, NoSQLHandleConfig, Regions
from borneo.iam import SignatureProvider
# create AuthorizationProvider
provider = SignatureProvider()
# create handle config using the correct desired region
# as endpoint, add a default compartment.
config = NoSQLHandleConfig(Regions.US_ASHBURN_1).
set_authorization_provider(provider).
set_default_compartment('mycompartment')
# create the handle
handle = NoSQLHandle(config)

주:

리소스 사용량과 핸들 생성 오버헤드를 줄이려면 borneo.NoSQLHandle 인스턴스를 과도하게 만들고 닫지 않는 것이 좋습니다.
Oracle NoSQL Database Cloud Service go 애플리케이션의 첫 번째 단계는 서비스로 요청을 보내는 데 사용되는 nosqldb.Client 핸들을 생성하는 것입니다. 클라이언트 핸들의 인스턴스는 여러 고루틴에서 동시에 사용하기에 안전하며 다중 고루틴 응용 프로그램에서 공유하기 위한 것입니다. 핸들은 자격 증명 및 기타 인증 정보를 사용하여 구성됩니다.
provider, err := iam.NewSignatureProviderFromFile(cfgfile, profile, passphrase, compartment)
cfg := nosqldb.Config
{ 
   Region: "us-phoenix-1", AuthorizationProvider: provider,
}
client, err := nosqldb.NewClient(cfg)
// use client for all NoSQL DB operations

NoSQLClient 클래스는 서비스에 대한 기본 액세스 지점을 나타냅니다. NoSQLClient 인스턴스를 생성하려면 적절한 구성 정보를 제공해야 합니다. 이 정보는 Config 객체로 표시되며 NoSQLClient 클래스의 생성자에 제공될 수 있습니다. 또는 이 정보를 JSON 구성 파일 및 NoSQLClient 생성자에 해당 파일의 경로(절대 또는 응용 프로그램의 현재 디렉토리에 대한 상대 경로)를 저장하도록 선택할 수 있습니다. 메소드 세부 정보는 NoSQLClient 클래스를 참조하십시오.

아래의 첫번째 예에서는 Config 객체를 사용하여 Cloud Service에 대한 NoSQLClient 인스턴스를 생성합니다. 또한 기본 구획을 추가하고 구성 객체의 기본 시간 초과 값을 대체합니다.
import { NoSQLClient, Region } from 'oracle-nosqldb';

let client = new NoSQLClient({
    region: Region.US_ASHBURN_1,
    timeout: 20000,
    ddlTimeout: 40000,
    compartment: 'mycompartment',
    auth: {
        iam: {
            configFile: '~/myapp/.oci/config',
            profileName: 'Jane'
        }
    }
});

두번째 예제에서는 JSON 파일 config.json에 동일한 구성을 저장하고 이를 사용하여 NoSQLClient 인스턴스를 생성합니다.

샘플 config.json 파일:
{ 
"region": "US_ASHBURN_1",
 "timeout": 20000,
 "ddlTimeout": 40000,
 "compartment": "mycompartment", 
 "auth": { 
    "iam": { 
       "configFile": "~/myapp/.oci/config",
       "profileName": "Jane"
    } 
  }
}
응용 프로그램 코드:
import { NoSQLClient } from 'oracle-nosqldb';
let client = new NoSQLClient('config.json');

NoSQLClient 클래스는 서비스에 대한 기본 액세스 지점을 나타냅니다. NoSQLClient 인스턴스를 생성하려면 적절한 구성 정보를 제공해야 합니다. 이 정보는 NoSQLClient 생성자에 인스턴스를 제공할 수 있는 NoSQLConfig 클래스로 표시됩니다. 또는 구성 정보를 JSON 구성 파일에 저장하고 해당 파일에 대한 경로(절대 또는 현재 디렉토리에 상대적)를 가져오는 NoSQLClient 생성자를 사용할 수 있습니다.

아래 첫번째 예제는 NoSQLConfig를 사용하여 Cloud Service에 대해 NoSQLClient 인스턴스를 생성합니다. 또한 기본 구획을 추가하고 NoSQLConfig에서 일부 기본 시간 초과 값을 무효화합니다.
var client = new NoSQLClient(
    new NoSQLConfig
    {
        Region = Region.US_ASHBURN_1,
        Timeout = TimeSpan.FromSeconds(10),
        TableDDLTimeout = TimeSpan.FromSeconds(20),
        Compartment = "mycompartment",
        AuthorizationProvider = new IAMAuthorizationProvider(
            "~/myapp/.oci/config", "Jane")
    });

두번째 예제에서는 JSON 파일 config.json에 동일한 구성을 저장하고 이를 사용하여 NoSQLClient 인스턴스를 생성합니다.

config.json
{
    "Region": "us-ashburn-1",
    "Timeout": 20000,
    "TableDDLTimeout": 40000,
    "compartment": "mycompartment",
    "AuthorizationProvider":
    {
        "AuthorizationType": "IAM",
        "ConfigFile": "~/myapp/.oci/config",
        "ProfileName": "Jane"
    }
}
응용 프로그램 코드:
var client = new NoSQLClient("config.json");