Oracle NoSQL Database Analytics-Integrator ausführen

Schritte zum Ausführen des Oracle NoSQL Database Analytics-Integrators.

Konfigurationsdatei für den Integrator erstellen

Bevor Sie Oracle NoSQL Database Analytics Integrator ausführen können, müssen Sie zunächst eine Konfigurationsdatei erstellen. Diese Konfigurationsdatei wird beim Aufrufen des Utilitys verwendet. Die Konfigurationsdatei muss die Einträge im JSON-Format aufweisen, wie in den folgenden Beispielen dargestellt. Im Folgenden finden Sie nur zwei Beispielkonfigurationsdateien. Nicht alle unten verwendeten Parameter sind erforderlich. In der folgenden Tabelle werden alle im Beispiel verwendeten Parameter erläutert und hervorgehoben, ob sie optional oder erforderlich sind.

Beispiel 1: Sie führen das Utility von einer Oracle Cloud Compute-Instanz aus und möchten sich mit einem Instanz-Principal authentifizieren.
{
    "nosqlstore": {
        "type" : "nosqldb_cloud",
        "endpoint" : "us-ashburn-1",
        "useInstancePrincipal" : true,
        "compartment" : <ocid.of.compartment.containing.nosql.tables>,
        "table" : <tableName1,tableName2,tableName3>,
        "readUnitsPercent" : "90,90,90",
        "requestTimeoutMs" : "5000"
    },
    "objectstore" : {
        "type" : "object_storage_oci",
        "endpoint" : "us-ashburn-1",
        "useInstancePrincipal" : true,
        "compartment" : <ocid.of.compartment.containing.bucket>,
        "bucket" : <bucket-name-objectstorage>,
        "compression" : "snappy"
    },
    "database": {
        "type" : "database_cloud",
        "endpoint" : "us-ashburn-1",
        "credentials" : "/home/opc/.oci/config",
        "credentialsProfile" : <profile-for-adw-auth>,
        "databaseName" : <database-name>,
        "databaseUser" : "ADMIN",
        "databaseWallet"” : <path-where-wallet-unzipped>

    }
}
Beispiel 2: Sie möchten sich lieber mit Ihren eigenen Benutzerzugangsdaten authentifizieren, oder Sie werden außerhalb von Oracle Cloud ausgeführt. Daher ist die Instanz-Principal-Authentifizierung nicht verfügbar.
{
    "nosqlstore": {
        "type" : "nosqldb_cloud",
        "endpoint" : "us-ashburn-1",
        "credentials" : "/home/opc/.oci/config",
        "credentialsProfile" : <nosqldb-user-credentials>,
        "table" : <tableName1,tableName2,tableName3>,
        "readUnitsPercent" : "90,90,90",
        "requestTimeoutMs" : "5000"
    },
    "objectstore" : {
        "type" : "object_storage_oci",
        "endpoint" : "us-ashburn-1",
        "credentials" : "/home/opc/.oci/config",
        "credentialsProfile" : <objectstorage-user-credentials>,
        "bucket" : <bucket-name-objectstorage>,
        "compression" : "snappy"
    },
    "database": {
        "type" : "database_cloud",
        "endpoint" : "us-ashburn-1",
        "credentials" : "/home/opc/.oci/config",
        "credentialsProfile" : <adw-user-credentials>,
        "databaseName" : <database-name>,
        "databaseUser" : "ADMIN",
        "databaseWallet" : <path-where-wallet-unzipped>
    } 
   "abortOnError" : false
}

Die Konfiguration ist in drei Abschnitte unterteilt: nosqlstore, objectstore und database, deren Einträge zur Angabe der Interaktion des Utilitys mit den einzelnen Cloud-Services verwendet werden: NoSQL Cloud Service, Oracle ObjectStorage und Oracle Autonomous Data Warehouse.

Es gibt einige Parameter, die in allen drei Abschnitten üblich sind.

Tabelle - Allgemeine Parameter für alle Abschnitte

