Obtention d'un descripteur NoSQL

Découvrez comment accéder aux tables à l'aide des pilotes Oracle NoSQL Database. Commencez à développer votre application en créant un descripteur NoSQL. Utilisez NoSQLHandle pour accéder aux tables et exécuter toutes les opérations.

Pour créer une connexion représentée par NoSQLHandle, obtenez un descripteur à l'aide de la méthode NoSQLHandleFactory.createNoSQLHandle et de la classe NoSQLHandleConfig. La classe NoSQLHandleConfig permet à une application de définir la configuration de descripteur. Pour plus d'informations, reportez-vous au Guide de référence de l'API Java.

Utilisez le code suivant pour obtenir un descripteur 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 descripteur est associé à des ressources réseau et de mémoire. Utilisez la méthode NoSQLHandle.close pour libérer les ressources lorsque vous avez terminé d'utiliser le descripteur.

Pour réduire l'activité réseau ainsi que l'allocation de ressources et les temps système d'annulation d'allocation, il est préférable d'éviter la création et la fermeture répétées des descripteurs. Par exemple, la création et la fermeture d'un descripteur autour de chaque opération entraîneraient une dégradation des performances de l'application. Un gestionnaire permet d'effectuer des opérations simultanées. Ainsi, un seul gestionnaire est suffisant pour accéder aux tables dans une application multithread. La création de plusieurs descripteurs induit des temps système supplémentaires liés aux ressources sans offrir aucun avantage en la matière.

Un descripteur est créé en créant d'abord une instance borneo.NoSQLHandleConfig pour configurer l'adresse de communication, les informations d'autorisation, ainsi que les valeurs par défaut pour la configuration de descripteur. borneo.NoSQLHandleConfig représente une connexion au service. Une fois créée, elle doit être fermée à l'aide de la méthode borneo.NoSQLHandle.close() afin de nettoyer les ressources. Les poignées sont sécurisées pour les fils et destinées à être partagées.

Exemple d'acquisition d'un descripteur NoSQL pour 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)

Remarques :

Pour réduire l'utilisation des ressources et la surcharge liée à la création de descripteur, il est préférable d'éviter la création et la fermeture excessives d'instances borneo.NoSQLHandle.
La première étape de toute application Oracle NoSQL Database Cloud Service go consiste à créer un descripteur nosqldb.Client utilisé pour envoyer des demandes au service. Les instances du descripteur client sont sécurisées pour une utilisation simultanée par plusieurs goroutines et destinées à être partagées dans une application multi-goroutines. Le descripteur est configuré à l'aide de vos informations d'identification et d'autres informations d'authentification.
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 représente le point d'accès principal au service. Pour créer une instance de NoSQLClient, vous devez fournir les informations de configuration appropriées. Ces informations sont représentées par un objet Config et peuvent être fournies au constructeur de la classe NoSQLClient. Vous pouvez également choisir de stocker ces informations dans un fichier de configuration JSON et le constructeur de NoSQLClient avec le chemin (absolu ou relatif au répertoire en cours de l'application) vers ce fichier. Pour plus d'informations sur les méthodes, reportez-vous à la classe NoSQLClient.

Le premier exemple ci-dessous crée une instance de NoSQLClient pour Cloud Service à l'aide de l'objet Config. Il ajoute également un compartiment par défaut et remplace les valeurs de délai d'expiration par défaut dans l'objet de configuration.
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'
        }
    }
});

Le deuxième exemple stocke la même configuration dans un fichier JSON config.json et l'utilise pour créer une instance NoSQLClient.

Exemple de fichier config.json :
{ 
"region": "US_ASHBURN_1",
 "timeout": 20000,
 "ddlTimeout": 40000,
 "compartment": "mycompartment", 
 "auth": { 
    "iam": { 
       "configFile": "~/myapp/.oci/config",
       "profileName": "Jane"
    } 
  }
}
Code d'application :
import { NoSQLClient } from 'oracle-nosqldb';
let client = new NoSQLClient('config.json');

La classe NoSQLClient représente le point d'accès principal au service. Pour créer une instance de NoSQLClient, vous devez fournir les informations de configuration appropriées. Ces informations sont représentées par la classe NoSQLConfig, instance qui peut être fournie au constructeur de NoSQLClient. Vous pouvez également choisir de stocker les informations de configuration dans un fichier de configuration JSON et d'utiliser le constructeur de NoSQLClient qui prend le chemin (absolu ou relatif au répertoire en cours) vers ce fichier.

Le premier exemple ci-dessous crée une instance de NoSQLClient pour Cloud Service à l'aide de NoSQLConfig. Elle ajoute également un compartiment par défaut et remplace certaines valeurs de délai d'expiration par défaut dans 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")
    });

Le deuxième exemple stocke la même configuration dans un fichier JSON config.json et l'utilise pour créer une instance NoSQLClient.

config.json
{
    "Region": "us-ashburn-1",
    "Timeout": 20000,
    "TableDDLTimeout": 40000,
    "compartment": "mycompartment",
    "AuthorizationProvider":
    {
        "AuthorizationType": "IAM",
        "ConfigFile": "~/myapp/.oci/config",
        "ProfileName": "Jane"
    }
}
Code d'application :
var client = new NoSQLClient("config.json");