Come ottenere un handle NoSQL

Scopri come accedere alle tabelle utilizzando i driver di Oracle NoSQL Database. Iniziare a sviluppare l'applicazione creando un handle NoSQL. Utilizzare NoSQLHandle per accedere alle tabelle ed eseguire tutte le operazioni.

Per creare una connessione rappresentata da un NoSQLHandle, ottenere un handle utilizzando il metodo NoSQLHandleFactory.createNoSQLHandle e la classe NoSQLHandleConfig. La classe NoSQLHandleConfig consente a un'applicazione di specificare la configurazione dell'handle. Per ulteriori informazioni, consulta il manuale Java API Reference Guide.

Utilizzare il codice seguente per ottenere un handle 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

A un handle sono associate memoria e risorse di rete. Utilizzare il metodo NoSQLHandle.close per liberare le risorse al termine dell'applicazione utilizzando l'handle.

Per ridurre al minimo l'attività di rete e l'allocazione delle risorse e i sovraccarichi di disallocazione, è meglio evitare di creare e chiudere gli handle più volte. Ad esempio, la creazione e la chiusura di un handle intorno a ogni operazione comporterebbe prestazioni dell'applicazione scadenti. Un handle consente operazioni concorrenti, pertanto un singolo handle è sufficiente per accedere alle tabelle in un'applicazione multithread. La creazione di più handle comporta costi indiretti risorsa aggiuntivi senza fornire alcun vantaggio in termini di prestazioni.

Un handle viene creato creando prima un'istanza borneo.NoSQLHandleConfig per configurare l'endpoint di comunicazione, le informazioni di autorizzazione e i valori predefiniti per la configurazione dell'handle. borneo.NoSQLHandleConfig rappresenta una connessione al servizio. Una volta creato, deve essere chiuso utilizzando il metodo borneo.NoSQLHandle.close() per eseguire il cleanup delle risorse. Le maniglie sono thread-safe e destinate ad essere condivise.

Esempio di acquisizione di una gestione NoSQL per Oracle NoSQL Cloud Service:

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)

Nota: per ridurre l'uso delle risorse e il sovraccarico della creazione dell'handle, è consigliabile evitare la creazione e la chiusura eccessive delle istanze borneo.NoSQLHandle.

Il primo passo in qualsiasi applicazione Oracle NoSQL Database Cloud Service go consiste nel creare un handle nosqldb.Client utilizzato per inviare richieste al servizio. Le istanze dell'handle Client sono sicure per l'uso simultaneo da parte di più goroutine e destinate a essere condivise in un'applicazione multi-goroutines. L'handle viene configurato utilizzando le credenziali e altre informazioni di autenticazione.

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

La classe NoSQLClient rappresenta il punto di accesso principale al servizio. Per creare l'istanza di NoSQLClient è necessario fornire le informazioni di configurazione appropriate. Queste informazioni sono rappresentate da un oggetto Config e possono essere fornite al costruttore della classe NoSQLClient. In alternativa, è possibile scegliere di memorizzare queste informazioni in un file di configurazione JSON e nel costruttore di NoSQLClient con il percorso (assoluto o relativo alla directory corrente dell'applicazione) di tale file. Per i dettagli del metodo, vedere la classe NoSQLClient.

Il primo esempio riportato di seguito crea un'istanza di NoSQLClient per Cloud Service utilizzando l'oggetto Config. Inoltre, aggiunge un compartimento predefinito e sostituisce i valori di timeout predefiniti nell'oggetto di configurazione.

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'
        }
    }
});

Il secondo esempio memorizza la stessa configurazione in un file JSON config.json e la utilizza per creare un'istanza NoSQLClient.

File config.json di esempio:

{
"region": "US_ASHBURN_1",
 "timeout": 20000,
 "ddlTimeout": 40000,
 "compartment": "mycompartment",
 "auth": {
    "iam": {
       "configFile": "~/myapp/.oci/config",
       "profileName": "Jane"
    }
  }
}

Codice applicazione:

import { NoSQLClient } from 'oracle-nosqldb';
let client = new NoSQLClient('config.json');

La classe NoSQLClient rappresenta il punto di accesso principale al servizio. Per creare un'istanza di NoSQLClient è necessario fornire le informazioni di configurazione appropriate. Queste informazioni sono rappresentate dalla classe NoSQLConfig che può essere fornita al costruttore di NoSQLClient. In alternativa, è possibile scegliere di memorizzare le informazioni di configurazione in un file di configurazione JSON e utilizzare il costruttore di NoSQLClient che prende il percorso (assoluto o relativo alla directory corrente) di tale file.

Il primo esempio riportato di seguito crea un'istanza di NoSQLClient per Cloud Service utilizzando NoSQLConfig. Inoltre, aggiunge un compartimento predefinito e sostituisce alcuni valori di timeout predefiniti in 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")
    });

Il secondo esempio memorizza la stessa configurazione in un file JSON config.json e la utilizza per creare un'istanza NoSQLClient.

config.json

{
    "Region": "us-ashburn-1",
    "Timeout": 20000,
    "TableDDLTimeout": 40000,
    "compartment": "mycompartment",
    "AuthorizationProvider":
    {
        "AuthorizationType": "IAM",
        "ConfigFile": "~/myapp/.oci/config",
        "ProfileName": "Jane"
    }
}

Codice applicazione:

var client = new NoSQLClient("config.json");

Il primo passo in qualsiasi applicazione Oracle NoSQL Database Cloud Service Rust consiste nel creare un Handle utilizzato per inviare richieste al servizio, in base alla configurazione indicata in una struttura HandleBuilder. Le istanze della maniglia sono sicure per l'uso concorrente e destinate a essere condivise in un'applicazione multi-thread o asincrona. L'esempio di codice riportato di seguito mostra come connettersi al servizio cloud utilizzando un file di configurazione utente.

let handle = Handle::builder()
.cloud_auth_from_file("~/.oci/config")?
.build().await?;

Il percorso predefinito per il file di configurazione è ~/.oci/config, dove ~ sta per home directory dell'utente. In Windows, il valore ~ è una variabile di ambiente USERPROFILE. Il file può contenere più profili. Per impostazione predefinita, l'SDK utilizza il profilo denominato DEFAULT per memorizzare le credenziali

Per utilizzare questi valori predefiniti, creare il file denominato config nella ~/.oci directory con il seguente contenuto:

[DEFAULT]
tenancy=<your-tenancy-id>
user=<your-user-id>
fingerprint=<fingerprint-of-your-public-key>
key_file=<path-to-your-private-key-file>
pass_phrase=<optional-passphrase>
region=<optional-region-identifier>

Tenere presente che è anche possibile specificare l'identificativo dell'area insieme alle credenziali nel file di configurazione OCI. Per impostazione predefinita, il driver cercherà le credenziali e un'area nel file di configurazione OCI nel percorso predefinito e nel profilo predefinito. L'area è obbligatoria solo se non si utilizza HandleBuilder::cloud_region(). pass_phrase è richiesto solo se il file della chiave RSA ne richiede uno.