Obtención de un identificador NoSQL

Descubra cómo acceder a las tablas mediante Oracle NoSQL Database Drivers. Inicie el desarrollo de la aplicación creando un identificador NoSQL. Utilice NoSQLHandle para acceder a las tablas y ejecutar todas las operaciones.

Para crear una conexión representada por NoSQLHandle, obtenga un identificador con el método NoSQLHandleFactory.createNoSQLHandle y la clase NoSQLHandleConfig. La clase NoSQLHandleConfig permite que una aplicación especifique la configuración del identificador. Consulte la Guía de referencia de API de Java para obtener más información.

Utilice el siguiente código para obtener un identificador 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

Un identificador tiene recursos de red y memoria asociados con él. Utilice el método NoSQLHandle.close para liberar los recursos cuando la aplicación termine con el identificador.

Para minimizar la actividad de red, y el exceso en la asignación y desasignación de recursos, es recomendable evitar la creación y el cierre repetidos de identificadores. Por ejemplo, crear y cerrar un identificador en cada operación produciría un bajo rendimiento de la aplicación. Un identificador permite operaciones simultáneas, por lo que un único identificador es suficiente para acceder a las tablas de una aplicación multithread. La creación de varios identificadores provoca un exceso de recursos adicionales y no supone ningún beneficio para el rendimiento.

Para crear un manejador, primero debe crear una instancia borneo.NoSQLHandleConfig para configurar el punto final de comunicación, la información de autorización, así como los valores por defecto para la configuración del manejador. borneo.NoSQLHandleConfig representa una conexión al servicio. Una vez creado, se debe cerrar con el método borneo.NoSQLHandle.close() para limpiar los recursos. Los manejadores son seguros para threads y están destinados a ser compartidos.

Ejemplo de adquisición de un identificador NoSQL para 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)

Note:

Para reducir el uso de recursos y la sobrecarga de la creación de manejadores, es mejor evitar la creación y el cierre excesivos de instancias borneo.NoSQLHandle.
El primer paso de cualquier aplicación go de Oracle NoSQL Database Cloud Service es crear un manejador nosqldb.Client que se utilice para enviar solicitudes al servicio. Las instancias del identificador de cliente son seguras para el uso simultáneo de varios goroutines y están destinadas a ser compartidas en una aplicación de varios goroutines. El identificador se configura con sus credenciales y otra información de autenticación.
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 clase NoSQLClient representa el punto de acceso principal al servicio. Para crear una instancia de NoSQLClient, debe proporcionar la información de configuración adecuada. Esta información está representada por un objeto Config y se puede proporcionar al constructor de la clase NoSQLClient. También puede almacenar esta información en un archivo de configuración JSON y en el constructor de NoSQLClient con la ruta (absoluta o relativa al directorio actual de la aplicación) a ese archivo. Para obtener detalles sobre el método, consulte la clase NoSQLClient.

El primer ejemplo siguiente crea una instancia de NoSQLClient para Cloud Service mediante el objeto Config. También agrega un compartimento por defecto y sustituye los valores de timeout por defecto en el objeto de configuración.
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'
        }
    }
});

El segundo ejemplo almacena la misma configuración en un archivo JSON config.json y la utiliza para crear una instancia NoSQLClient.

Archivo config.json de ejemplo:
{ 
"region": "US_ASHBURN_1",
 "timeout": 20000,
 "ddlTimeout": 40000,
 "compartment": "mycompartment", 
 "auth": { 
    "iam": { 
       "configFile": "~/myapp/.oci/config",
       "profileName": "Jane"
    } 
  }
}
Código de aplicación:
import { NoSQLClient } from 'oracle-nosqldb';
let client = new NoSQLClient('config.json');

La clase NoSQLClient representa el punto de acceso principal al servicio. Para crear una instancia de NoSQLClient, debe proporcionar la información de configuración adecuada. Esta información está representada por la clase NoSQLConfig, que se puede proporcionar al constructor de NoSQLClient. También puede almacenar la información de configuración en un archivo de configuración JSON y utilizar el constructor de NoSQLClient que toma la ruta (absoluta o relativa al directorio actual) a ese archivo.

El primer ejemplo siguiente crea una instancia de NoSQLClient para Cloud Service con NoSQLConfig. También agrega un compartimento por defecto y sustituye algunos valores de timeout por defecto en 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")
    });

El segundo ejemplo almacena la misma configuración en un archivo JSON config.json y la utiliza para crear una instancia NoSQLClient.

config.json
{
    "Region": "us-ashburn-1",
    "Timeout": 20000,
    "TableDDLTimeout": 40000,
    "compartment": "mycompartment",
    "AuthorizationProvider":
    {
        "AuthorizationType": "IAM",
        "ConfigFile": "~/myapp/.oci/config",
        "ProfileName": "Jane"
    }
}
Código de aplicación:
var client = new NoSQLClient("config.json");