NoSQL-Handle abrufen

Erfahren Sie, wie Sie mit Oracle NoSQL Database-Treibern auf Tabellen zugreifen. Beginnen Sie mit der Entwicklung Ihrer Anwendung, indem Sie ein NoSQL-Handle erstellen. Mit dem NoSQLHandle können Sie auf die Tabellen zugreifen und alle Vorgänge ausführen.

Um eine vom NoSQL-Handle repräsentierte Verbindung zu erstellen, 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 im Java-API-Referenzhandbuch.

Rufen Sie ein NoSQL-Handle mit dem folgenden Code ab:

/* 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. Mit der Methode NoSQLHandle.close können Sie die Ressourcen freigeben, wenn Ihre Anwendung das Handle nicht mehr benötigt.

Um die Netzwerkaktivität zu minimieren und die Overhead der Ressourcenzuweisung und -freigabe zu minimieren, sollten Sie das wiederholte Erstellen und Schließen der Handles vermeiden. Beispiel: Wenn Sie ein Handle für jeden Vorgang erstellen und schließen, führt dies zu einer schlechten Anwendungsperformance. Ein Handle lässt parallele Vorgänge zu, sodass ein einzelner 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, Autorisierungsinformationen sowie Standardwerte für die Handle-Konfiguration zu konfigurieren. borneo.NoSQLHandleConfig stellt eine Verbindung zum Service dar. Nach der Erstellung muss sie mit der Methode borneo.NoSQLHandle.close() geschlossen werden, um Ressourcen zu bereinigen. Griffe sind Thread-sicher und sollen geteilt werden.

Beispiel für den Erwerb eines NoSQL-Handles 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 Erstellung von Handle zu reduzieren, sollten Sie eine übermäßige Erstellung und Schließung von borneo.NoSQLHandle-Instanzen vermeiden.

Der erste Schritt in einer go-Anwendung von Oracle NoSQL Database Cloud Service 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 Goroutinen sicher und sollen in einer Anwendung mit mehreren Goroutinen 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 für 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 NoSQLClient-Klasse 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. Methodendetails 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 Standard-Timeoutwerte 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.

Beispieldatei config.json:

{
"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 für den Service dar. Um eine Instanz von NoSQLClient zu erstellen, müssen Sie die entsprechenden Konfigurationsinformationen angeben. Diese Informationen werden durch die Klasse NoSQLConfig dargestellt, welche Instanz dem 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 von NoSQLClient für den Cloud Service mit NoSQLConfig erstellt. Außerdem wird ein Standard-Compartment hinzugefügt und einige Standardtimeoutwerte in NoSQLConfig außer Kraft gesetzt.

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");

Der erste Schritt in einer Oracle NoSQL Database Cloud Service Rust-Anwendung besteht darin, eine Handle zu erstellen, mit der Anforderungen basierend auf der Konfiguration in einer HandleBuilder-Struktur an den Service gesendet werden. Instanzen des Handle sind für die gleichzeitige Verwendung sicher und sollen in einer Multi-Thread- oder asynchronen Anwendung gemeinsam verwendet werden. Das folgende Codebeispiel zeigt, wie Sie mit einer Benutzerkonfigurationsdatei eine Verbindung zum Cloud-Service herstellen:

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

Der Standardpfad für die Konfigurationsdatei ist ~/.oci/config, wobei ~ für das Home-Verzeichnis des Benutzers steht. Unter Windows ist ~ ein Wert der Umgebungsvariablen USERPROFILE. Die Datei kann mehrere Profile enthalten. Standardmäßig verwendet das SDK das Profil DEFAULT zum Speichern der Zugangsdaten

Um diese Standardwerte zu verwenden, erstellen Sie eine Datei namens config im Verzeichnis ~/.oci mit dem folgenden Inhalt:

[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>

Beachten Sie, dass Sie auch Ihre Regions-ID zusammen mit Zugangsdaten in der OCI-Konfigurationsdatei angeben können. Standardmäßig sucht der Treiber nach Zugangsdaten und einer Region in der OCI-Konfigurationsdatei im Standardpfad und im Standardprofil. Die Region ist nur erforderlich, wenn HandleBuilder::cloud_region() nicht verwendet wird. Die pass_phrase ist nur erforderlich, wenn eine RSA-Schlüsseldatei erforderlich ist.