Come ottenere un handle NoSQL

Scopri come accedere alle tabelle utilizzando i driver 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, vedere 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 quando l'applicazione viene completata utilizzando l'handle.

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

Un handle viene creato prima creando un'istanza borneo.NoSQLHandleConfig per configurare l'endpoint di comunicazione, le informazioni di autorizzazione e i valori predefiniti per la configurazione della gestione. 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 un handle 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 della gestione, è preferibile evitare la creazione e la chiusura eccessive di istanze borneo.NoSQLHandle.
Il primo passo in qualsiasi applicazione go di Oracle NoSQL Database Cloud Service consiste nel creare un handle nosqldb.Client utilizzato per inviare le richieste al servizio. Le istanze dell'handle Client sono sicure per l'uso simultaneo di più goroutine e destinate a essere condivise in un'applicazione multi-goroutine. 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, si può scegliere di memorizzare queste informazioni in un file di configurazione JSON e il costruttore di NoSQLClient con il percorso (assoluto o relativo alla directory corrente dell'applicazione) a quel file. Per ulteriori informazioni sul metodo, vedere la classe NoSQLClient.

Il primo esempio riportato di seguito crea un'istanza di NoSQLClient per Cloud Service utilizzando l'oggetto Config. Aggiunge inoltre 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 l'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) in quel file.

Il primo esempio riportato di seguito crea l'istanza di NoSQLClient per Cloud Service utilizzando NoSQLConfig. Aggiunge inoltre 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 l'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");