Parametername Details des Parameters
type Derzeit kann dieser Parameter einen der drei Werte annehmen: nosqldb_cloud (für den nosqlstore-Abschnitt), object_storage_oci (für den Objectstore-Abschnitt) und database_cloud (für den Datenbankabschnitt).
endpoint Der Wert dieses Eintrags muss auf die Region gesetzt werden, in der sich die zugehörige Ressource befindet. Der für diesen Eintrag angegebene Wert kann entweder der API-Endpunkt der Region oder die Regions-ID für die Ressource sein. Beispiel: Wenn sich jede Ressource in der Region "US East (Ashburn)" befindet, kann der Endpunkteintrag in jedem Abschnitt entweder mit der Regions-ID ("us-ashburn-1") oder dem API-Endpunkt der Region für den gewünschten Service angegeben werden.

Tabelle - Parameter in der Konfigurationsdatei

Parametername Angegebener Abschnitt Details zum Bereich
useInstancePrincipal

nosqlstore (optional)

Objektspeicher (optional)

Der Eintrag useInstancePrincipal kann als boolescher Wert "true" angegeben werden, wenn die folgenden Bedingungen erfüllt sind:
  • Das Utility wird von einer Oracle Cloud Compute-Instanz ausgeführt.
  • Der konfigurierte Abschnitt ist nicht der Datenbankabschnitt
  • Die Compute-Instanz ist als Instanz-Principal autorisiert, Aktionen für die Ressource auszuführen, die im konfigurierten Abschnitt referenziert wird
  • Der Zugangsdateneintrag ist nicht angegeben
Wenn für den Eintrag useInstancePrincipal "true" angegeben ist und der Zugangsdateneintrag ebenfalls angegeben ist, hat der Zugangsdateneintrag Vorrang, und die in dem Wert dieses Eintrags referenzierten Benutzerzugangsdaten werden für die Interaktion mit der verknüpften Ressource verwendet.

Hinweis:

Benutzerzugangsdaten müssen im Datenbankabschnitt angegeben werden, weil Autonomous Database, das in ADW gehostet wird, dies erfordert.
Compartment

nosqlstore (optional)

Objektspeicher (optional)

  • Wenn für den Eintrag useInstancePrincipal "true" angegeben ist, muss auch die OCID des Compartments angegeben werden, das diese Ressource enthält.
  • Wenn entweder "false" für den Eintrag useInstancePrincipal angegeben oder der Zugangsdateneintrag angegeben ist, ist der Compartment-Eintrag optional. Er muss jedoch in der Datei angegeben werden, die vom Zugangsdateneintrag referenziert wird.
credentials

nosqlstore (optional)

Objektspeicher (optional)

Datenbank (erforderlich)

Der Zugangsdateneintrag ist unter allen Umständen im Datenbankabschnitt erforderlich. Sie ist in den Abschnitten "nosqlstore" und "objectstore" in mindestens einem der folgenden Umstände erforderlich:
  • Entweder wird das Utility außerhalb von Oracle Cloud ausgeführt, oder es wird von einer Oracle Cloud Compute-Instanz ausgeführt, die kein Instanz-Principal ist
  • Der Eintrag useInstancePrincipal ist nicht angegeben oder auf "false" gesetzt.

Der für diesen Eintrag angegebene Wert muss eine Datei im lokalen Dateisystem referenzieren, die Benutzerzugangsdaten angibt, mit denen eine sichere Interaktion mit der verknüpften Ressource möglich ist.

credentialsProfile

nosqlstore (optional)

Objektspeicher (optional)

Datenbank (optional)

Der Eintrag credentialsProfile ist in jedem Abschnitt optional. Selbst wenn er angegeben ist, gilt er nur, wenn auch ein entsprechender Zugangsdateneintrag angegeben ist.

Tabelle nosqlstore(Erforderlich)

Der Tabelleneintrag ist erforderlich und muss im nosqlstore-Abschnitt angegeben werden. Der Wert dieses Eintrags ist eine Zeichenfolge, die aus einer durch Komma getrennten Liste von Namen besteht. Dabei referenziert jeder Name den Namen einer Tabelle im NoSQL Database Cloud-Service, deren Inhalt abgerufen und in Autonomous Data Warehouse kopiert werden soll.

