NoSQL-Handle abrufen

Erfahren Sie, wie Sie mit Oracle NoSQL Database-Treibern auf Tabellen zugreifen. Erstellen Sie ein NoSQL-Handle, um Ihre Anwendung zu entwickeln. Mit dem NoSQLHandle können Sie auf die Tabellen zugreifen und alle Vorgänge ausführen.

Um eine Verbindung zu erstellen, die von einem NoSQLHandle repräsentiert wird, rufen Sie mit der Methode NoSQLHandleFactory.createNoSQLHandle und der Klasse NoSQLHandleConfig ein Handle ab. Mit der Klasse NoSQLHandleConfig kann eine Anwendung die Handle-Konfiguration angeben. Weitere Informationen finden Sie in der Java-API-Referenzdokumentation.

Abrufen eines NoSQL-Handles mit dem folgenden Code:
/* 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

Mit einem Handle sind Speicher- und Netzwerkressourcen verknüpft. Verwenden Sie die Methode NoSQLHandle.close, um die Ressourcen freizugeben, wenn Sie die Anwendung nicht mehr benötigen.

Um die Netzwerkaktivität zu minimieren und den Overhead von Ressourcenzuweisung und -freigabe zu minimieren, sollten Sie das wiederholte Erstellen und Schließen von Handles vermeiden. Beispiel: Das Erstellen und Schließen eines Handles für jeden Vorgang führt zu einer schlechten Anwendungsperformance. Ein Handle lässt parallele Vorgänge zu, sodass ein einziges Handle für den Zugriff auf Tabellen in einer Multi-Threaded-Anwendung ausreicht. Das Erstellen mehrerer Handles bewirkt zusätzlichen Ressourcen-Overhead, und es werden damit keinerlei Performancevorteile erzielt.

Ein Handle wird erstellt, indem zuerst eine borneo.NoSQLHandleConfig-Instanz erstellt wird, um den Kommunikationsendpunkt, die Autorisierungsinformationen sowie Standardwerte für die Handle-Konfiguration zu konfigurieren. borneo.NoSQLHandleConfig stellt eine Verbindung zum Service dar. Nach der Erstellung muss er mit der Methode borneo.NoSQLHandle.close() geschlossen werden, um Ressourcen zu bereinigen. Griffe sind Thread-sicher und zur gemeinsamen Nutzung vorgesehen.

Ein Beispiel für den Erwerb eines NoSQL Handle für 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)

Hinweis:

Um die Ressourcennutzung und den Overhead bei der Handle-Erstellung zu reduzieren, sollten Sie eine übermäßige Erstellung und das Schließen von borneo.NoSQLHandle-Instanzen vermeiden.
Der erste Schritt in jeder Oracle NoSQL Database Cloud Service-Anwendung go besteht darin, ein nosqldb.Client-Handle zu erstellen, mit dem Anforderungen an den Service gesendet werden. Instanzen des Client-Handles sind für die gleichzeitige Verwendung durch mehrere Goroutines sicher und sollen in einer Multi-Goroutines-Anwendung gemeinsam verwendet werden. Das Handle wird mit Ihren Zugangsdaten und anderen Authentifizierungsinformationen konfiguriert.
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

Die Klasse NoSQLClient stellt den Hauptzugriffspunkt auf den Service dar. Um eine Instanz von NoSQLClient zu erstellen, müssen Sie die entsprechenden Konfigurationsinformationen angeben. Diese Informationen werden durch ein Config-Objekt dargestellt und können dem Konstruktor der Klasse NoSQLClient bereitgestellt werden. Alternativ können Sie diese Informationen in einer JSON-Konfigurationsdatei und dem Konstruktor von NoSQLClient mit dem Pfad (absolut oder relativ zum aktuellen Verzeichnis der Anwendung) zu dieser Datei speichern. Details zur Methode finden Sie in der Klasse NoSQLClient.

Im ersten Beispiel unten wird eine Instanz von NoSQLClient für Cloud Service mit dem Objekt Config erstellt. Außerdem wird ein Standard-Compartment hinzugefügt und die Standardtimeoutwerte im Konfigurationsobjekt überschrieben.
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'
        }
    }
});

Im zweiten Beispiel wird dieselbe Konfiguration in einer JSON-Datei config.JSON gespeichert und zum Erstellen einer NoSQLClient-Instanz verwendet.

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

Klasse NoSQLClient stellt den Hauptzugriffspunkt zum Service dar. Um eine Instanz von NoSQLClient zu erstellen, müssen Sie entsprechende Konfigurationsinformationen angeben. Diese Informationen werden durch die Klasse NoSQLConfig dargestellt, die Instanz für den Konstruktor von NoSQLClient bereitgestellt werden kann. Alternativ können Sie die Konfigurationsinformationen in einer JSON-Konfigurationsdatei speichern und den Konstruktor von NoSQLClient verwenden, der den Pfad (absolut oder relativ zum aktuellen Verzeichnis) zu dieser Datei übernimmt.

Im ersten Beispiel unten wird die Instanz NoSQLClient für Cloud Service mit NoSQLConfig erstellt. Außerdem wird ein Standard-Compartment hinzugefügt und einige Standardtimeoutwerte in NoSQLConfig überschrieben.
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")
    });

Im zweiten Beispiel wird dieselbe Konfiguration in einer JSON-Datei config.JSON gespeichert und zum Erstellen einer NoSQLClient-Instanz verwendet.

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