readUnitsPercent nosqlstore (optional)

Der Eintrag readUnitsPercent ist optional und gilt nur im nosqlstore-Abschnitt. Der Wert dieses Eintrags ist eine Zeichenfolge, die aus einer kommagetrennten Liste von Ganzzahlen besteht; zwischen 1 und 100, was den Prozentsatz der Leseeinheiten darstellt, die beim Abrufen von Daten aus der entsprechenden Tabelle konsumiert werden können.

Mit diesem Eintrag können Sie für jede der Tabellen, auf die im Tabelleneintrag verwiesen wird, unterschiedliche Prozentsätze für Leseeinheiten angeben. Dabei entspricht der erste Prozentsatz in der Liste der ersten Tabelle, der zweite Prozentsatz der zweiten Tabelle usw. Die Anzahl der Prozentsätze in dieser Liste muss nicht mit der Anzahl der Tabellen in der Tabellenliste übereinstimmen. Ein Standardwert von 90 Prozent wird jeder Tabelle in der Tabellenliste zugewiesen, die keinen entsprechenden Prozentsatz in dieser Liste aufweist.

Beispiel: Angenommen, vier Tabellennamen werden im Tabelleneintrag angegeben, der Eintrag readUnitsPercent wird jedoch auf den Wert "50,80" gesetzt. In diesem Fall werden Daten aus der ersten Tabelle mit 50 Prozent der verfügbaren Leseeinheiten abgerufen, während 80 Prozent der Leseeinheiten beim Abrufen von Daten aus der zweiten Tabelle verwendet werden. Und schließlich werden für die beiden verbleibenden Tabellen 90 Prozent der Leseeinheiten (Standard) beim Abrufen der Daten aus jeder dieser Tabellen verwendet.

requestTimeoutMs nosqlstore (optional)

Der Eintrag requestTimeoutMs ist optional und gilt nur im nosqlstore-Abschnitt. Der Wert dieses Eintrags ist eine Zeichenfolge, die aus einer durch Komma getrennten Liste positiver Ganzzahlen besteht. Dabei steht jede Ganzzahl für die Anzahl der Millisekunden, die für jede Datenabrufanforderung für die entsprechende Tabelle zulässig ist.

Mit diesem Eintrag können Sie verschiedene Timeoutwerte für jede der Tabellen angeben, die im Tabelleneintrag referenziert werden. Wenn dieser Eintrag nicht angegeben ist oder wenn dieser Eintrag einen Timeout für nur eine Teilmenge der Tabellen angibt, wird den verbleibenden Tabellen der Standardwert 5000 zugewiesen.

bucket Objektspeicher (erforderlich) Der Bucket-Eintrag ist erforderlich und muss im Objektspeicherabschnitt angegeben werden. Der Wert dieses Eintrags ist eine Zeichenfolge, die den Namen des OCI Object Storage-Buckets darstellt, in den das Utility die aus den NoSQL-Tabellen abgerufenen Daten kopiert.
Komprimierung Objektspeicher (optional)
Der Komprimierungseintrag ist optional und gilt nur im Objektspeicherbereich. Der für diesen Eintrag angegebene Wert ist eine Zeichenfolge, die angibt, wie die Daten aus den Tabellen abgerufen werden, die im nosqlstore angegeben sind. Wenn dies festgelegt ist, werden die Tabellendaten beim Kopieren in den Objektspeicher komprimiert. Der für diesen Eintrag angegebene Wert muss einer der folgenden sein:
  • snappy - für Snappy-Komprimierung
  • gzip - für GZIP-Komprimierung
  • none - Komprimieren Sie die in ObjectStorage kopierten Tabellendaten nicht.

Hinweis:

Wenn der Komprimierungseintrag nicht angegeben ist, wird die Snappy-Komprimierung ausgeführt.
databaseName Datenbank (erforderlich) Der Eintrag dabaseName ist erforderlich und muss im Datenbankabschnitt angegeben werden. Dieser Eintrag ist eine Zeichenfolge, deren Wert dem Namen der Datenbank entspricht, die in Oracle Autonomous Data Warehouse Cloud Service erstellt wurde.
databaseUser Datenbank (optional)

Der Eintrag databaseUser ist optional und muss im Datenbankabschnitt angegeben werden. Dieser Eintrag ist eine Zeichenfolge, deren Wert dem Namen des Benutzeraccounts in Autonomous Database entspricht, der im Eintrag dabaseName angegeben wird. Wenn dieser Eintrag nicht angegeben wird, werden Sie in der Befehlszeile aufgefordert, den Wert anzugeben.

databaseWallet Datenbank (erforderlich) Der Eintrag databaseWallet ist erforderlich und muss im Datenbankabschnitt angegeben werden. Dieser Eintrag ist eine Zeichenfolge, deren Wert der Dateisystempfad zu dem Verzeichnis ist, das den Inhalt des aus dem Autonomous Database-Benutzeraccount heruntergeladenen Oracle Wallet enthält, der im Eintrag databaseUser in der Konfigurationsdatei angegeben ist.
abortOnError Optional Gibt die Aktion an, die ausgeführt werden soll, wenn ein Fehler auftritt. Der Standardwert ist True.

Hinweis:

Jeder Eintrag in der Konfigurationsdatei kann in der Befehlszeile überschrieben werden, indem eine Systemeigenschaft mit dem Namen der Form, section.entry, gesetzt wird. Beispiel: -Dnosqlstore.table=tableName1,tableName3. Wenn sich ein Eintrag nicht in einem Abschnitt befindet, ist der Name, der für eine solche Eigenschaft verwendet werden soll, einfach der Name des Eintrags selbst. Beispiel: -DabortOnError=false. Diese Funktion kann nützlich sein, wenn Sie Skripte testen oder schreiben, die das Dienstprogramm in regelmäßigen Abständen ausführen.

Konfigurationsinformationen werden in der Zugangsdatendatei angegeben:

Oracle Cloud Infrastructure erfordert grundlegende Konfigurationsinformationen, wie Benutzerzugangsdaten, Mandanten-OCID usw., die in der Konfigurationsdatei angegeben werden können. Der Standardspeicherort für diese Konfigurationsdatei ist ~/.oci. Sie können mehrere Gruppen von Benutzerzugangsdaten in dieser Konfigurationsdatei angeben.

Eine Beispielanmeldedatei ist unten dargestellt.
[DEFAULT]
user=<ocid.of.default.user>
fingerprint=<fingerprint.of.default.user>
key_file=<path.to.default.user.oci.api.private.key.file.pem>
tenancy=<ocid.of.default.user.tenancy>
region=us-ashburn-1
compartment=<ocid.of.default.compartment>

[nosqldb-user-credentials]
user=<ocid.of.nosqldb.user>
fingerprint=<fingerprint.of.nosqldb.user>
key_file=<path.to.nosqldb.user.oci.api.private.key.file.pem>
tenancy=<ocid.of.nosqldb.user.tenancy>
region=us-ashburn-1
compartment=<ocid.of.nosqldb.compartment>

[objectstorage-user-credentials]
user=<ocid.of.objectstorage.user>
fingerprint=<fingerprint.of.objectstorage.user>
key_file=<path.to.objectstorage.user.oci.api.private.key.file.pem>
tenancy=<ocid.of.objectstorage.user.tenancy>
region=us-ashburn-1
compartment=<ocid.of.objectstorage.compartment>

[adw-user-credentials]
user=<ocid.of.adw.user>
fingerprint=<fingerprint.of.adw.user>
key_file=<path.to.adw.user.oci.api.private.key.file.pem>
tenancy=<ocid.of.adw.user.tenancy>
region=us-ashburn-1
compartment=<ocid.of.adw.compartment>
dbmsOcid=<ocid.of.autonomous.database.in.adw>
dbmsCredentialName=<OCI$RESOURCE_PRINCIPAL or NOSQLADWDB_OBJ_STORE_CREDENTIAL>

Hinweis:

In der obigen Konfigurationsdatei gibt es drei separate Einträge für nosql-db-user, objectstorage-user und adw-user. Dies ist nicht obligatorisch, und eine Konfigurationsdatei kann nur mit einem DEFAULT-Profil vorhanden sein. Es empfiehlt sich jedoch, separate Profile zu verwenden, anstatt alle Parameter im DEFAULT-Profil zu kombinieren.

Tabelle - Parameter in Zugangsdatendatei

Parametername Details des Parameters
user Die OCID des Benutzers
Fingerprint Eine kurze Abfolge von Byte, mit der ein längerer Public Key für den Standardbenutzer identifiziert wird
Schlüsseldatei Der Pfad/Dateiname der Datei, die den Private Key für den Standardbenutzer enthält
Mandant Die OCID des Mandanten
Regionen Der Endpunkt der Region
Compartment Compartment-Name oder OCID des Compartments des Standardbenutzers
dbmsOcid OCID von Autonomous Database
dbmsCredentialName

Dies ist der Name der Zugangsdaten, mit denen sich die ADW-Datenbank bei Object Storage authentifiziert. Dies ist entweder der Name OCI$RESOURCE_PRINCIPAL (wenn Sie die Resource Principal-Authentifizierung verwenden) oder der Name der AUTH_TOKEN-Zugangsdaten, die erstellt werden, wenn die Prozedur DBMS_CLOUD.CREATE_CREDENTIAL vom Benutzer oder vom Systemadministrator ausgeführt wird (Beispiel: NOSQLADWDB_OBJ_STORE_CREDENTIAL ).

Tool ausführen

Nachdem alle Anforderungen für die Verwendung der erforderlichen Oracle Cloud-Services (NoSQL Database, Object Storage und Autonomous Data Warehouse) abgeschlossen und eine gültige Konfigurationsdatei erstellt wurde, kann Oracle NoSQL Database Analytics Integrator durch einfaches Eingeben eines Befehls in die Befehlszeile ausgeführt werden.
  • Navigieren Sie zum Verzeichnis nosqlanalytics unter dem Installationsverzeichnis (/home/opc/nosqlanalytics-<version>).
    cd /home/opc/nosqlanalytics-1.0.1/nosqlanalytics
  • Rufen Sie das Utility mit dem folgenden Befehl auf. Die Konfigurationsdatei oci-nosqlanalytics-config.json ist im Verzeichnis .oci im Home-Verzeichnis vorhanden.
    java -Djava.util.logging.config.file=./src/main/resources/logging/java-util-logging.properties
    -Dlog4j.configurationFile=file:./src/main/resources/logging/log4j2-analytics.properties
    -jar ./lib/nosqlanalytics-1.0.1.jar
    -config ~/.oci/oci-nosqlanalytics-config.json

Hinweis:

Die Systemeigenschaften, mit denen die während der Ausführung verwendeten Logger konfiguriert werden, sind optional. Wenn diese Systemeigenschaften nicht angegeben sind, erzeugt das Dienstprogramm keine Protokollausgabe.

Logging

Oracle NoSQL Database Analytics Integrator führt Software aus mehreren Librarys von Drittanbietern aus, in denen jede Library ihre eigenen Logger mit unterschiedlichen Namespaces definiert. Der Einfachheit halber stellt Oracle NoSQL Database Analytics Integrator zwei Loggingkonfigurationsdateien als Teil des Release bereit: einen zur Konfiguration von Loggingmechanismen basierend auf java.util.logging und einen für Logger basierend auf Log4j2.

Hinweis:

Standardmäßig sind die Logger-Konfigurationsdateien, die mit dem Utility bereitgestellt werden, so konzipiert, dass sie bei der Ausführung des Utilitys eine minimale Ausgabe erzeugen. Wenn Sie jedoch eine ausführliche Ausgabe der verschiedenen Komponenten anzeigen möchten, die vom Utility verwendet werden, sollten Sie die Logging-Ebenen der spezifischen Logger erhöhen, deren Verhalten Sie analysieren möchten.