Oracle NoSQL Database-Migrator - Referenz
Erfahren Sie mehr über die Vorlagenparameter für die Quell-, Sink- und Transformationskonfiguration, die für den Oracle NoSQL Database Migrator verfügbar sind.
Dieser Artikel enthält die folgenden Themen:
Parameter
Der NoSQL Database Migrator erfordert eine Konfigurationsdatei, in der Sie alle Parameter definieren, um die Migrationsaktivität auszuführen. Einige Parameter sind in mehreren Quellen und Senken üblich. Dieses Thema enthält eine Liste dieser allgemeinen Parameter. Die Liste der anderen Parameter, die für einzelne Quellen oder Senken eindeutig sind, finden Sie in den entsprechenden Abschnitten der Konfigurationsvorlage.
Allgemeine Konfigurationsparameter
Im Folgenden werden die allgemeinen Konfigurationsparameter aufgeführt. Beispiele finden Sie in den einzelnen Abschnitten der Konfigurationsvorlage.
-
Zweck: Gibt den Namen des OCI Object Storage-Buckets an, der die Quell-/Sinkobjekte enthält.
Stellen Sie sicher, dass der erforderliche Bucket bereits in der OCI Object Storage-Instanz vorhanden ist und über Lese-/Schreibberechtigungen verfügt.
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): J
-
Zweck: Gibt die maximale Größe einer
chunkvon Tabellendaten an, die in der Sink gespeichert werden sollen. Der Wert wird in MB angegeben. Während der Migration wird eine Tabelle inchunkSize-Chunks aufgeteilt, und jeder Chunk wird als separate Datei in die Sink geschrieben. Eine neue Datei wird erstellt, wenn die Quelldaten, die migriert werden, den WertchunkSizeüberschreiten.Wenn keine Angabe gemacht wird, wird standardmäßig 32 MB verwendet. Der gültige Wert ist eine Ganzzahl zwischen 1 und 1024.
Einzelheiten zur Verbesserung der Migrationsgeschwindigkeit mit dem Parameter
chunkSizefinden Sie unter Best Practices. -
Datentyp: Ganzzahl
-
Obligatorisch (J/N): N
-
Zweck: Gibt den absoluten Pfad zu einer Datei mit OCI-Zugangsdaten an. Der NoSQL-Datenbankmigrator verwendet diese Datei, um eine Verbindung zum OCI-Service wie Oracle NoSQL Database Cloud Service, OCI Object Storage usw. herzustellen.
Der Standardwert ist
$HOME/.oci/config.Siehe Beispielkonfiguration oder ein Beispiel für die Zugangsdatendatei.
Hinweis: Sie können nur eine der Authentifizierungsoptionen auswählen. Geben Sie daher nur einen dieser Parameter an:
credentials, useDelegationToken, useSessionToken oder useOKEWorkloadIdentity in der Konfigurationsvorlage. -
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): N
-
Zweck: Gibt den Namen des Konfigurationsprofils an, das für die Verbindung mit dem OCI-Service verwendet werden soll, wie Oracle NoSQL Database Cloud Service, OCI Object Storage usw. Zugangsdaten für Benutzeraccounts werden als Profil bezeichnet.
Wenn Sie diesen Wert nicht angeben, verwendet der NoSQL Database Migrator das Profil
DEFAULT.Hinweis: Dieser Parameter ist nur gültig, wenn der Parameter Zugangsdaten angegeben ist.
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): N
-
Zweck: Gibt einen der folgenden Werte an:
-
Die Serviceendpunkt-URL oder die Regions-ID für den OCI Object Storage-Service. Die Liste der OCI Object Storage-Serviceendpunkte finden Sie unter Object Storage-Endpunkte.
-
Die Serviceendpunkt-URL oder die Regions-ID für Oracle NoSQL Database Cloud Service. Sie können entweder die vollständige URL oder die Regions-ID allein angeben. Eine Liste der für Oracle NoSQL Database Cloud Service unterstützten Datenregionen finden Sie unter Datenregionen und zugehörige Service-URLs im Oracle NoSQL Database Cloud Service-Dokument.
-
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): J
-
Zweck: Gibt das Quell-/Sinkformat an.
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): J
-
Zweck: Gibt den Namespace des OCI Object Storage-Service an. Dies ist ein optionaler Parameter. Wenn Sie diesen Parameter nicht angeben, verwendet das Migrator-Utility den Namespace, der dem Mandanten zugewiesen ist.
Beispiel: Der Namespace-Parameter ist hilfreich, wenn Sie ein OCI-BS aus einem Mandanten verwenden möchten, der sich von Ihrem unterscheidet. In solchen Fällen unterscheidet sich der Namespace des OCI-BS-Mandanten vom Namespace Ihres Mandanten. Während der Migration wird der Namespace Ihres Mandanten standardmäßig vom Migrator-Utility vorgegeben, sofern nichts anderes angegeben ist. Damit das Migrator-Utility den Namespace des OCI-BS-Mandanten auswählen kann, müssen Sie den Namen des OCI-BS-Mandanten im Namespace-Parameter angeben.
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): N
-
Zweck: Das Präfix dient als logischer Container oder Verzeichnis zum Speichern von Daten im OCI Object Storage-Bucket.
-
Quellkonfigurationsvorlage: Wenn der Parameter
prefixangegeben ist, werden alle Objekte aus dem im Parameterprefixbenannten Verzeichnis migriert. Sonst werden alle im Bucket vorhandenen Objekte migriert. -
Sink-Konfigurationsvorlage: Wenn der Parameter
prefixangegeben wird, wird im Bucket ein Verzeichnis mit dem angegebenen Präfix erstellt, und die Objekte werden in dieses Verzeichnis migriert. Anderenfalls wird der Tabellenname aus der Quelle als Präfix verwendet. Wenn bereits ein Objekt mit demselben Namen im Bucket vorhanden ist, wird es überschrieben.
Weitere Informationen zu Präfixen finden Sie unter Objektbenennung mit Präfixen und Hierarchien.
-
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): N
-
Zweck: Gibt an, wie lange gewartet wird, bis jeder Lese-/Schreibvorgang vom/zum Speicher abgeschlossen ist. Dieser Wert wird in Millisekunden angegeben. Der Standardwert ist 5000. Der Wert kann eine beliebige positive Ganzzahl sein.
-
Datentyp: Ganzzahl
-
Obligatorisch (J/N): N
-
Zweck: Gibt den absoluten Pfad zur Sicherheitsanmeldedatei an, die Ihre Speicherzugangsdaten enthält, wenn Ihr Speicher ein sicherer Speicher ist. Weitere Informationen zur Sicherheitsanmeldedatei finden Sie unter Sichere Oracle NoSQL Database-Installation ausführen.
Sie können entweder die kennwortdateibasierte Authentifizierung oder die Wallet-basierte Authentifizierung verwenden. Die Wallet-basierte Authentifizierung wird jedoch nur in der Enterprise Edition (EE) von Oracle NoSQL Database unterstützt. Weitere Informationen zur Wallet-basierten Authentifizierung finden Sie unter Quell- und Sinksicherheit.
Die Community Edition (CE)-Edition unterstützt nur die kennwortdateibasierte Authentifizierung.
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): J für eine sichere Filiale
-
Zweck: Gibt den Quell-/Sinktyp an.
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): J
-
Zweck: Gibt an, ob das NoSQL Database Migrator-Tool eine Delegationstokenauthentifizierung verwendet, um eine Verbindung zu den OCI-Services herzustellen. Sie müssen die Delegierungstokenauthentifizierung verwenden, um das Utility "Migrator" in der Cloud Shell auszuführen. Das Delegierungstoken wird automatisch für den Benutzer erstellt, wenn die Cloud Shell aufgerufen wird.
Der Standardwert ist
false.Beachten Sie Folgendes:
-
Die Authentifizierung mit dem Delegationstoken wird nur unterstützt, wenn das NoSQL Database Migrator-Tool von einer Cloud Shell aus ausgeführt wird.
-
Sie können nur eine der Authentifizierungsoptionen auswählen. Geben Sie daher nur einen dieser Parameter an: credentials, useInstancePrincipal,
useDelegationToken, useSessionToken oder useOKEWorkloadIdentity in der Konfigurationsvorlage. -
Die Cloud Shell unterstützt nur die Migration zwischen den folgenden Quellen und Senken:
Typ Gültige Quelle Gültige Senke Oracle NoSQL Database Cloud Service ( nosqldb_cloud)J J Datei (JSON-Datei im Home-Verzeichnis) J J OCI Object Storage (JSON-Datei) ( object_storage_oci)J J OCI Object Storage (Parquet-Datei) ( object_storage_oci)N J
-
-
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
-
Zweck: Gibt an, ob das NoSQL Database Migrator-Tool die Instanz-Principal-Authentifizierung verwendet, um eine Verbindung zum OCI-Service herzustellen, wie Oracle NoSQL Database Cloud Service, OCI Object Storage usw. Weitere Informationen zur Instanz-Principal-Authentifizierungsmethode finden Sie unter Quell- und Sinksicherheit.
Der Standardwert ist
false.Hinweis:
-
Die Authentifizierung mit Instanz-Principals wird nur unterstützt, wenn das NoSQL Database Migrator-Tool innerhalb einer OCI-Compute-Instanz ausgeführt wird. Beispiel: Das NoSQL Database Migrator-Tool, das in einer auf OCI gehosteten VM ausgeführt wird.
-
Sie können nur eine der Authentifizierungsoptionen auswählen. Geben Sie daher nur einen dieser Parameter an: credentials,
useInstancePrincipal, useDelegationToken, useSessionToken oder useOKEWorkloadIdentity in der Konfigurationsvorlage.
-
-
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
-
Zweck: Gibt an, ob das NoSQL Database Migrator-Tool die Workload-Identitätsauthentifizierung (WIA) verwendet, um von einem Oracle Kubernetes Engine-(OKE-)Pod auf OCI Object Storage und Oracle NoSQL Database Cloud Service zuzugreifen.
Der Standardwert ist
false. -
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
Ein Beispielanwendungsfall finden Sie unter Mit OKE-Authentifizierung von OCI Object Storage zu Oracle NoSQL Database Cloud Service migrieren.
Hinweis: Sie können nur eine der Authentifizierungsoptionen auswählen. Geben Sie daher nur einen dieser Parameter an: credentials, useInstancePrincipal, useDelegationToken, useSessionToken oder useOKEWorkloadIdentity in der Konfigurationsvorlage.
-
Zweck: Gibt an, ob das NoSQL Database Migrator-Tool eine Sessiontokenauthentifizierung verwendet, um eine Verbindung zu OCI-Services wie OCI Object Storage (OCI OS) und Oracle NoSQL Database Cloud Service herzustellen. Der Standardwert ist
false. -
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
Um die tokenbasierte Sessionauthentifizierung zu verwenden, müssen Sie ein Sessiontoken mit OCI-Befehlszeilenschnittstelle (CLI) generieren. Ein Beispielanwendungsfall finden Sie unter Mit Sessiontokenauthentifizierung von Oracle NoSQL Database zu OCI Object Storage migrieren.
Hinweis:
-
Bei der Verwendung der Sessiontokenauthentifizierung müssen Sie den Pfad zur OCI-Konfigurationsdatei im Parameter "Zugangsdaten" und das Profil angeben, das beim Generieren des Sessiontokens im Parameter "zugangsdatenProfile" verwendet wird. Wenn Sie den Parameter für Zugangsdaten nicht in der Konfigurationsvorlage festlegen, sucht das Migrator-Utility nach der Zugangsdatendatei im Pfad
$HOME/.oci. Wenn Sie den Parameter "zugangsdatenProfile" nicht in der Konfigurationsvorlage festlegen, verwendet das Migrator-Utility den Standardprofilnamen (DEFAULT) aus der OCI-Konfigurationsdatei.Wenn das Migrator-Utility die Zugangsdatendatei nicht finden kann, verläuft die Migration nicht erfolgreich, und es wird eine Fehlermeldung angezeigt, dass die OCI-Zugangsdatendatei nicht vorhanden ist.
-
Sie können nur eine der Authentifizierungsoptionen auswählen. Geben Sie daher nur einen dieser Parameter an: credentials, useInstancePrincipal, useDelegationToken,
useSessionTokenoder useOKEWorkloadIdentity in der Konfigurationsvorlage.
Quellkonfigurationsvorlagen
Erfahren Sie mehr über die Dateiformate der Quellkonfiguration für jede gültige Quelle und den Zweck der einzelnen Konfigurationsparameter.
Informationen zur Konfigurationsdateivorlage finden Sie unter Konfigurationsdatei in Mit NoSQL-Datenmigrator verwendete Terminologie.
Details zu gültigen Sink-Formaten für jede Quelle finden Sie unter Sink-Konfigurationsvorlagen.
Themen
In den folgenden Themen werden die Quellkonfigurationsvorlagen beschrieben, die von Oracle NoSQL Database Migrator referenziert werden, um die Daten aus der angegebenen Quelle in eine gültige Sink-Datei zu kopieren.
-
Angegebene Datei oder angegebenes Verzeichnis mit den JSON-Daten.
-
JSON-Datei in OCI Object Storage-Bucket
Angegebene JSON-Datei im OCI Object Storage-Bucket.
-
MongoDB-formatierte JSON-Datei
Angegebene Datei oder Verzeichnis mit den MongoDB-formatierten JSON-Daten.
-
MongoDB-formatierte JSON-Datei im OCI Object Storage-Bucket
Angegebene MongoDB exportierte JSON-Datei, die im OCI Object Storage-Bucket gespeichert ist.
-
DynamoDB-formatierte JSON-Datei in AWS S3 gespeichert
Angegebene DynamoDB exportierte JSON-Datei, die im AWS S3-Speicher gespeichert ist.
-
DynamoDB-formatierte JSON-Datei
Angegebene DynamoDB exportierte JSON-Datei aus einem Dateisystem.
-
In Oracle NoSQL Database angegebene Tabelle.
-
Oracle NoSQL Database Cloud Service
Die angegebene Tabelle in Oracle NoSQL Database Cloud Service.
-
Angegebene Datei oder Verzeichnis mit den CSV-Daten.
-
CSV-Datei in OCI Object Storage-Bucket
Angegebene CSV-Datei im OCI Object Storage-Bucket.
JSON-Dateiquelle
Das Konfigurationsdateiformat für die JSON-Datei als Quelle von NoSQL Database Migrator wird unten angezeigt.
Sie können eine JSON-Quelldatei migrieren, indem Sie den Dateipfad oder ein Verzeichnis in der Quellkonfigurationsvorlage angeben.
Eine JSON-Beispieldatei ist wie folgt:
{"id":6,"val_json":{"array":["q","r","s"],"date":"2023-02-04T02:38:
57.520Z","nestarray":[[1,2,3],[10,20,30]],"nested":{"arrayofobjects":[{"datefield":"2023-03-04T02:38:57.520Z","numfield":30,"strfield":"foo54"},{"datefield":"2023-02-04T02:38:57.520Z","numfield":56,"strfield":"bar23"}],"nestNum":10,"nestString":"bar"},"num":1,"string":"foo"}}
{"id":3,"val_json":{"array":["g","h","i"],"date":"2023-02-02T02:38:57.520Z","nestarray":[[1,2,3],[10,20,30]],"nested":{"arrayofobjects":[{"datefield":"2023-02-02T02:38:57.520Z","numfield":28,"strfield":"foo3"},{"datefield":"2023-02-02T02:38:57.520Z","numfield":38,"strfield":"bar"}],"nestNum":10,"nestString":"bar"},"num":1,"string":"foo"}}
Quellkonfigurationsvorlage
"source": {
"type": "file",
"format": "json",
"dataPath": "<path/to/JSON/[file|dir]>",
"schemaInfo": {
"schemaPath": "<path/to/schema/file>"
}
},
Quellparameter
Allgemeine Konfigurationsparameter
Eindeutige Konfigurationsparameter
-
Zweck: Gibt den absoluten Pfad zu einer Datei oder einem Verzeichnis an, die bzw. das die JSON-Daten für die Migration enthält.
Sie müssen sicherstellen, dass diese Daten mit dem NoSQL-Tabellenschema übereinstimmen, das in der Sink definiert ist. Wenn Sie ein Verzeichnis angeben, identifiziert der NoSQL-Datenbankmigrator alle Dateien mit der Erweiterung
.jsonin diesem Verzeichnis für die Migration. Unterverzeichnisse werden nicht unterstützt. -
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): J
-
Beispiel:
-
JSON-Datei angeben
"dataPath" : "/home/user/sample.json" -
Angeben eines Verzeichnisses
"dataPath" : "/home/user"
-
-
Zweck: Gibt das Schema der zu migrierenden Quelldaten an. Dieses Schema wird an die NoSQL-Senke übergeben.
-
Datentyp: Objekt
-
Obligatorisch (J/N): N
-
Zweck: Gibt den absoluten Pfad zur Schemadefinitionsdatei an, die DDL-Anweisungen für die zu migrierende NoSQL-Tabelle enthält.
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): J
-
Beispiel:
"schemaInfo": { "schemaPath": "<path to the schema file>" }
JSON-Datei in OCI Object Storage-Bucket
Das Konfigurationsdateiformat für die JSON-Datei im OCI Object Storage-Bucket als Quelle für NoSQL Database Migrator wird unten angezeigt.
Sie können eine JSON-Datei im OCI Object Storage-Bucket migrieren, indem Sie den Namen des Buckets in der Quellkonfigurationsvorlage angeben.
Eine JSON-Beispieldatei im OCI Object Storage-Bucket lautet wie folgt:
{"id":6,"val_json":{"array":["q","r","s"],"date":"2023-02-04T02:38:57.520Z","nestarray":[[1,2,3],[10,20,30]],"nested":{"arrayofobjects":[{"datefield":"2023-02-04T02:38:57.520Z","numfield":30,"strfield":"foo54"},{"datefield":"2023-02-04T02:38:57.520Z","numfield":56,"strfield":"bar23"}],"nestNum":10,"nestString":"bar"},"num":1,"string":"foo"}}
{"id":3,"val_json":{"array":["g","h","i"],"date":"2023-02-04T02:38:57.520Z","nestarray":[[1,2,3],[10,20,30]],"nested":{"arrayofobjects":[{"datefield":"2023-02-04T02:38:57.520Z","numfield":28,"strfield":"foo3"},{"datefield":"2023-02-04T02:38:57.520Z","numfield":38,"strfield":"bar"}],"nestNum":10,"nestString":"bar"},"num":1,"string":"foo"}}
Hinweis: Die gültigen Senktypen für den OCI Object Storage-Quelltyp sind nosqldb und nosqldb_cloud.
Quellkonfigurationsvorlage
"source" : {
"type" : "object_storage_oci",
"format" : "json",
"endpoint" : "<OCI Object Storage service endpoint URL or region ID>",
"namespace" : "<OCI Object Storage namespace>",
"bucket" : "<bucket name>",
"prefix" : "<object prefix>",
"schemaInfo" : {
"schemaObject" : "<object name>"
},
"credentials" : "</path/to/oci/config/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <true|false>
}
Quellparameter
Allgemeine Konfigurationsparameter
-
Verwenden Sie
"type" : "object_storage_oci" -
Verwenden Sie
"format" : "json" -
Beispiel:
-
Regions-ID:
"endpoint" : "us-ashburn-1" -
URL-Format:
"endpoint" : "https://objectstorage.us-ashburn- 1.oraclecloud.com"
-
-
Beispiel:
"namespace" : "my-namespace" -
Beispiel:
"bucket" : "my-bucket" -
Beispiel:
-
"prefix" : "my_table/Data/000000.json"(migriert nur000000.json) -
"prefix" : "my_table/Data"(migriert alle Objekte mit Präfixmy_table/Data)
-
-
Beispiel:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Beispiel:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Beispiel:
"useInstancePrincipal" : true -
Beispiel:
"useDelegationToken" : trueHinweis: Die Authentifizierung mit Delegierungstoken wird nur unterstützt, wenn der NoSQL Database Migrator von einer Cloud Shell aus ausgeführt wird.
-
Beispiel:
"useOKEWorkloadIdentity" : true -
Beispiel:
"useSessionToken" : true
Eindeutige Konfigurationsparameter
-
Zweck: Gibt das Schema der zu migrierenden Quelldaten an. Dieses Schema wird an die NoSQL-Senke übergeben.
-
Datentyp: Objekt
-
Obligatorisch (J/N): N
-
Zweck: Gibt den Namen des Objekts im Bucket an, in dem NoSQL-Tabellenschemadefinitionen für die zu migrierenden Daten gespeichert werden.
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): J
-
Beispiel:
"schemaInfo": { "schemaObject": "mytable/Schema/schema.ddl" },
MongoDB-formatierte JSON-Datei
Das Konfigurationsdateiformat für die MongoDB-formatierte JSON-Datei als Quelle von NoSQL Database Migrator wird unten angezeigt.
Sie können eine von MongoDB exportierte JSON-Daten migrieren, indem Sie die Datei oder das Verzeichnis in der Quellkonfigurationsvorlage angeben.
MongoDB unterstützt zwei Typen von Erweiterungen im JSON-Format von Dateien, Canonical-Modus und Relaxed-Modus. Sie können die MongoDB-formatierte JSON-Datei angeben, die mit dem Tool mongoexport im Canonical- oder Relaxed-Modus generiert wird. Beide Modi werden vom NoSQL Database Migrator für die Migration unterstützt.
Weitere Informationen zur MongoDB Extended JSON-(v2-)Datei finden Sie unter mongoexport_formats.
Weitere Informationen zur Generierung einer MongoDB-formatierten JSON-Datei finden Sie unter mongoexport.
Eine JSON-Beispieldatei im Relaxed-Modus im MongoDB-Format lautet wie folgt:
{"_id":0,"name":"Aimee Zank","scores":[{"score":
1.463179736705023,"type":"exam"},{"score":11.78273309957772,"type":"quiz"},{"score":35.8740349954354,"type":"homework"}]}
{"_id":1,"name":"Aurelia Menendez","scores":[{"score":60.06045071030959,"type":"exam"},{"score":52.79790691903873,"type":"quiz"},{"score":71.76133439165544,"type":"homework"}]}
{"_id":2,"name":"Corliss Zuk","scores":[{"score":67.03077096065002,"type":"exam"},{"score":6.301851677835235,"type":"quiz"},{"score":66.28344683278382,"type":"homework"}]}
{"_id":3,"name":"Bao Ziglar","scores":[{"score":71.64343899778332,"type":"exam"},{"score":24.80221293650313,"type":"quiz"},{"score":42.26147058804812,"type":"homework"}]}
{"_id":4,"name":"Zachary Langlais","scores":[{"score":78.68385091304332,"type":"exam"},{"score":90.2963101368042,"type":"quiz"},{"score":34.41620148042529,"type":"homework"}]}
Quellkonfigurationsvorlage
"source": {
"type": "file",
"format": "mongodb_json",
"dataPath": "</path/to/json/[file|dir]>",
"schemaInfo": {
"schemaPath": "</path/to/schema/file>"
}
}
Quellparameter
Allgemeine Konfigurationsparameter
Eindeutige Konfigurationsparameter
-
Zweck: Gibt den absoluten Pfad zu einer Datei oder einem Verzeichnis an, die bzw. das die für die Migration exportierten JSON-Daten der MongoDB enthält.
Sie können die MongoDB-formatierte JSON-Datei angeben, die mit dem mongoexport-Tool generiert wird.
Wenn Sie ein Verzeichnis angeben, identifiziert der NoSQL-Datenbankmigrator alle Dateien mit der Erweiterung
.jsonin diesem Verzeichnis für die Migration. Unterverzeichnisse werden nicht unterstützt. Sie müssen sicherstellen, dass diese Daten mit dem NoSQL-Tabellenschema übereinstimmen, das in der Sink definiert ist. -
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): J
-
Beispiel:
-
MongoDB-formatierte JSON-Datei angeben
"dataPath" : "/home/user/sample.json" -
Angeben eines Verzeichnisses
"dataPath" : "/home/user"
-
-
Zweck: Gibt das Schema der zu migrierenden Quelldaten an. Dieses Schema wird an die gültige Sink übergeben.
-
Datentyp: Objekt
-
Obligatorisch (J/N): N
-
Zweck: Gibt den absoluten Pfad zur Schemadefinitionsdatei an, die DDL-Anweisungen für die zu migrierende NoSQL-Tabelle enthält.
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): J
-
Beispiel:
"schemaInfo" : { "schemaPath" : "/home/user/mytable/Schema/schema.ddl" }
MongoDB-formatierte JSON-Datei im OCI Object Storage-Bucket
Das Konfigurationsdateiformat für die MongoDB-formatierte JSON-Datei im OCI Object Storage-Bucket als Quelle für NoSQL Database Migrator wird unten angezeigt.
Sie können die von MongoDB exportierten JSON-Daten im OCI Object Storage-Bucket migrieren, indem Sie den Namen des Buckets in der Quellkonfigurationsvorlage angeben.
Extrahieren Sie die Daten mit dem mongoexport-Utility aus MongoDB, und laden Sie sie in den OCI Object Storage-Bucket hoch. Weitere Informationen finden Sie unter mongoexport. MongoDB unterstützt zwei Typen von Erweiterungen im JSON-Format von Dateien, Canonical-Modus und Relaxed-Modus. Beide Formate werden im OCI Object Storage-Bucket unterstützt.
Eine JSON-Beispieldatei im Relaxed-Modus im MongoDB-Format lautet wie folgt:
{"_id":0,"name":"Aimee Zank","scores":[{"score":1.463179736705023,"type":"exam"},{"score":11.78273309957772,"type":"quiz"},{"score":35.8740349954354,"type":"homework"}]}
{"_id":1,"name":"Aurelia Menendez","scores":[{"score":60.06045071030959,"type":"exam"},{"score":52.79790691903873,"type":"quiz"},{"score":71.76133439165544,"type":"homework"}]}
{"_id":2,"name":"Corliss Zuk","scores":[{"score":67.03077096065002,"type":"exam"},{"score":6.301851677835235,"type":"quiz"},{"score":66.28344683278382,"type":"homework"}]}
{"_id":3,"name":"Bao Ziglar","scores":[{"score":71.64343899778332,"type":"exam"},{"score":24.80221293650313,"type":"quiz"},{"score":42.26147058804812,"type":"homework"}]}
{"_id":4,"name":"Zachary Langlais","scores":[{"score":78.68385091304332,"type":"exam"},{"score":90.2963101368042,"type":"quiz"},{"score":34.41620148042529,"type":"homework"}]}
Hinweis: Die gültigen Senktypen für den OCI Object Storage-Quelltyp sind nosqldb und nosqldb_cloud.
Quellkonfigurationsvorlage
"source" : {
"type" : "object_storage_oci",
"format" : "mongodb_json",
"endpoint" : "<OCI Object Storage service endpoint URL or region ID>",
"namespace" : "<OCI Object Storage namespace>",
"bucket" : "<bucket name>",
"prefix" : "<object prefix>",
"schemaInfo" : {
"schemaObject" : "<object name>"
},
"credentials" : "</path/to/oci/config/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <true|false>
}
Quellparameter
Allgemeine Konfigurationsparameter
-
Verwenden Sie
"type" : "object_storage_oci" -
Verwenden Sie
"format" : "mongodb_json" -
Beispiel:
-
Regions-ID:
"endpoint" : "us-ashburn-1" -
URL-Format:
"endpoint" : "https://objectstorage.us-ashburn- 1.oraclecloud.com"
-
-
Beispiel:
"namespace" : "my-namespace" -
Beispiel:
"bucket" : "my-bucket" -
Beispiel:
-
"prefix" : "mongo_export/Data/table.json"(migriert nurtable.json) -
"prefix" : "mongo_export/Data"(migriert alle Objekte mit Präfixmongo_export/Data)
Hinweis: Wenn Sie keinen Wert angeben, werden alle im Bucket vorhandenen Objekte migriert.
-
-
Beispiel:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
Beispiel:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Beispiel:
"useInstancePrincipal" : true -
Beispiel:
"useDelegationToken" : trueHinweis: Die Authentifizierung mit Delegierungstoken wird nur unterstützt, wenn der NoSQL Database Migrator von einer Cloud Shell aus ausgeführt wird.
-
Beispiel:
"useOKEWorkloadIdentity" : true -
Beispiel:
"useSessionToken" : true
Eindeutige Konfigurationsparameter
-
Zweck: Gibt das Schema der zu migrierenden Quelldaten an. Dieses Schema wird an die NoSQL-Senke übergeben.
-
Datentyp: Objekt
-
Obligatorisch (J/N): N
-
Zweck: Gibt den Namen des Objekts im Bucket an, in dem NoSQL-Tabellenschemadefinitionen für die zu migrierenden Daten gespeichert werden.
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): J
-
Beispiel:
"schemaInfo": { "schemaObject": "mytable/Schema/schema.ddl" }
DynamoDB-formatierte JSON-Datei in AWS S3 gespeichert
Das Konfigurationsdateiformat für die DynamoDB-formatierte JSON-Datei in AWS S3 als Quelle von NoSQL Database Migrator wird unten angezeigt.
Sie können eine Datei mit den exportierten JSON-Daten von DynamoDB aus dem AWS S3-Speicher migrieren, indem Sie den Pfad in der Quellkonfigurationsvorlage angeben.
Eine JSON-Beispieldatei im DynamoDB-Format lautet wie folgt:
{"Item":{"Id":{"N":"101"},"Phones":{"L":[{"L":[{"S":"555-222"},{"S":"123-567"}]}]},"PremierCustomer":{"BOOL":false},"Address":{"M":{"Zip":{"N":"570004"},"Street":{"S":"21 main"},"DoorNum":{"N":"201"},"City":{"S":"London"}}},"FirstName":{"S":"Fred"},"FavNumbers":{"NS":["10"]},"LastName":{"S":"Smith"},"FavColors":{"SS":["Red","Green"]},"Age":{"N":"22"},"ttl": {"N": "1734616800"}}}
{"Item":{"Id":{"N":"102"},"Phones":{"L":[{"L":[{"S":"222-222"}]}]},"PremierCustomer":{"BOOL":false},"Address":{"M":{"Zip":{"N":"560014"},"Street":{"S":"32 main"},"DoorNum":{"N":"1024"},"City":{"S":"Wales"}}},"FirstName":{"S":"John"},"FavNumbers":{"NS":["10"]},"LastName":{"S":"White"},"FavColors":{"SS":["Blue"]},"Age":{"N":"48"},"ttl": {"N": "1734616800"}}}
Sie müssen die DynamoDB-Tabelle in den AWS S3-Speicher exportieren, wie unter DynamoDB-Tabellendaten in Amazon S3 exportieren angegeben.
Die gültigen Senktypen für DynamoDB-formatiertes JSON, die in AWS S3 gespeichert sind, sind nosqldb und nosqldb_cloud.
Quellkonfigurationsvorlage
"source" : {
"type" : "aws_s3",
"format" : "dynamodb_json",
"ttlAttributeName" : "<DynamoDB exported TTL attribute name>",
"s3URL" : "<S3 object url>",
"credentials" : "</path/to/aws/credentials/file>",
"credentialsProfile" : "<profile name in aws credentials file>"
}
Quellparameter
Allgemeine Konfigurationsparameter
-
Verwenden Sie
"type" : "aws_s3" -
Verwenden Sie
"format" : "dynamodb_json"Hinweis: Wenn der Wert des Typparameters
aws_s3lautet, muss das Formatdynamodb_jsonlauten.
Eindeutige Konfigurationsparameter
-
Zweck: Gibt die URL einer exportierten DynamoDB-Tabelle an, die in AWS S3 gespeichert ist. Sie können diese URL über die AWS S3-Konsole abrufen. Das gültige URL-Format ist
https://<bucket-name>.<s3_endpoint>/<prefix>. Der NoSQL-Datenbankmigrator sucht beim Import nachjson.gz-Dateien im Präfix.Hinweis: Sie müssen die DynamoDB-Tabelle exportieren, wie unter DynamoDB-Tabellendaten in Amazon S3 exportieren angegeben.
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): J
-
Beispiel:
https://my-bucket.s3.ap-south-1.amazonaws.com/AWSDynamoDB/01649660790057-14f642be
-
Zweck: Gibt den absoluten Pfad zu einer Datei mit den AWS-Zugangsdaten an. Wenn keine Angabe gemacht wird, wird standardmäßig
$HOME/.aws/credentialsverwendet. Weitere Informationen zur Zugangsdatendatei finden Sie unter Einstellungen für Konfiguration und Zugangsdatendatei. -
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): N
-
Beispiel:
"credentials" : "/home/user/.aws/credentials""credentials" : "/home/user/security/credentialsHinweis: Der NoSQL-Datenbankmigrator protokolliert keine Zugangsdateninformationen. Sie müssen die Zugangsdatendatei ordnungsgemäß vor unbefugtem Zugriff schützen.
- Zweck: Name des Profils in der AWS-Zugangsdatendatei, das für die Verbindung mit AWS S verwendet werden soll
- Zugangsdaten für Benutzeraccounts werden als Profil bezeichnet. Wenn Sie diesen Wert nicht angeben, verwendet NoSQL Database Migrator das Profil
default. Weitere Informationen zur Zugangsdatendatei finden Sie unter Einstellungen für Konfiguration und Zugangsdatendatei.
- Zugangsdaten für Benutzeraccounts werden als Profil bezeichnet. Wenn Sie diesen Wert nicht angeben, verwendet NoSQL Database Migrator das Profil
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): N
-
Beispiel:
"credentialsProfile" : "default""credentialsProfile" : "test"
-
Zweck: Gibt den Namen des TTL-Attributs an, das in den exportierten DynamoDB-Tabellendaten vorhanden ist. Sie nehmen diesen Parameter nur auf, wenn die DynamoDB-Tabellendaten ein TTL-Attribut aufweisen und Sie den TTL-Wert für importierte Daten beim Import in NoSQL Database festlegen möchten.
Hinweis: Um mit den TTL-Metadaten zu importieren, müssen Sie den includeTTL-Konfigurationsparameter in der Sink-Konfigurationsvorlage (
nosqldbundnosqldb_cloud) auf "true" setzen. -
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): N
-
Beispiel:
"ttlAttributeName" : "ttl"
DynamoDB-formatierte JSON-Datei
Das Konfigurationsdateiformat für die JSON-Datei im DynamoDB-Format als Quelle von NoSQL Database Migrator wird unten angezeigt.
Sie können eine Datei oder ein Verzeichnis mit den exportierten JSON-Daten von DynamoDB aus einem Dateisystem migrieren, indem Sie den Pfad in der Quellkonfigurationsvorlage angeben.
Eine JSON-Beispieldatei im DynamoDB-Format lautet wie folgt:
{"Item":{"Id":{"N":"101"},"Phones":{"L":[{"L":[{"S":"555-222"},{"S":"123-567"}]}]},"PremierCustomer":{"BOOL":false},"Address":{"M":{"Zip":{"N":"570004"},"Street":{"S":"21 main"},"DoorNum":{"N":"201"},"City":{"S":"London"}}},"FirstName":{"S":"Fred"},"FavNumbers":{"NS":["10"]},"LastName":{"S":"Smith"},"FavColors":{"SS":["Red","Green"]},"Age":{"N":"22"},"ttl": {"N": "1734616800"}}}
{"Item":{"Id":{"N":"102"},"Phones":{"L":[{"L":[{"S":"222-222"}]}]},"PremierCustomer":{"BOOL":false},"Address":{"M":{"Zip":{"N":"560014"},"Street":{"S":"32 main"},"DoorNum":{"N":"1024"},"City":{"S":"Wales"}}},"FirstName":{"S":"John"},"FavNumbers":{"NS":["10"]},"LastName":{"S":"White"},"FavColors":{"SS":["Blue"]},"Age":{"N":"48"},"ttl": {"N": "1734616800"}}}
Sie müssen die exportierten DynamoDB-Tabellendaten aus dem AWS S3-Speicher in ein lokal gemountetes Dateisystem kopieren.
Die gültigen Senktypen für die DynamoDB-JSON-Datei sind nosqldb und nosqldb_cloud.
Quellkonfigurationsvorlage
"source" : {
"type" : "file",
"format" : "dynamodb_json",
"ttlAttributeName" : <DynamoDB exported TTL attribute name>,
"dataPath" : "<path/to/[file|dir]/containing/exported/DDB/tabledata>"
}
Quellparameter
Allgemeine Konfigurationsparameter
Eindeutiger Konfigurationsparameter
-
Zweck: Gibt den absoluten Pfad zu einer Datei oder einem Verzeichnis an, das die exportierten DynamoDB-Tabellendaten enthält. Sie müssen exportierte DynamoDB-Tabellendaten aus AWS S3 in ein lokal gemountetes Dateisystem kopieren. Sie müssen sicherstellen, dass diese Daten mit dem NoSQL-Tabellenschema übereinstimmen, das in der Sink definiert ist. Wenn Sie ein Verzeichnis angeben, identifiziert der NoSQL-Datenbankmigrator alle Dateien mit der Erweiterung
.json.gzin diesem Verzeichnis und dem Unterverzeichnisdata. -
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): J
-
Beispiel:
-
Angeben einer Datei
"dataPath" : "/home/user/AWSDynamoDB/01639372501551-bb4dd8c3/data/zclclwucjy6v5mkefvckxzhfvq.json.gz" -
Angeben eines Verzeichnisses
"dataPath" : "/home/user/AWSDynamoDB/01639372501551-bb4dd8c3"
-
-
Zweck: Gibt den Namen des TTL-Attributs an, das in den exportierten DynamoDB-Tabellendaten vorhanden ist. Sie nehmen diesen Parameter nur auf, wenn die DynamoDB-Tabellendaten ein TTL-Attribut aufweisen und Sie den TTL-Wert für importierte Daten beim Import in NoSQL Database festlegen möchten.
Hinweis: Um mit den TTL-Metadaten zu importieren, müssen Sie den includeTTL-Konfigurationsparameter in der Sink-Konfigurationsvorlage (
nosqldbundnosqldb_cloud) auf "true" setzen. -
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): N
-
Beispiel:
"ttlAttributeName" : "ttl"
Oracle NoSQL Database
Das Konfigurationsdateiformat für Oracle NoSQL Database als Quelle von NoSQL Database Migrator wird unten angezeigt.
Sie können eine Tabelle aus Oracle NoSQL Database migrieren, indem Sie den Tabellennamen in der Quellkonfigurationsvorlage angeben.
Oracle NoSQL Database-Beispieltabelle:
{"id":20,"firstName":"Jane","lastName":"Smith","otherNames":[{"first":"Jane","last":"teacher"}],"age":25,"income":55000,"address":{"city":"San Jose","number":201,"phones":[{"area":608,"kind":"work","number":6538955},{"area":931,"kind":"home","number":9533341},{"area":931,"kind":"mobile","number":9533382}],"state":"CA","street":"Atlantic Ave","zip":95005},"connections":[40,75,63],"expenses":null}
{"id":10,"firstName":"John","lastName":"Smith","otherNames":[{"first":"Johny","last":"chef"}],"age":22,"income":45000,"address":{"city":"Santa Cruz","number":101,"phones":[{"area":408,"kind":"work","number":4538955},{"area":831,"kind":"home","number":7533341},{"area":831,"kind":"mobile","number":7533382}],"state":"CA","street":"Pacific Ave","zip":95008},"connections":[30,55,43],"expenses":null}
{"id":30,"firstName":"Adam","lastName":"Smith","otherNames":[{"first":"Adam","last":"handyman"}],"age":45,"income":75000,"address":{"city":"Houston","number":301,"phones":[{"area":618,"kind":"work","number":6618955},{"area":951,"kind":"home","number":9613341},{"area":981,"kind":"mobile","number":9613382}],"state":"TX","street":"Indian Ave","zip":95075},"connections":[60,45,73],"expenses":null}
Quellkonfigurationsvorlage
"source" : {
"type": "nosqldb",
"storeName" : "<store name>",
"helperHosts" : ["hostname1:port1","hostname2:port2,..."],
"table" : "<fully qualified table name>",
"queryFilter" : "<query predicate>",
"includeTTL": <true|false>,
"security" : "</path/to/store/security/file>",
"requestTimeoutMs" : 5000
}
Quellparameter
Gemeinsamer Konfigurationsparameter
-
Verwenden Sie
"type" : "nosqldb" -
Beispiel:
"security" : "/home/user/client.credentials"Beispiel für Inhalt der Sicherheitsdatei für die kennwortdateibasierte Authentifizierung:
oracle.kv.password.noPrompt=true oracle.kv.auth.username=admin oracle.kv.auth.pwdfile.file=/home/nosql/login.passwd oracle.kv.transport=ssl oracle.kv.ssl.trustStore=/home/nosql/client.trust oracle.kv.ssl.protocols=TLSv 1.2 oracle.kv.ssl.hostnameVerifier=dnmatch(CN\=NoSQL)Beispiel für den Inhalt der Sicherheitsdatei für die Wallet-basierte Authentifizierung:
oracle.kv.password.noPrompt=true oracle.kv.auth.username=admin oracle.kv.auth.wallet.dir=/home/nosql/login.wallet oracle.kv.transport=ssl oracle.kv.ssl.trustStore=/home/nosql/client.trust oracle.kv.ssl.protocols=TLSv1.2 oracle.kv.ssl.hostnameVerifier=dnmatch(CN\=NoSQL) -
Anforderungszeitüberschreitungen
Beispiel:
"requestTimeoutMs" : 5000
Eindeutige Konfigurationsparameter
-
Zweck: Name des Oracle NoSQL Database-Speichers.
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): J
-
Beispiel:
"storeName" : "kvstore"
-
Zweck: Eine Liste der Host- und Registry-Portpaare im Format
hostname:port. Begrenzen Sie jedes Element in der Liste mit einem Komma. Sie müssen mindestens einen Helper-Host angeben. -
Datentyp: Array von Zeichenfolgen
-
Obligatorisch (J/N): J
-
Beispiel:
"helperHosts" : ["localhost:5000","localhost:6000"]
-
Zweck: Vollqualifizierter Tabellenname, aus dem die Daten migriert werden sollen.
Format:
[namespace_name:]<table_name>Wenn sich die Tabelle im DEFAULT-Namespace befindet, können Sie
namespace_nameweglassen. Die Tabelle muss in der Filiale vorhanden sein. -
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): J
-
Beispiel:
-
Mit dem DEFAULT Namespace
"table" :"mytable" -
Mit einem nicht standardmäßigen Namespace
"table" : "mynamespace:mytable" -
So geben Sie eine untergeordnete Tabelle an:
"table" : "mytable.child"
-
-
Zweck: Gibt an, ob TTL-Metadaten für Tabellenzeilen beim Exportieren von Oracle NoSQL Database-Tabellen einbezogen werden sollen. Bei 'Wahr' werden die TTL-Daten für Zeilen auch in die von der Quelle bereitgestellten Daten aufgenommen. TTL ist im JSON-Objekt
_metadatavorhanden, das mit jeder Zeile verknüpft ist. Die Ablaufzeit für jede Zeile wird als die Anzahl der Millisekunden seit der UNIX-Epoche exportiert (1. Januar 1970).Wenn Sie diesen Parameter nicht angeben, wird standardmäßig
falseverwendet.Nur die Zeilen mit einem positiven Ablaufwert für die TTL werden als Teil der exportierten Zeilen eingeschlossen. Wenn eine Zeile nicht abläuft, d.h. TTL=0, werden die zugehörigen TTL-Metadaten nicht explizit eingeschlossen. Beispiel: Wenn ROW1 um 2021-10-19 00:00:00 abläuft und ROW2 nicht abläuft, sehen die exportierten Daten wie folgt aus:
//ROW1 { "id" : 1, "name" : "abc", "_metadata" : { "expiration" : 1634601600000 } } //ROW2 { "id" : 2, "name" : "xyz" } -
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
-
Beispiel:
"includeTTL" : true
-
Zweck: Gibt das Abfrageprädikat an, mit dem das Migrator-Utility nur die Zeilen exportiert, die mit der angegebenen Bedingung übereinstimmen.
Das Migrator-Utility integriert dieses Prädikat in die WHERE-Klausel der SQL-Abfrage. Diese Abfrage wird auf die Quelltabelle angewendet, um Daten gemäß der angegebenen Bedingung zu filtern. Um die Quelltabelle anzugeben, verwenden Sie den Parameter
tablein der Quellkonfigurationsvorlage.Beispiel: Um nur die Zeilen mit dem
id-Wert 10 zu exportieren, setzen Sie den ParameterqueryFilterauf"id=10". Das Utility Migrator generiert die folgende Abfrage:select $row from <table> $row where id=10In dieser Abfrage verwendet das Migrator-Utility den Tabellenalias
$row, um einzelne Zeilen zu verarbeiten.Beachten Sie Folgendes:
-
Sie können eine bestimmte Spalte nicht mit
queryFilterauswählen. Sie können Transformationen angeben, um die Spalten herauszufiltern. -
Wenn Sie keinen Wert für den Parameter
queryFilterangeben, exportiert das Migrator-Utility alle Zeilen aus der Tabelle mit der folgenden Abfrage:select $row from $row
-
-
Datentyp: JSON-Zeichenfolge
-
Obligatorisch (J/N): N
-
Beispiel:
"queryFilter" : "$row.address.city='Houston'"Weitere Beispiele finden Sie in der Tabelle Beispielprädikate für Abfragen unten.
Unterstützte Ausdrücke
Das Utility Migrator unterstützt die folgenden Ausdrücke im Abfrageprädikat. Ausführliche Syntax und Beispiele finden Sie im SQL Reference Guide.
Field step expressions
Map-filter step expressions
Array-filter step expressions
Array-slice step expressions
Arithmetic operators
Value comparison operators
Sequence comparison operators
Logical operators AND, OR and NOT
IS NULL and IS NOT NULL operators
IN operator
Regular expression
EXISTS operator
IS OF TYPE operator
CONCAT operator
CAST expression
Row functions
Die folgende Tabelle enthält Beispiele für gültige Abfrageprädikate für verschiedene Ausdrücke und resultierende exportierte Daten.
Hinweis:
-
Es wird empfohlen, einfache Anführungszeichen (') anstelle von doppelten Anführungszeichen (") zu verwenden, während ein Zeichenfolgenliteral im Abfrageprädikat angegeben wird. Wenn Sie ein doppeltes Anführungszeichen (") verwenden möchten, müssen Sie ihm entkommen.
Beispiel: Verwenden Sie das Abfrageprädikat
"name='John'", um Zeilen aus der angegebenen Tabelle auszuwählen, wobei der Wert im Feldnamedie Zeichenfolge "John" ist. -
Sie müssen den Tabellenalias
$rowin die Ausdrücke aufnehmen, wenn:-
Zeilenfunktionen wie
modification_time(), expiration_time(), creation_time()usw. verwenden Weitere Informationen finden Sie unter Funktionen für Zeilen. -
Zugriff auf bestimmte Felder innerhalb einer JSON-Spalte.
-
Tabelle - Beispielprädikate für Abfragen
| Abfrage/Prädikat | Exportierte Informationen |
|---|---|
| "ID=10" | Zeilen aus der angegebenen Tabelle mit ID=10. |
| "name='John'" | Zeilen aus der angegebenen Tabelle mit dem Namen = "John". |
| "Alter>30 und Geschlecht='male'" | Zeilen aus der angegebenen Tabelle mit age größer als 30 und gender = "männlich". |
| "$row.address.state = 'CA'" | Zeilen aus der angegebenen Tabelle mit dem Feld state in der JSON-Spalte address = "CA". Hier verwenden Sie einen Feldschrittausdruck im Prädikat, um über ein JSON-Feld auf den erforderlichen Feldwert zuzugreifen. |
| "$row.expenses.keys($value > 1000) = 'food'" | Zeilen aus der angegebenen Tabelle, bei denen die Kategorie expenses = 'Lebensmittel' und der Betrag expenses größer als 1000 ist. Hier verwenden Sie einen Schrittausdruck für Zuordnungsfilter, um entweder die Feldnamen (Schlüssel) oder die Feldwerte der Zuordnungs-/Datensatzfelder auszuwählen. |
| "$row.expenses.keys($value > $.clothes) = 'food'" | Zeilen aus der angegebenen Tabelle, bei denen die Kategorie expenses = 'Lebensmittel' und der Betrag expenses größer als die Ausgaben für clothes ist. |
| "[$row.address.phones[$element.area = 650].kind] = 'work'" | Zeilen aus der angegebenen Tabelle, wobei die Vorwahl des Telefons im Array = 650 und Typ = "Arbeit" ist. Hier verwenden Sie den Arrayfilterschrittausdruck, da das Feld address ein JSON-Array ist. |
| "[Verbindungen[$element > 100 und $pos < 10]] > 100" | Zeilen aus der angegebenen Tabelle mit maximal 10 Verbindungen und Anzahl der Verbindungen > 100. Hier verwenden Sie einen Arrayfilterschrittausdruck, da das Feld connections ein Array ist. |
| "$row.income ist NULL" | Zeilen aus der angegebenen Tabelle, die kein bekanntes Einkommen haben. Weitere Informationen finden Sie unter Operatoren "IS NULL" und "IS NOT NULL". |
| "a in (1, 5, 4)" | Zeilen aus der angegebenen Tabelle, wobei a 1, 5 oder 4 ist. Weitere Informationen finden Sie unter IN-Operator. |
| "(a, b) in ((1, 'a'), (5, 'g'), (4, 't'))" | Zeilen aus der angegebenen Tabelle mit (a ist 1 und b ist "a") ODER (a ist 5 und b ist "g") ODER (a ist 4 und b ist "t"). |
| "regex_like(name, 'j.*')" | Zeilen aus der angegebenen Tabelle, deren Name mit j beginnt. Weitere Informationen finden Sie unter Reguläre Ausdrücke. |
| "EXISTS $row.person.address.zipcode" | Zeilen aus der angegebenen Tabelle, in der die json-Spalte person zipcode in der Adresse enthält. Weitere Informationen finden Sie unter Operator für Vorhandene. |
| "$row.address hat den Typ (Zeichenfolge)" | Zeilen aus der angegebenen Tabelle, bei denen die Spalte address vom Typ "Zeichenfolge" ist. Weitere Informationen finden Sie unter Is-Of-Type-Operator. |
| "lastLogin > CAST('2022-10-01' AS TIMESTAMP)" | Zeilen aus der angegebenen Tabelle mit letzter Anmeldung nach dem 1. Oktober 2022. Weitere Informationen finden Sie unter Cast-Ausdrücke. |
| "$row.connections[ ]=any 1" | Zeilen aus der angegebenen Tabelle, deren connections-Arrayspalte Element 1 enthält. Weitere Informationen finden Sie unter Sequenzvergleichsoperatoren. |
| "modification_time($row) >= 01.10.2022" | Zeilen aus der angegebenen Tabelle, die am oder nach dem 1. Oktober 2022 geändert werden. Weitere Informationen finden Sie unter Funktionen für Zeilen. |
| "expiration_time_millis($row) > 0" | Zeilen aus der angegebenen Tabelle, die nicht abgelaufen sind. Weitere Informationen finden Sie unter Funktionen für Zeilen. |
Oracle NoSQL Database Cloud Service
Das Konfigurationsdateiformat für Oracle NoSQL Database Cloud Service als Quelle von NoSQL Database Migrator wird unten angezeigt.
Sie können eine Tabelle aus Oracle NoSQL Database Cloud Service migrieren, indem Sie den Namen oder die OCID des Compartments angeben, in dem sich die Tabelle in der Quellkonfigurationsvorlage befindet.
Eine Oracle NoSQL Database Cloud Service-Beispieltabelle lautet wie folgt:
{"id":20,"firstName":"Jane","lastName":"Smith","otherNames":[{"first":"Jane","last":"teacher"}],"age":25,"income":55000,"address":{"city":"San Jose","number":201,"phones":[{"area":608,"kind":"work","number":6538955},{"area":931,"kind":"home","number":9533341},{"area":931,"kind":"mobile","number":9533382}],"state":"CA","street":"Atlantic Ave","zip":95005},"connections":[40,75,63],"expenses":null}
{"id":10,"firstName":"John","lastName":"Smith","otherNames":[{"first":"Johny","last":"chef"}],"age":22,"income":45000,"address":{"city":"Santa Cruz","number":101,"phones":[{"area":408,"kind":"work","number":4538955},{"area":831,"kind":"home","number":7533341},{"area":831,"kind":"mobile","number":7533382}],"state":"CA","street":"Pacific Ave","zip":95008},"connections":[30,55,43],"expenses":null}
{"id":30,"firstName":"Adam","lastName":"Smith","otherNames":[{"first":"Adam","last":"handyman"}],"age":45,"income":75000,"address":{"city":"Houston","number":301,"phones":[{"area":618,"kind":"work","number":6618955},{"area":951,"kind":"home","number":9613341},{"area":981,"kind":"mobile","number":9613382}],"state":"TX","street":"Indian Ave","zip":95075},"connections":[60,45,73],"expenses":null}
Quellkonfigurationsvorlage
"source" : {
"type" : "nosqldb_cloud",
"endpoint" : "<Oracle NoSQL Cloud Service endpoint URL or region ID>",
"table" : "<table name>",
"queryFilter" : "<query predicate>",
"compartment" : "<OCI compartment name or id>",
"credentials" : "<path/to/oci/credential/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <true|false>,
"readUnitsPercent" : <table readunits percent>,
"includeTTL": <true|false>,
"requestTimeoutMs" : <timeout in milli seconds>
}
Quellparameter
Allgemeine Konfigurationsparameter
-
Verwenden Sie
"type" : "nosqldb_cloud" -
Beispiel:
-
Regions-ID:
"endpoint" : "us-ashburn-1" -
URL-Format:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Beispiel:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Beispiel:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Beispiel:
"useInstancePrincipal" : true -
Beispiel:
"useDelegationToken" : trueHinweis: Die Authentifizierung mit Delegierungstoken wird nur unterstützt, wenn der NoSQL Database Migrator von einer Cloud Shell aus ausgeführt wird.
-
Beispiel:
"useOKEWorkloadIdentity" : true -
Beispiel:
"useSessionToken" : true -
Anforderungszeitüberschreitungen
Beispiel:
"requestTimeoutMs" : 5000
Eindeutige Konfigurationsparameter
-
Zweck: Name der Tabelle, aus der die Daten migriert werden sollen.
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): J
-
Beispiel:
-
So geben Sie eine Tabelle an:
"table" : "myTable" -
So geben Sie eine untergeordnete Tabelle an:
"table" : "mytable.child"
-
-
Zweck: Gibt den Namen oder die OCID des Compartments an, in dem sich die Tabelle befindet.
Wenn Sie keinen Wert angeben, wird standardmäßig das root-Compartment verwendet.
Die OCID des Compartments finden Sie im Fenster "Compartment Explorer" unter "Governance" in der OCI Cloud-Konsole.
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): J, wenn sich die Tabelle nicht im Root Compartment des Mandanten befindet oder wenn der Parameter "useInstancePrincipal" auf "true" gesetzt ist.
Hinweis: Wenn der Parameter "useInstancePrincipal" auf "true" gesetzt ist, muss das Compartment die Compartment-OCID und nicht den Namen angeben.
-
Beispiel:
-
Compartment-Name
"compartment" : "mycompartment" -
Compartment-Name mit übergeordnetem Compartment angegeben
"compartment" : "parent.childcompartment" -
Es wurde kein Wert angegeben. Wird standardmäßig auf das Root Compartment gesetzt.
"compartment": "" -
Compartment-OCID
"compartment" : "ocid 1.tenancy.oc1...4ksd"
-
-
Zweck: Prozentsatz der Tabellenleseeinheiten, die bei der Migration der NoSQL-Tabelle verwendet werden.
Der Standardwert ist 90. Der gültige Bereich ist eine beliebige Ganzzahl zwischen 1 und 100. Die für die Migration von Daten erforderliche Zeit ist direkt proportional zu diesem Attribut. Es ist besser, den Lesedurchsatz der Tabelle für die Migrationsaktivität zu erhöhen. Sie können den Lesedurchsatz reduzieren, nachdem der Migrationsprozess abgeschlossen ist.
Informationen zu den täglichen Limits für Durchsatzänderungen finden Sie unter Cloud-Limits im Oracle NoSQL Database Cloud Service-Dokument.
Informationen zur Verwendung dieses Attributs zur Verbesserung der Datenmigrationsgeschwindigkeit finden Sie unter Fehlerbehebung beim Oracle NoSQL Database-Migrator
-
Datentyp: Ganzzahl
-
Obligatorisch (J/N): N
-
Beispiel:
"readUnitsPercent" : 90
-
Zweck: Gibt an, ob TTL-Metadaten für Tabellenzeilen beim Exportieren von Oracle NoSQL Database Cloud Service-Tabellen eingeschlossen werden sollen. Bei 'Wahr' werden die TTL-Daten für Zeilen auch in die von der Quelle bereitgestellten Daten aufgenommen. TTL ist im JSON-Objekt
_metadatavorhanden, das mit jeder Zeile verknüpft ist. Die Ablaufzeit für jede Zeile wird als die Anzahl der Millisekunden seit der UNIX-Epoche exportiert (1. Januar 1970).Wenn Sie diesen Parameter nicht angeben, wird standardmäßig
falseverwendet.Nur die Zeilen mit einem positiven Ablaufwert für die TTL werden als Teil der exportierten Zeilen eingeschlossen. Wenn eine Zeile nicht abläuft, d.h. TTL=0, werden die zugehörigen TTL-Metadaten nicht explizit eingeschlossen. Beispiel: Wenn ROW1 um 2021-10-19 00:00:00 abläuft und ROW2 nicht abläuft, sehen die exportierten Daten wie folgt aus:
//ROW1 { "id" : 1, "name" : "abc", "_metadata" : { "expiration" : 1634601600000 } } //ROW2 { "id" : 2, "name" : "xyz" } -
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
-
Beispiel:
"includeTTL" : true
-
Zweck: Gibt das Abfrageprädikat an, mit dem das Migrator-Utility nur die Zeilen exportiert, die mit der angegebenen Bedingung übereinstimmen.
Das Migrator-Utility integriert dieses Prädikat in die WHERE-Klausel der SQL-Abfrage. Diese Abfrage wird auf die Quelltabelle angewendet, um Daten gemäß der angegebenen Bedingung zu filtern. Um die Quelltabelle anzugeben, verwenden Sie den Parameter
tablein der Quellkonfigurationsvorlage.Beispiel: Um nur die Zeilen mit dem
id-Wert 10 zu exportieren, setzen Sie den ParameterqueryFilterauf"id=10". Das Utility Migrator generiert die folgende Abfrage:select $row from <table> $row where id=10In der obigen Abfrage verwendet das Migrator-Utility den Tabellenalias
$row, um einzelne Zeilen zu verarbeiten.Beachten Sie Folgendes:
-
Mit
queryFilterkönnen Sie keine bestimmte Spalte auswählen. Sie können Transformationen angeben, um die Spalten herauszufiltern. -
Wenn Sie keinen Wert für den Parameter
queryFilterangeben, exportiert das Migrator-Utility alle Zeilen aus der Tabelle mit der folgenden Abfrage:select $row from $row`
-
-
Datentyp: JSON-Zeichenfolge
-
Obligatorisch (J/N): N
-
Beispiel:
"queryFilter" : "$row.address.city='Houston'"Weitere Beispiele finden Sie in der Tabelle Beispielprädikate für Abfragen unten.
Unterstützte Ausdrücke
Das Utility Migrator unterstützt die folgenden Ausdrücke im Abfrageprädikat. Ausführliche Syntax und Beispiele finden Sie im SQL Reference Guide.
Field step expressions
Map-filter step expressions
Array-filter step expressions
Array-slice step expressions
Arithmetic operators
Value comparison operators
Sequence comparison operators
Logical operators AND, OR and NOT
IS NULL and IS NOT NULL operators
IN operator
Regular expression
EXISTS operator
IS OF TYPE operator
CONCAT operator
CAST expression
Row functions
Die folgende Tabelle enthält Beispiele für gültige Abfrageprädikate für verschiedene Ausdrücke und resultierende exportierte Daten.
Hinweis:
-
Es wird empfohlen, einfache Anführungszeichen (') anstelle von doppelten Anführungszeichen (") zu verwenden, während ein Zeichenfolgenliteral im Abfrageprädikat angegeben wird. Wenn Sie ein doppeltes Anführungszeichen (") verwenden möchten, müssen Sie ihm entkommen.
Beispiel: Verwenden Sie das Abfrageprädikat
"name='John'", um Zeilen aus der angegebenen Tabelle auszuwählen, wobei der Wert im Feldnamedie Zeichenfolge "John" ist. -
Sie müssen den Tabellenalias
$rowin die Ausdrücke aufnehmen, wenn:- Zeilenfunktionen wie
modification_time(), expiration_time(), creation_time()usw. verwenden Weitere Informationen finden Sie unter Funktionen für Zeilen. - Zugriff auf bestimmte Felder innerhalb einer JSON-Spalte.
- Zeilenfunktionen wie
Tabelle - Beispielprädikate für Abfragen
| Abfrage/Prädikat | Exportierte Informationen |
|---|---|
| "ID=10" | Zeilen aus der angegebenen Tabelle mit der ID = 10. |
| "name='John'" | Zeilen aus der angegebenen Tabelle mit dem Namen = "John". |
| "Alter>30 und Geschlecht='male'" | Zeilen aus der angegebenen Tabelle mit age größer als 30 und gender = "männlich". |
| "$row.address.state = 'CA'" | Zeilen aus der angegebenen Tabelle mit dem Feld state in der JSON-Spalte address = "CA". Hier verwenden Sie einen Feldschrittausdruck im Prädikat, um über ein JSON-Feld auf den erforderlichen Feldwert zuzugreifen. |
| "$row.expenses.keys($value > 1000) = 'food'" | Zeilen aus der angegebenen Tabelle, bei denen die Kategorie expenses = 'Lebensmittel' und der Betrag expenses größer als 1000 ist. Hier verwenden Sie einen Schrittausdruck für Zuordnungsfilter, um entweder die Feldnamen (Schlüssel) oder die Feldwerte der Zuordnungs-/Datensatzfelder auszuwählen. |
| "$row.expenses.keys($value > $.clothes) = 'food'" | Zeilen aus der angegebenen Tabelle, bei denen die Kategorie expenses = 'Lebensmittel' und der Betrag expenses größer als die Ausgaben für clothes ist. |
| "[$row.address.phones[$element.area = 650].kind] = 'work'" | Zeilen aus der angegebenen Tabelle, wobei die Vorwahl des Telefons im Array = 650 und Typ = "Arbeit" ist. Hier verwenden Sie den Arrayfilterschrittausdruck, da das Feld address ein JSON-Array ist. |
| "[Verbindungen[$element > 100 und $pos < 10]] > 100" | Zeilen aus der angegebenen Tabelle mit maximal 10 Verbindungen und Anzahl der Verbindungen > 100. Hier verwenden Sie einen Arrayfilterschrittausdruck, da das Feld connections ein Array ist. |
| "$row.income ist NULL" | Zeilen aus der angegebenen Tabelle, die kein bekanntes Einkommen haben. Weitere Informationen finden Sie unter Operatoren "IS NULL" und "IS NOT NULL". |
| "a in (1, 5, 4)" | Zeilen aus der angegebenen Tabelle, wobei a 1, 5 oder 4 ist. Weitere Informationen finden Sie unter IN-Operator. |
| "(a, b) in ((1, 'a'), (5, 'g'), (4, 't'))" | Zeilen aus der angegebenen Tabelle mit (a ist 1 und b ist "a") ODER (a ist 5 und b ist "g") ODER (a ist 4 und b ist "t"). |
| "regex_like(name, 'j.*')" | Zeilen aus der angegebenen Tabelle, deren Name mit j beginnt. Weitere Informationen finden Sie unter Reguläre Ausdrücke. |
| "EXISTS $row.person.address.zipcode" | Zeilen aus der angegebenen Tabelle, in der die json-Spalte person zipcode in der Adresse enthält. Weitere Informationen finden Sie unter Operator für Vorhandene. |
| "$row.address hat den Typ (Zeichenfolge)" | Zeilen aus der angegebenen Tabelle, bei denen die Spalte address vom Typ "Zeichenfolge" ist. Weitere Informationen finden Sie unter Is-Of-Type-Operator. |
| "lastLogin > CAST('2022-10-01' AS TIMESTAMP)" | Zeilen aus der angegebenen Tabelle mit letzter Anmeldung nach dem 1. Oktober 2022. Weitere Informationen finden Sie unter Cast-Ausdrücke. |
| "$row.connections[ ]=any 1" | Zeilen aus der angegebenen Tabelle, deren connections-Arrayspalte Element 1 enthält. Weitere Informationen finden Sie unter Sequenzvergleichsoperatoren. |
| "modification_time($row) >= 01.10.2022" | Zeilen aus der angegebenen Tabelle, die am oder nach dem 1. Oktober 2022 geändert werden. Weitere Informationen finden Sie unter Funktionen für Zeilen. |
| "expiration_time_millis($row) > 0" | Zeilen aus der angegebenen Tabelle, die nicht abgelaufen sind. Weitere Informationen finden Sie unter Funktionen für Zeilen. |
CSV-Dateiquelle
Das Konfigurationsdateiformat für die CSV-Datei als Quelle von NoSQL Database Migrator wird unten angezeigt. Die CSV-Datei muss dem Format RFC4180 entsprechen.
Sie können eine CSV-Datei oder ein Verzeichnis mit den CSV-Daten migrieren, indem Sie den Dateinamen oder das Verzeichnis in der Quellkonfigurationsvorlage angeben.
Eine CSV-Beispieldatei ist wie folgt:
1,"Computer Science","San Francisco","2500"
2,"Bio-Technology","Los Angeles","1200"
3,"Journalism","Las Vegas","1500"
4,"Telecommunication","San Francisco","2500"
Quellkonfigurationsvorlage
"source" : {
"type" : "file",
"format" : "csv",
"dataPath": "</path/to/a/csv/[file|dir]>",
"hasHeader" : <true | false>,
"columns" : ["column1", "column2", ....],
"csvOptions": {
"encoding": "<character set encoding>",
"trim": "<true | false>"
}
}
Quellparameter
Allgemeine Konfigurationsparameter
Eindeutige Konfigurationsparameter
-
Zweck: Gibt den absoluten Pfad zu einer Datei oder einem Verzeichnis mit den CSV-Daten für die Migration an. Wenn Sie ein Verzeichnis angeben, importiert NoSQL Database Migrator alle Dateien mit der Erweiterung
.csvoder.CSVin dieses Verzeichnis. Alle CSV-Dateien werden in eine einzelne Tabelle kopiert, jedoch nicht in einer bestimmten Reihenfolge.CSV-Dateien müssen dem Standard
RFC4180entsprechen. Sie müssen sicherstellen, dass die Daten in jeder CSV-Datei mit dem NoSQL Database-Tabellenschema übereinstimmen, das in der Sink-Tabelle definiert ist. Unterverzeichnisse werden nicht unterstützt. -
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): J
-
Beispiel:
-
CSV-Datei angeben
"dataPath" : "/home/user/sample.csv" -
Angeben eines Verzeichnisses
"dataPath" : "/home/user"
-
Hinweis: Die CSV-Dateien dürfen nur skalare Werte enthalten. Das Importieren von CSV-Dateien mit komplexen Typen wie MAP, RECORD, ARRAY und JSON wird nicht unterstützt. Das NoSQL Database Migrator-Tool prüft nicht, ob die Daten in der eingegebenen CSV-Datei korrekt sind. Das NoSQL Database Migrator-Tool unterstützt den Import von CSV-Daten, die dem Format RFC4180 entsprechen. CSV-Dateien, die Daten enthalten, die nicht dem RFC4180-Standard entsprechen, werden möglicherweise nicht korrekt kopiert oder führen zu einem Fehler. Wenn die Eingabedaten beschädigt sind, parst das NoSQL Database Migrator-Tool die CSV-Datensätze nicht. Wenn während der Migration Fehler auftreten, protokolliert das NoSQL Database Migrator-Tool die Informationen zu den nicht erfolgreichen Eingabedatensätzen für Debugging- und Informationszwecke. Weitere Informationen finden Sie unter Migratorfortschritt protokollieren in Oracle NoSQL-Datenmigrator verwenden.
-
Zweck: Gibt an, ob die CSV-Datei einen Header enthält oder nicht. Wenn dieser Wert auf
truegesetzt ist, wird die erste Zeile ignoriert. Wenn er auffalsegesetzt ist, wird die erste Zeile als CSV-Datensatz betrachtet. Der Standardwert istfalse. -
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
-
Beispiel:
"hasHeader" : "false"
-
Zweck: Gibt die Liste der NoSQL Database-Tabellenspaltennamen an. Die Reihenfolge der Spaltennamen gibt die Zuordnung der CSV-Dateifelder zu den entsprechenden NoSQL-Datenbanktabellenspalten an. Wenn die Reihenfolge der Spalten der CSV-Eingabedatei nicht mit den vorhandenen oder neu erstellten Spalten der NoSQL-Datenbanktabelle übereinstimmt, können Sie die Reihenfolge mit diesem Parameter zuordnen. Wenn Sie in eine Tabelle mit einer Identitätsspalte importieren, können Sie den Namen der Identity-Spalte im Parameter
columnsüberspringen.Hinweis:
-
Wenn die NoSQL-Datenbanktabelle zusätzliche Spalten enthält, die in der CSV-Datei nicht verfügbar sind, werden die Werte der fehlenden Spalten mit dem in der NoSQL-Datenbanktabelle definierten Standardwert aktualisiert. Wenn kein Standardwert angegeben wird, wird während der Migration ein Nullwert eingefügt. Weitere Informationen zu Standardwerten finden Sie im Abschnitt Datentypdefinitionen in der SQL-Referenzdokumentation.
-
Wenn die CSV-Datei zusätzliche Spalten enthält, die nicht in der NoSQL-Datenbanktabelle definiert sind, werden die zusätzlichen Spalteninformationen ignoriert.
-
Wenn ein Wert im CSV-Datensatz leer ist, wird er auf den Standardwert der entsprechenden Spalten in der NoSQL-Datenbanktabelle gesetzt. Wenn kein Standardwert angegeben wird, wird während der Migration ein Nullwert eingefügt.
-
-
Datentyp: Array von Zeichenfolgen
-
Obligatorisch (J/N): N
-
Beispiel:
"columns" : ["table_column_1", "table_column_2"]
-
Zweck: Gibt die Formatierungsoptionen für eine CSV-Datei an. Geben Sie das Zeichensatzcodierungsformat der CSV-Datei an, und wählen Sie, ob die Leerzeichen abgeschnitten werden sollen.
-
Datentyp: Objekt
-
Obligatorisch (J/N): N
-
Zweck: Gibt den Zeichensatz für die Decodierung der CSV-Datei an. Der Standardwert ist
UTF-8. Die unterstützten Zeichensätze sindUS-ASCII, ISO-8859-1, UTF-8,undUTF-16. -
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): N
-
Beispiel:
"encoding" : "UTF-8"
-
Zweck: Gibt an, ob die vor- und nachgestellten Leerzeichen eines CSV-Feldwertes abgeschnitten werden müssen. Der Standardwert ist
false. -
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
-
Beispiel:
"trim" : "true"
CSV-Datei in OCI Object Storage-Bucket
Das Konfigurationsdateiformat für die CSV-Datei im OCI Object Storage-Bucket als Quelle von NoSQL Database Migrator wird unten angezeigt. Die CSV-Datei muss dem Format RFC4180 entsprechen.
Sie können eine CSV-Datei im OCI Object Storage-Bucket migrieren, indem Sie den Namen des Buckets in der Quellkonfigurationsvorlage angeben.
Eine CSV-Beispieldatei im OCI Object Storage-Bucket lautet wie folgt:
1,"Computer Science","San Francisco","2500"
2,"Bio-Technology","Los Angeles","1200"
3,"Journalism","Las Vegas","1500"
4,"Telecommunication","San Francisco","2500"
Hinweis: Die gültigen Senktypen für den OCI Object Storage-Quelltyp sind nosqldb und nosqldb_cloud.
Quellkonfigurationsvorlage
"source" : {
"type" : "object_storage_oci",
"format" : "csv",
"endpoint" : "<OCI Object Storage service endpoint URL or region ID>",
"namespace" : "<OCI Object Storage namespace>",
"bucket" : "<bucket name>",
"prefix" : "<object prefix>",
"credentials" : "</path/to/oci/config/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <true|false>,
"hasHeader" : <true | false>,
"columns" : ["column1", "column2", ....],
"csvOptions" : {
"encoding" : "<character set encoding>",
"trim" : <true | false>
}
}
Quellparameter
Allgemeine Konfigurationsparameter
-
Verwenden Sie
"type" : "object_storage_oci" -
Verwenden Sie
"format" : "csv" -
Beispiel für Endpunkt:
-
Regions-ID:
"endpoint" : "us-ashburn-1" -
URL-Format:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Beispiel:
"namespace" : "my-namespace" -
Beispiel:
"bucket" : "my-bucket"Hinweis:
-
Der NoSQL Database Migrator importiert alle Dateien mit der Erweiterung .
csvoder.CSVobjektweise und kopiert sie in eine einzelne Tabelle in derselben Reihenfolge. -
Die CSV-Dateien dürfen nur skalare Werte enthalten. Das Importieren von CSV-Dateien mit komplexen Typen wie MAP, RECORD, ARRAY und JSON wird nicht unterstützt. Das NoSQL Database Migrator-Tool prüft nicht, ob die Daten in der eingegebenen CSV-Datei korrekt sind. Das NoSQL Database Migrator-Tool unterstützt den Import von CSV-Daten, die dem Format
RFC4180entsprechen. CSV-Dateien, die Daten enthalten, die nicht demRFC4180-Standard entsprechen, werden möglicherweise nicht korrekt kopiert oder führen zu einem Fehler. Wenn die Eingabedaten beschädigt sind, parst das NoSQL Database Migrator-Tool die CSV-Datensätze nicht. Wenn während der Migration Fehler auftreten, protokolliert das NoSQL Database Migrator-Tool die Informationen zu den nicht erfolgreichen Eingabedatensätzen für Debugging- und Informationszwecke. Weitere Informationen finden Sie unter Migratorfortschritt protokollieren in Oracle NoSQL-Datenmigrator verwenden.
-
-
Beispiel:
-
"prefix" : "my_table/Data/000000.csv"(migriert nur000000.csv) -
"prefix" : "my_table/Data"(migriert alle Objekte mit Präfixmy_table/Data)
-
-
Beispiel:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Beispiel:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Beispiel:
"useInstancePrincipal" : true -
Beispiel:
"useDelegationToken" : trueHinweis: Die Authentifizierung mit Delegierungstoken wird nur unterstützt, wenn der NoSQL Database Migrator von einer Cloud Shell aus ausgeführt wird.
-
Beispiel:
"useOKEWorkloadIdentity" : true -
Beispiel:
"useSessionToken" : true
Eindeutige Konfigurationsparameter
-
Zweck: Gibt an, ob die CSV-Datei einen Header enthält oder nicht. Wenn dieser Wert auf
truegesetzt ist, wird die erste Zeile ignoriert. Wenn er auffalsegesetzt ist, wird die erste Zeile als CSV-Datensatz betrachtet. Der Standardwert istfalse. -
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
-
Beispiel:
"hasHeader" : "false"
-
Zweck: Gibt die Liste der NoSQL Database-Tabellenspaltennamen an. Die Reihenfolge der Spaltennamen gibt die Zuordnung der CSV-Dateifelder zu den entsprechenden NoSQL-Datenbanktabellenspalten an. Wenn die Reihenfolge der Spalten der CSV-Eingabedatei nicht mit den vorhandenen oder neu erstellten Spalten der NoSQL-Datenbanktabelle übereinstimmt, können Sie die Reihenfolge mit diesem Parameter zuordnen. Wenn Sie in eine Tabelle mit einer Identitätsspalte importieren, können Sie den Namen der Identity-Spalte im Parameter
columnsüberspringen.Hinweis:
-
Wenn die NoSQL-Datenbanktabelle zusätzliche Spalten enthält, die in der CSV-Datei nicht verfügbar sind, werden die Werte der fehlenden Spalten mit dem in der NoSQL-Datenbanktabelle definierten Standardwert aktualisiert. Wenn kein Standardwert angegeben wird, wird während der Migration ein Nullwert eingefügt. Weitere Informationen zu Standardwerten finden Sie im Abschnitt Datentypdefinitionen in der SQL-Referenzdokumentation.
-
Wenn die CSV-Datei zusätzliche Spalten enthält, die nicht in der NoSQL-Datenbanktabelle definiert sind, werden die zusätzlichen Spalteninformationen ignoriert.
-
Wenn ein Wert im CSV-Datensatz leer ist, wird er auf den Standardwert der entsprechenden Spalten in der NoSQL-Datenbanktabelle gesetzt. Wenn kein Standardwert angegeben wird, wird während der Migration ein Nullwert eingefügt.
-
-
Datentyp: Array von Zeichenfolgen
-
Obligatorisch (J/N): N
-
Beispiel:
"columns" : ["table_column_1", "table_column_2"]
-
Zweck: Gibt die Formatierungsoptionen für eine CSV-Datei an. Geben Sie das Zeichensatzcodierungsformat der CSV-Datei an, und wählen Sie, ob die Leerzeichen abgeschnitten werden sollen.
-
Datentyp: Objekt
-
Obligatorisch (J/N): N
-
Zweck: Gibt den Zeichensatz für die Decodierung der CSV-Datei an. Der Standardwert ist
UTF-8. Die unterstützten Zeichensätze sindUS-ASCII, ISO-8859-1, UTF-8,undUTF-16. -
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): N
-
Beispiel:
"encoding" : "UTF-8"
-
Zweck: Gibt an, ob die vor- und nachgestellten Leerzeichen eines CSV-Feldwertes abgeschnitten werden müssen. Der Standardwert ist
false. -
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
-
Beispiel:
"trim" : "true"
Sink-Konfigurationsvorlagen
Erfahren Sie mehr über die Sink-Konfigurationsdateiformate für jede gültige Sink und den Zweck der einzelnen Konfigurationsparameter.
Informationen zur Konfigurationsdateivorlage finden Sie unter Konfigurationsdatei in Mit NoSQL-Datenmigrator verwendete Terminologie.
Details zu gültigen Quellformaten für jede Sinks finden Sie unter Quellkonfigurationsvorlagen.
Themen
In den folgenden Themen werden die Vorlagen für die Sink-Konfiguration beschrieben, die von Oracle NoSQL Database Migrator referenziert werden, um die Daten aus einer gültigen Quelle in die angegebene Sink-Datei zu kopieren.
-
Angegebene JSON-Datei
-
Parquet-Datei im angegebenen Verzeichnis.
-
JSON-Datei in OCI Object Storage-Bucket
JSON-Datei im angegebenen OCI Object Storage-Bucket.
-
Parquet-Datei in OCI Object Storage-Bucket
Parkettdatei im angegebenen OCI Object Storage-Bucket.
-
In Oracle NoSQL Database angegebene Tabelle.
-
Oracle NoSQL Database Cloud Service
Die angegebene Tabelle in Oracle NoSQL Database Cloud Service.
JSON-Datei-Sink
Das Konfigurationsdateiformat für die JSON-Datei als Senke des NoSQL-Datenbankmigrators wird unten angezeigt.
Sink-Konfigurationsvorlage
"sink" : {
"type" : "file",
"format" : "json",
"dataPath": "</path/to/a/directory>",
"schemaPath" : "<path/to/a/file>",
"pretty" : <true|false>,
"useMultiFiles" : <true|false>,
"chunkSize" : <size in MB>
}
Sink-Parameter
Allgemeine Konfigurationsparameter
-
Verwenden Sie
"type" : "file" -
Verwenden Sie
"format" : "json" -
Beispiel:
"chunkSize" : 40Hinweis: Dieser Parameter ist NUR anwendbar, wenn der Parameter "useMultiFiles" auf "true" gesetzt ist.
Eindeutige Konfigurationsparameter
-
Zweck: Gibt den Pfad zu einem Verzeichnis an, in dem NoSQL Database Migrator die Quelldaten im JSON-Format kopiert.
NoSQL Database Migrator erstellt JSON-Dateien im angegebenen Verzeichnis. Wenn die Dateien vorhanden sind, überschreibt NoSQL Database Migrator ihren Inhalt mit den Quelldaten.
Stellen Sie sicher, dass das Verzeichnis bereits vorhanden ist und über Lese- und Schreibberechtigungen verfügt.
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): J
-
Beispiel:
"dataPath" : "/home/user/data"Nach erfolgreicher Migration enthält das im Parameter dataPath angegebene Verzeichnis exportierte Dateien, wie im folgenden Beispiel dargestellt:
|--<Table_name>_1_5.json |--<Table_name>_6_10.json ...
-
Zweck: Gibt den absoluten Pfad zu einer Datei zum Schreiben von Tabellenschemainformationen an, die von der Quelle bereitgestellt werden.
Wenn dieser Wert nicht definiert ist, werden die Quellschemainformationen nicht in die Sink migriert. Wenn dieser Wert angegeben ist, schreibt das Migrator-Utility das Schema der Quelltabelle in die hier angegebene Datei.
Die Schemainformationen werden als ein DDL-Befehl pro Zeile in dieser Datei geschrieben. Wenn die Datei nicht im angegebenen Datenpfad vorhanden ist, erstellt NoSQL Database Migrator sie. Wenn er bereits vorhanden ist, überschreibt NoSQL Database Migrator seinen Inhalt mit den Quelldaten. Sie müssen sicherstellen, dass das übergeordnete Verzeichnis im Datenpfad für die angegebene Datei gültig ist.
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): N
-
Beispiel:
"schemaPath" : "/home/user/schema_file"
-
Zweck: Gibt an, ob die JSON-Ausgabe verschönert werden soll, um die Lesbarkeit zu erhöhen.
Wird keine Angabe gemacht, wird standardmäßig "false" verwendet.
-
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
-
Beispiel:
"pretty" : true
-
Zweck: Gibt an, ob die exportierten Dateien (die unter dem im dataPath-Parameter angegebenen Verzeichnis erstellt wurden) bei der Migration von NoSQL Database-Tabellendaten in ein Verzeichnis weiter in mehrere Unterdateien einer bestimmten Größe aufgeteilt werden sollen. Der Parameter useMultiFiles ist standardmäßig auf "true" gesetzt.
NoSQL Database Migrator teilt die NoSQL Database-Tabellendaten beim Export von Daten in mehrere Dateien auf. Wenn der Parameter "useMultiFiles" auf "true" gesetzt ist, wird jede exportierte Datei weiter in Unterdateien mit der im Parameter "chunkSize" angegebenen Größe aufgeteilt.
Beispiel: Nach erfolgreicher Migration enthält das im Parameter dataPath angegebene Verzeichnis exportierte Dateien, wie im folgenden Beispiel dargestellt:
|--<Table_name>_1_5_0.json |--<Table_name>_1_5_1.json |--<Table_name>_6_10_0.json |--<Table_name>_6_10_1.json |--<Table_name>_6_10_2.json ... -
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
-
Beispiel:
"useMultiFiles" : true
Parquet-Datei
Das Konfigurationsdateiformat für Parquet-Datei als Senke des NoSQL-Datenbankmigrators wird unten angezeigt.
Sink-Konfigurationsvorlage
"sink" : {
"type" : "file",
"format" : "parquet",
"dataPath": "</path/to/a/dir>",
"chunkSize" : <size in MB>,
"compression": "<SNAPPY|GZIP|NONE>",
"parquetOptions": {
"useLogicalJson": <true|false>,
"useLogicalEnum": <true|false>,
"useLogicalUUID": <true|false>,
"truncateDoubleSpecials": <true|false>
}
}
Sink-Parameter
Allgemeine Konfigurationsparameter
-
Verwenden Sie
"type" : "file" -
Verwenden Sie
"format" : "parquet" -
Beispiel:
"chunkSize" : 40
Eindeutige Konfigurationsparameter
-
Zweck: Gibt den Pfad zu einem Verzeichnis zum Speichern der migrierten NoSQL-Tabellendaten an. Stellen Sie sicher, dass das Verzeichnis bereits vorhanden ist und über Lese- und Schreibberechtigungen verfügt.
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): J
-
Beispiel:
"dataPath" : "/home/user/migrator/my_table"
-
Zweck: Gibt den Komprimierungstyp an, mit dem die Parquet-Daten komprimiert werden. Gültige Werte sind SNAPPY, GZIP und NONE.
Wenn keine Angabe gemacht wird, wird standardmäßig SNAPPY verwendet.
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): N
-
Beispiel:
"compression" : "GZIP"
-
Zweck: Gibt die Optionen zur Auswahl logischer Parquet-Typen für NoSQL ENUM-, JSON- und UUID-Spalten an.
Wenn Sie diesen Parameter nicht angeben, schreibt der NoSQL-Datenbankmigrator die Daten der Spalten ENUM, JSON und UUID als Zeichenfolge.
-
Datentyp: Objekt
-
Obligatorisch (J/N): N
-
Zweck: Gibt an, ob NoSQL-JSON-Spaltendaten als logischer JSON-Typ von Parquet geschrieben werden sollen. Weitere Informationen finden Sie unter Parquet Logical Type Definitions.
Wenn diese Option nicht angegeben oder auf "false" gesetzt ist, schreibt NoSQL Database Migrator die NoSQL-JSON-Spaltendaten als Zeichenfolge.
-
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
-
Beispiel:
"useLogicalJson" : true
-
Zweck: Gibt an, ob NoSQL ENUM-Spaltendaten als logischer Parquet-ENUM-Typ geschrieben werden sollen. Weitere Informationen finden Sie unter Parquet Logical Type Definitions.
Wenn kein Wert angegeben oder auf "false" gesetzt ist, schreibt NoSQL Database Migrator die NoSQL ENUM-Spaltendaten als Zeichenfolge.
-
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
-
Beispiel:
"useLogicalEnum" : true
-
Zweck: Gibt an, ob NoSQL-UUID-Spaltendaten als logischer UUID-Typ von Parquet geschrieben werden sollen. Weitere Informationen finden Sie unter Parquet Logical Type Definitions.
Wenn kein Wert angegeben oder auf "false" gesetzt ist, schreibt NoSQL Database Migrator die NoSQL-UUID-Spaltendaten als Zeichenfolge.
-
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
-
Beispiel:
"useLogicalUUID" : true
parquetOptions.truncateDoubleSpecials
-
Zweck: Gibt an, ob die doppelten Werte +Infinity, -Infinity und NaN abgeschnitten werden sollen.
Standardmäßig ist es auf
falsegesetzt. Wenn dieser Wert auftruegesetzt ist,-
Positive_Infinity wird auf Double.MAX_VALUE gekürzt.
-
NEGATIVE_INFINITY wird gekürzt auf -Double.MAX_VALUE.
-
NaN wird auf 9.9999999999999990E307 gekürzt.
-
-
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
-
Beispiel:
"truncateDoubleSpecials" : true
JSON-Datei in OCI Object Storage-Bucket
Das Konfigurationsdateiformat für die JSON-Datei im OCI Object Storage-Bucket als Senke von NoSQL Database Migrator wird unten angezeigt.
Hinweis: Die gültigen Quelltypen für OCI Object Storage als Sink sind nosqldb und nosqldb_cloud.
Sink-Konfigurationsvorlage
"sink" : {
"type" : "object_storage_oci",
"format" : "json",
"endpoint" : "<OCI Object Storage service endpoint URL or region ID>",
"namespace" : "<OCI Object Storage namespace>",
"bucket" : "<bucket name>",
"prefix" : "<object prefix>",
"chunkSize" : <size in MB>,
"pretty" : <true|false>,
"credentials" : "</path/to/oci/config/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <true|false>
}
Sink-Parameter
Allgemeine Konfigurationsparameter
-
Verwenden Sie
"type" : "object_storage_oci" -
Verwenden Sie
"format" : "json" -
Beispiel:
-
Regions-ID:
"endpoint" : "us-ashburn-1" -
URL-Format:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Beispiel:
"namespace" : "my-namespace" -
Beispiel:
"bucket" : "my-bucket" -
Schema wird in die Datei
<prefix>/Schema/schema.ddlmigriert, und die Quelldaten werden in die Dateien<prefix>/Data/<chunk>.jsonmigriert, wobei chunk=000000.json, 000001.json usw. ist.Beispiel:
-
"prefix" : "my_export" -
"prefix" : "my_export/2021-04-05/"
-
-
Beispiel:
"chunkSize" : 40 -
Beispiel:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
- Beispiel für credentialsProfile:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Beispiel:
"useInstancePrincipal" : true -
Beispiel:
"useDelegationToken" : trueHinweis: Die Authentifizierung mit Delegierungstoken wird nur unterstützt, wenn der NoSQL Database Migrator von einer Cloud Shell aus ausgeführt wird.
-
Beispiel:
"useOKEWorkloadIdentity" : true -
Beispiel:
"useSessionToken" : true
Eindeutiger Konfigurationsparameter
pretty
-
Zweck: Gibt an, ob die JSON-Ausgabe verschönert werden soll, um die Lesbarkeit zu erhöhen.
Wird keine Angabe gemacht, wird standardmäßig "false" verwendet.
-
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
-
Beispiel:
"pretty" : true
Parquet-Datei in OCI Object Storage-Bucket
Das Konfigurationsdateiformat für die Parquet-Datei im OCI Object Storage-Bucket als Senke des NoSQL Database Migrators wird unten angezeigt.
Hinweis: Die gültigen Quelltypen für den OCI Object Storage-Quelltyp sind nosqldb und nosqldb_cloud.
Sink-Konfigurationsvorlage
"sink" : {
"type" : "object_storage_oci",
"format" : "parquet",
"endpoint" : "<OCI Object Storage service endpoint URL or region ID>",
"namespace" : "<OCI Object Storage namespace>",
"bucket" : "<bucket name>",
"prefix" : "<object prefix>",
"chunkSize" : <size in MB>,
"compression": "<SNAPPY|GZIP|NONE>",
"parquetOptions": {
"useLogicalJson": <true|false>,
"useLogicalEnum": <true|false>,
"useLogicalUUID": <true|false>,
"truncateDoubleSpecials": <true|false>
},
"credentials" : "</path/to/oci/config/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <true|false>
}
Sink-Parameter
Allgemeine Konfigurationsparameter
-
Verwenden Sie
"type" : "object_storage_oci" -
Verwenden Sie
"format" : "parquet" -
Beispiel:
-
Regions-ID:
"endpoint" : "us-ashburn-1" -
URL-Format:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Beispiel:
"namespace" : "my-namespace" -
Beispiel:
"bucket" : "my-bucket" -
Quelldaten werden in die Dateien
<prefix>/Data/<chunk>.parquetmigriert, wobei chunk=000000.parquet, 000001.parquet usw. ist.Beispiel:
-
"prefix" : "my_export" -
"prefix" : "my_export/2021-04-05/"
-
-
Beispiel:
"chunkSize" : 40 -
Beispiel:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Beispiel:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Beispiel:
"useInstancePrincipal" : true -
Beispiel:
"useDelegationToken" : trueHinweis: Die Authentifizierung mit Delegierungstoken wird nur unterstützt, wenn der NoSQL Database Migrator von einer Cloud Shell aus ausgeführt wird.
-
Beispiel:
"useOKEWorkloadIdentity" : true -
Beispiel:
"useSessionToken" : true
Eindeutiger Konfigurationsparameter
-
Zweck: Gibt den Komprimierungstyp an, mit dem die Parquet-Daten komprimiert werden. Gültige Werte sind SNAPPY, GZIP und NONE.
Wenn keine Angabe gemacht wird, wird standardmäßig SNAPPY verwendet.
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): N
-
Beispiel:
"compression" : "GZIP"
-
Zweck: Gibt die Optionen zur Auswahl logischer Parquet-Typen für NoSQL ENUM-, JSON- und UUID-Spalten an.
Wenn Sie diesen Parameter nicht angeben, schreibt der NoSQL-Datenbankmigrator die Daten der Spalten ENUM, JSON und UUID als Zeichenfolge.
-
Datentyp: Objekt
-
Obligatorisch (J/N): N
-
Zweck: Gibt an, ob NoSQL-JSON-Spaltendaten als logischer JSON-Typ von Parquet geschrieben werden sollen. Weitere Informationen finden Sie unter Parquet Logical Type Definitions.
Wenn diese Option nicht angegeben oder auf "false" gesetzt ist, schreibt NoSQL Database Migrator die NoSQL-JSON-Spaltendaten als Zeichenfolge.
-
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
-
Beispiel:
"useLogicalJson" : true
-
Zweck: Gibt an, ob NoSQL ENUM-Spaltendaten als logischer Parquet-ENUM-Typ geschrieben werden sollen. Weitere Informationen finden Sie unter Parquet Logical Type Definitions.
Wenn kein Wert angegeben oder auf "false" gesetzt ist, schreibt NoSQL Database Migrator die NoSQL ENUM-Spaltendaten als Zeichenfolge.
-
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
-
Beispiel:
"useLogicalEnum" : true
-
Zweck: Gibt an, ob NoSQL-UUID-Spaltendaten als logischer UUID-Typ von Parquet geschrieben werden sollen. Weitere Informationen finden Sie unter Parquet Logical Type Definitions.
Wenn kein Wert angegeben oder auf "false" gesetzt ist, schreibt NoSQL Database Migrator die NoSQL-UUID-Spaltendaten als Zeichenfolge.
-
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
-
Beispiel:
"useLogicalUUID" : true
parquetOptions.truncateDoubleSpecials
-
Zweck: Gibt an, ob die doppelten Werte +Infinity, -Infinity und NaN abgeschnitten werden sollen.
Standardmäßig ist sie auf
falsegesetzt. Wenn dieser Wert auftruegesetzt ist,-
Positive_Infinity wird auf Double.MAX_VALUE gekürzt.
-
NEGATIVE_INFINITY wird gekürzt auf -Double.MAX_VALUE.
-
NaN wird auf 9.9999999999999990E307 gekürzt.
-
-
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
-
Beispiel:
"truncateDoubleSpecials" : true
Oracle NoSQL Database
Das Konfigurationsdateiformat für Oracle NoSQL Database als Sink von NoSQL Database Migrator wird unten angezeigt.
Sink-Konfigurationsvorlage
"sink" : {
"type": "nosqldb",
"storeName" : "<store name>",
"helperHosts" : ["hostname1:port1","hostname2:port2,..."],
"security" : "</path/to/store/credentials/file>",
"table" : "<fully qualified table name>",
"includeTTL": <true|false>,
"ttlRelativeDate": "<date-to-use in UTC>",
"schemaInfo" : {
"schemaPath" : "</path/to/a/schema/file>",
"defaultSchema" : <true|false>,
"useSourceSchema" : <true|false>,
"DDBPartitionKey" : <"name:type">,
"DDBSortKey" : "<name:type>"
},
"overwrite" : <true|false>,
"requestTimeoutMs" : <timeout in milli seconds>
}
Sink-Parameter
Gemeinsamer Konfigurationsparameter
-
Verwenden Sie
"type" : "nosqldb" -
Beispiel:
"security" : "/home/user/client.credentials"Beispiel für Inhalt der Sicherheitsdatei für die kennwortdateibasierte Authentifizierung:
oracle.kv.password.noPrompt=true oracle.kv.auth.username=admin oracle.kv.auth.pwdfile.file=/home/nosql/login.passwd oracle.kv.transport=ssl oracle.kv.ssl.trustStore=/home/nosql/client.trust oracle.kv.ssl.protocols=TLSv1.2 oracle.kv.ssl.hostnameVerifier=dnmatch(CN\=NoSQL)Beispiel für den Inhalt der Sicherheitsdatei für die Wallet-basierte Authentifizierung:
oracle.kv.password.noPrompt=true oracle.kv.auth.username=admin oracle.kv.auth.wallet.dir=/home/nosql/login.wallet oracle.kv.transport=ssl oracle.kv.ssl.trustStore=/home/nosql/client.trust oracle.kv.ssl.protocols=TLSv1.2 oracle.kv.ssl.hostnameVerifier=dnmatch(CN\=NoSQL) -
Anforderungszeitüberschreitungen
Beispiel:
"requestTimeoutMs" : 5000
Eindeutiger Konfigurationsparameter
-
Zweck: Name des Oracle NoSQL Database-Speichers.
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): J
-
Beispiel:
"storeName" : "kvstore"
-
Zweck: Eine Liste der Host- und Registry-Portpaare im Format
hostname:port. Begrenzen Sie jedes Element in der Liste mit einem Komma. Sie müssen mindestens einen Helper-Host angeben. -
Datentyp: Array von Zeichenfolgen
-
Obligatorisch (J/N): J
-
Beispiel:
"helperHosts" : ["localhost:5000","localhost:6000"]
-
Zweck: Gibt den Tabellennamen an, in dem die migrierten Daten gespeichert werden.
Format:
[namespace_name:]<table_name>Wenn sich die Tabelle im DEFAULT-Namespace befindet, können Sie
namespace_nameweglassen. Die Tabelle muss während der Migration im Speicher vorhanden sein, und ihr Schema muss mit den Quelldaten übereinstimmen.Wenn die Tabelle in der Sink nicht verfügbar ist, können Sie den Parameter
schemaInfoverwenden, um den NoSQL Database Migrator anzuweisen, die Tabelle in der Sink zu erstellen. -
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): J
-
Beispiel:
-
Mit dem DEFAULT Namespace
"table" :"mytable" -
Mit einem nicht standardmäßigen Namespace
"table" : "mynamespace:mytable" -
So geben Sie eine untergeordnete Tabelle an:
"table" : "mytable.child"
Hinweis: Sie können die untergeordneten Tabellen von einer gültigen Datenquelle zu Oracle NoSQL Database migrieren. NoSQL Database Migrator kopiert nur eine einzelne Tabelle in jeder Ausführung. Stellen Sie sicher, dass die übergeordnete Tabelle vor der untergeordneten Tabelle migriert wird.
-
-
Zweck: Gibt an, ob TTL-Metadaten für Tabellenzeilen, die von der Quelle beim Import von Oracle NoSQL Database-Tabellen bereitgestellt werden, eingeschlossen werden sollen.
Wenn Sie diesen Parameter nicht angeben, wird standardmäßig
falseverwendet. In diesem Fall enthält der NoSQL Database Migrator keine TTL-Metadaten für Tabellenzeilen, die von der Quelle beim Importieren von Oracle NoSQL Database-Tabellen bereitgestellt werden.Wenn diese Option auf "true" gesetzt ist, führt das NoSQL Database Migrator-Tool beim Importieren einer Tabellenzeile die folgenden Prüfungen der TTL-Metadaten aus:
-
Wenn Sie eine Zeile importieren, die keine
_metadata-Definition enthält, setzt das NoSQL Database Migrator-Tool die TTL auf 0. Das bedeutet, dass die Zeile nie abläuft. -
Wenn Sie eine Zeile mit der Definition
_metadataimportieren, vergleicht das NoSQL Database Migrator-Tool den TTL-Wert mit einer Referenzzeit, wenn eine Zeile importiert wird. Wenn die Zeile relativ zur Referenzzeit bereits abgelaufen ist, wird sie übersprungen. Wenn die Zeile noch nicht abgelaufen ist, wird sie zusammen mit dem TTL-Wert importiert. Standardmäßig entspricht die Referenzzeit des Importvorgangs der aktuellen Zeit in Millisekunden, die von System.currentTimeMillis() auf dem Rechner abgerufen wird, auf dem das NoSQL Database Migrator-Tool ausgeführt wird. Sie können jedoch auch eine benutzerdefinierte Referenzzeit mit dem KonfigurationsparameterttlRelativeDatefestlegen, wenn Sie die Ablaufzeit verlängern und Zeilen importieren möchten, die andernfalls sofort ablaufen würden.Die folgende Formel berechnet die Ablaufzeit eines Datensatzes:
expiration = (TTL value of source row in milliseconds - Reference Time in milliseconds) if (expiration <= 0) then it indicates that row has expired.
Hinweis: Da die Oracle NoSQL-TTL-Grenzen in Stunden und Tagen liegen, wird die TTL der importierten Zeile möglicherweise auf die nächste Stunde oder den nächsten Tag angepasst. Beispiel: Eine Zeile mit dem Ablaufwert
1629709200000 (2021-08-23 09:00:00)und dem Referenzzeitwert1629707962582 (2021-08-23 08:39:22). Auch wenn die Zeile beim Import dieser Daten relativ zur Referenzzeit nicht abgelaufen ist, lautet die neue TTL für die Zeile1629712800000 (2021-08-23 10:00:00). -
-
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
-
Beispiel:
"includeTTL" : true
-
Zweck: Geben Sie ein UTC-Datum im Format JJJJ-MM-TT hh:mm:ss an, das zum Festlegen des TTL-Ablaufs von Tabellenzeilen beim Import in Oracle NoSQL Database verwendet wird.
Wenn eine Tabellenzeile in den Daten, die Sie exportieren, abgelaufen ist, können Sie den Parameter "tttlRelativeDate" auf ein Datum vor dem Ablaufdatum der Tabellenzeile in den exportierten Daten setzen.
Wenn Sie diesen Parameter nicht angeben, wird standardmäßig die aktuelle Zeit in Millisekunden verwendet, die von System.currentTimeMillis() des Rechners abgerufen wird, auf dem das NoSQL Database Migrator-Tool ausgeführt wird.
-
Datentyp: Datum
-
Obligatorisch (J/N): N
-
Beispiel:
"ttlRelativeDate" : "2021-01-03 04:31:17"Betrachten wir ein Szenario, in dem Tabellenzeilen nach sieben Tagen ab dem 1. Januar 2021 ablaufen. Nachdem Sie diese Tabelle exportiert haben, stoßen Sie am 7. Januar 2021 auf ein Problem mit der Tabelle und beschließen, die Daten zu importieren. Die Tabellenzeilen laufen in einem Tag ab (Datenablaufdatum minus dem Standardwert des Konfigurationsparameters
ttlRelativedate, das aktuelle Datum). Wenn Sie das Ablaufdatum von Tabellenzeilen jedoch auf fünf Tage statt auf einen Tag verlängern möchten, verwenden Sie den ParameterttlRelativeDate, und wählen Sie ein früheres Datum aus. Wenn Sie also in diesem Szenario die Ablaufzeit der Tabellenzeilen um fünf Tage verlängern möchten, setzen Sie den Wert der KonfigurationsparameterttlRelativeDateauf 3-Jan-2021. Dieser Wert wird als Referenzzeit verwendet, wenn Tabellenzeilen importiert werden.
-
Zweck: Gibt das Schema für die zu migrierenden Daten an. Wenn dies nicht angegeben ist, geht der NoSQL-Datenbankmigrator davon aus, dass die Tabelle bereits im Speicher der Senke vorhanden ist.
-
Datentyp: Objekt
-
Obligatorisch (J/N): N
-
Zweck: Gibt den absoluten Pfad zu einer Datei an, die DDL-Anweisungen für die NoSQL-Tabelle enthält.
Der NoSQL Database Migrator führt die in dieser Datei aufgeführten DDL-Befehle aus, bevor die Daten migriert werden.
Der NoSQL Database Migrator unterstützt nicht mehr als eine DDL-Anweisung pro Zeile in der Datei
schemaPath. -
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): N
Hinweis:
defaultSchemaundschemaPathschließen sich gegenseitig aus. -
Beispiel:
"schemaPath" : "/home/user/schema_file"
-
Zweck: Wenn dieser Parameter auf true gesetzt wird, wird der NoSQL-Datenbankmigrator angewiesen, eine Tabelle mit einem Standardschema zu erstellen. Das Standardschema wird vom Migrator selbst definiert. Weitere Informationen zu Standardschemadefinitionen finden Sie unter Standardschema in Oracle NoSQL Data Migrator verwenden.
-
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
Hinweis:
defaultSchemaundschemaPathschließen sich gegenseitig aus.
-
Zweck: Gibt an, ob die Sink die Tabellenschemadefinition verwendet, die von der Quelle bei der Migration von NoSQL-Tabellen bereitgestellt wird.
-
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
Hinweis: Die Parameter defaultSchema, schemaPath und useSourceSchema schließen sich gegenseitig aus. Geben Sie nur einen dieser Parameter an.
-
Beispiel:
-
Mit Standardschema:
"schemaInfo" : { "defaultSchema" : true } -
Mit einem vordefinierten Schema:
"schemaInfo" : { "schemaPath" : "<complete/path/to/the/schema/definition/file>" } -
Mit Quellschema:
"schemaInfo" : { "useSourceSchema" : true }
-
-
Zweck: Gibt den DynamoDB-Partitionsschlüssel und den entsprechenden Oracle NoSQL Database-Typ an, der in der Oracle NoSQL Database-Sink-Tabelle verwendet werden soll. Dieser Schlüssel wird als NoSQL-DB-Tabellen-Shard-Schlüssel verwendet. Dies gilt nur, wenn
defaultSchemaauf "true" gesetzt ist und das Quellformatdynamodb_jsonlautet. Weitere Informationen finden Sie unter DynamoDB-Typen zu Oracle NoSQL-Typen zuordnen. -
Obligatorisch (J/N): J, wenn
defaultSchemawahr ist und die Quelledynamodb_jsonist. -
Beispiel:
"DDBPartitionKey" : "PersonID:INTEGER"Hinweis: Wenn der Partitionsschlüssel Bindestriche (-) oder Punkte (.) enthält, ersetzt der Migrator ihn durch Unterstriche (_), da der NoSQL-Spaltenname keine Punkte und Bindestriche unterstützt.
-
Zweck: Gibt den DynamoDB-Sortierschlüssel und den entsprechenden Oracle NoSQL Database-Typ an, der in der Oracle NoSQL Database-Zieltabelle verwendet werden soll. Wenn die importierende DynamoDB-Tabelle keinen Sortierschlüssel aufweist, darf dieses Attribut nicht festgelegt werden. Dieser Schlüssel wird als Nicht-Shard-Teil des Primärschlüssels in der NoSQL-DB-Tabelle verwendet. Dies gilt nur, wenn
defaultSchemaauf "true" gesetzt ist und die Quelledynamodb_jsonist. Weitere Informationen finden Sie unter DynamoDB-Typen zu Oracle NoSQL-Typen zuordnen. -
Obligatorisch (J/N): N
-
Beispiel:
"DDBSortKey" : "Skey:STRING"Hinweis: Wenn der Sortierschlüssel Bindestriche (-) oder Punkte (.) enthält, ersetzt der Migrator ihn durch Unterstriche (_), da der NoSQL-Spaltenname keine Punkte und Bindestriche unterstützt.
-
Zweck: Gibt das Verhalten des NoSQL-Datenbankmigrators an, wenn der Datensatz, der aus der Quelle migriert wird, bereits in der Senke vorhanden ist.
Wenn der Wert auf "false" gesetzt ist, überspringt der NoSQL-Datenbankmigrator beim Migrieren von Tabellen die Datensätze, für die bereits derselbe Primärschlüssel in der Sink vorhanden ist.
Wenn der Wert auf "true" gesetzt ist, überschreibt der NoSQL-Datenbankmigrator beim Migrieren von Tabellen die Datensätze, für die bereits derselbe Primärschlüssel in der Sink vorhanden ist.
Wenn keine Angabe gemacht wird, wird standardmäßig "true" verwendet.
-
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
-
Beispiel:
"overwrite" : false
Oracle NoSQL Database Cloud Service
Das Konfigurationsdateiformat für Oracle NoSQL Database Cloud Service als Senke des NoSQL-Datenbankmigrators wird unten angezeigt.
Sink-Konfigurationsvorlage
"sink" : {
"type" : "nosqldb_cloud",
"endpoint" : "<Oracle NoSQL Cloud Service Endpoint>",
"table" : "<table name>",
"compartment" : "<OCI compartment name or id>",
"includeTTL": <true|false>,
"ttlRelativeDate" : "<date-to-use in UTC>",
"schemaInfo" : {
"schemaPath" : "</path/to/a/schema/file>",
"defaultSchema" : <true|false>,
"useSourceSchema" : <true|false>,
"DDBPartitionKey" : <"name:type">,
"DDBSortKey" : "<name:type>",
"onDemandThroughput" : <true|false>,
"readUnits" : <table read units>,
"writeUnits" : <table write units>,
"storageSize" : <storage size in GB>
},
"credentials" : "</path/to/oci/credential/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <true|false>,
"writeUnitsPercent" : <table writeunits percent>,
"requestTimeoutMs" : <timeout in milli seconds>,
"overwrite" : <true|false>
}
Sink-Parameter
Allgemeine Konfigurationsparameter
-
Verwenden Sie
"type" : "nosqldb_cloud" -
Beispiel:
-
Regions-ID:
"endpoint" : "us-ashburn-1" -
URL-Format:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Beispiel:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Beispiel:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Beispiel:
"useInstancePrincipal" : true -
Beispiel:
"useDelegationToken" : trueHinweis: Die Authentifizierung mit Delegierungstoken wird nur unterstützt, wenn der NoSQL Database Migrator von einer Cloud Shell aus ausgeführt wird.
-
Beispiel:
"useOKEWorkloadIdentity" : true -
Beispiel:
"useSessionToken" : true -
Anforderungszeitüberschreitungen
Beispiel:
"requestTimeoutMs" : 5000
Eindeutiger Konfigurationsparameter
-
Zweck: Gibt den Tabellennamen an, in dem die migrierten Daten gespeichert werden.
Stellen Sie sicher, dass diese Tabelle in Oracle NoSQL Database Cloud Service vorhanden ist. Andernfalls müssen Sie das Objekt
schemaInfoin der Sink-Konfiguration verwenden, um den NoSQL-Datenbankmigrator anzuweisen, die Tabelle zu erstellen.Das Schema dieser Tabelle muss mit den Quelldaten übereinstimmen.
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): J
-
Beispiel:
-
So geben Sie eine Tabelle an:
"table" : "mytable" -
So geben Sie eine untergeordnete Tabelle an:
"table" : "mytable.child"
Hinweis: Sie können die untergeordneten Tabellen von einer gültigen Datenquelle zu Oracle NoSQL Database Cloud Service migrieren. NoSQL Database Migrator kopiert nur eine einzelne Tabelle in jeder Ausführung. Stellen Sie sicher, dass die übergeordnete Tabelle vor der untergeordneten Tabelle migriert wird.
-
-
Zweck: Gibt den Namen oder die OCID des Compartments an, in dem sich die Tabelle befindet.
Wenn Sie keinen Wert angeben, wird standardmäßig das root-Compartment verwendet.
Die OCID des Compartments finden Sie im Fenster "Compartment Explorer" unter "Governance" in der OCI Cloud-Konsole.
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): J, wenn sich die Tabelle nicht im Root Compartment des Mandanten befindet oder wenn der Parameter "useInstancePrincipal" auf "true" gesetzt ist.
Hinweis: Wenn der Parameter "useInstancePrincipal" auf "true" gesetzt ist, muss das Compartment die Compartment-OCID und nicht den Namen angeben.
-
Beispiel:
-
Compartment-Name
"compartment" : "mycompartment" -
Compartment-Name mit übergeordnetem Compartment angegeben
"compartment" : "parent.childcompartment" -
Es wurde kein Wert angegeben. Wird standardmäßig auf das Root Compartment gesetzt.
"compartment": "" -
Compartment-OCID
"compartment" : "ocid1.tenancy.oc1...4ksd"
-
-
Zweck: Gibt an, ob TTL-Metadaten für Tabellenzeilen, die von der Quelle beim Import von Oracle NoSQL Database-Tabellen bereitgestellt werden, eingeschlossen werden sollen.
Wenn Sie diesen Parameter nicht angeben, wird standardmäßig
falseverwendet. In diesem Fall enthält der NoSQL Database Migrator keine TTL-Metadaten für Tabellenzeilen, die von der Quelle beim Importieren von Oracle NoSQL Database-Tabellen bereitgestellt werden.Wenn diese Option auf "true" gesetzt ist, führt das NoSQL Database Migrator-Tool beim Importieren einer Tabellenzeile die folgenden Prüfungen der TTL-Metadaten aus:
-
Wenn Sie eine Zeile importieren, die keine
_metadata-Definition enthält, setzt das NoSQL Database Migrator-Tool die TTL auf 0. Das bedeutet, dass die Zeile nie abläuft. -
Wenn Sie eine Zeile mit der Definition
_metadataimportieren, vergleicht das NoSQL Database Migrator-Tool den TTL-Wert mit einer Referenzzeit, wenn eine Zeile importiert wird. Wenn die Zeile relativ zur Referenzzeit bereits abgelaufen ist, wird sie übersprungen. Wenn die Zeile noch nicht abgelaufen ist, wird sie zusammen mit dem TTL-Wert importiert. Standardmäßig entspricht die Referenzzeit des Importvorgangs der aktuellen Zeit in Millisekunden, die von System.currentTimeMillis() auf dem Rechner abgerufen wird, auf dem das NoSQL Database Migrator-Tool ausgeführt wird. Sie können jedoch auch eine benutzerdefinierte Referenzzeit mit dem KonfigurationsparameterttlRelativeDatefestlegen, wenn Sie die Ablaufzeit verlängern und Zeilen importieren möchten, die andernfalls sofort ablaufen würden.Die folgende Formel berechnet die Ablaufzeit eines Datensatzes:
expiration = (TTL value of source row in milliseconds - Reference Time in milliseconds) if (expiration <= 0) then it indicates that row has expired.
Hinweis: Da die Oracle NoSQL-TTL-Grenzen in Stunden und Tagen liegen, wird die TTL der importierten Zeile möglicherweise auf die nächste Stunde oder den nächsten Tag angepasst. Beispiel: Eine Zeile mit dem Ablaufwert
1629709200000 (2021-08-23 09:00:00)und dem Referenzzeitwert1629707962582 (2021-08-23 08:39:22). Auch wenn die Zeile beim Import dieser Daten relativ zur Referenzzeit nicht abgelaufen ist, lautet die neue TTL für die Zeile1629712800000 (2021-08-23 10:00:00). -
-
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
-
Beispiel:
"includeTTL" : true
-
Zweck: Geben Sie ein UTC-Datum im Format JJJJ-MM-TT hh:mm:ss an, das zum Festlegen des TTL-Ablaufs von Tabellenzeilen beim Import in Oracle NoSQL Database verwendet wird.
Wenn eine Tabellenzeile in den Daten, die Sie exportieren, abgelaufen ist, können Sie den Parameter
ttlRelativeDateauf ein Datum setzen, das vor der Ablaufzeit der Tabellenzeile in den exportierten Daten liegt.Wenn Sie diesen Parameter nicht angeben, wird standardmäßig die aktuelle Zeit in Millisekunden verwendet, die von System.currentTimeMillis() des Rechners abgerufen wird, auf dem das NoSQL Database Migrator-Tool ausgeführt wird.
-
Datentyp: Datum
-
Obligatorisch (J/N): N
-
Beispiel:
"ttlRelativeDate" : "2021-01-03 04:31:17"Betrachten wir ein Szenario, in dem Tabellenzeilen nach sieben Tagen ab dem 1. Januar 2021 ablaufen. Nachdem Sie diese Tabelle exportiert haben, stoßen Sie am 7. Januar 2021 auf ein Problem mit der Tabelle und beschließen, die Daten zu importieren. Die Tabellenzeilen laufen in einem Tag ab (Datenablaufdatum minus dem Standardwert des Konfigurationsparameters
ttlRelativedate, das aktuelle Datum). Wenn Sie das Ablaufdatum von Tabellenzeilen jedoch auf fünf Tage statt auf einen Tag verlängern möchten, verwenden Sie den ParameterttlRelativeDate, und wählen Sie ein früheres Datum aus. Wenn Sie also in diesem Szenario die Ablaufzeit der Tabellenzeilen um fünf Tage verlängern möchten, setzen Sie den Wert der KonfigurationsparameterttlRelativeDateauf 3-Jan-2021. Dieser Wert wird als Referenzzeit verwendet, wenn Tabellenzeilen importiert werden.
-
Zweck: Gibt das Schema für die zu migrierenden Daten an.
Wenn Sie diesen Parameter nicht angeben, geht der NoSQL-Datenbankmigrator davon aus, dass die Tabelle bereits in Oracle NoSQL Database Cloud Service vorhanden ist.
Wenn dieser Parameter nicht angegeben ist und die Tabelle nicht in der Sink vorhanden ist, verläuft die Migration nicht erfolgreich.
-
Datentyp: Objekt
-
Obligatorisch (J/N): N
-
Zweck: Gibt den absoluten Pfad zu einer Datei an, die DDL-Anweisungen für die NoSQL-Tabelle enthält.
Der NoSQL Database Migrator führt die in dieser Datei aufgeführten DDL-Befehle aus, bevor die Daten migriert werden.
Der NoSQL Database Migrator unterstützt nicht mehr als eine DDL-Anweisung pro Zeile in der Datei
schemaPath. -
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): N
Hinweis: defaultSchema und schemaPath schließen sich gegenseitig aus.
- Beispiel:
"schemaPath" : "/home/user/schema_file"
-
Zweck: Wenn dieser Parameter auf Ja gesetzt wird, wird der NoSQL-Datenbankmigrator angewiesen, eine Tabelle mit einem Standardschema zu erstellen. Das Standardschema wird vom Migrator selbst definiert. Weitere Informationen zu Standardschemadefinitionen finden Sie unter Standardschema in Oracle NoSQL Data Migrator verwenden.
-
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
Hinweis:
defaultSchemaundschemaPathschließen sich gegenseitig aus.
-
Zweck: Gibt an, ob die Sink die Tabellenschemadefinition verwendet, die von der Quelle bei der Migration von NoSQL-Tabellen bereitgestellt wird.
-
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
Hinweis: Die Parameter defaultSchema, schemaPath und useSourceSchema schließen sich gegenseitig aus. Geben Sie nur einen dieser Parameter an.
-
Beispiel:
-
Mit Standardschema:
"schemaInfo": { "defaultSchema": true, "readUnits": 100, "writeUnits": 60, "storageSize": 1 } -
Mit einem vordefinierten Schema:
"schemaInfo": { "schemaPath": "<complete/path/to/the/schema/definition/file>", "readUnits": 100, "writeUnits": 100, "storageSize": 1 } -
Mit Quellschema:
"schemaInfo": { "useSourceSchema": true, "readUnits": 100, "writeUnits": 60, "storageSize": 1 }
-
-
Zweck: Gibt den DynamoDB-Partitionsschlüssel und den entsprechenden Oracle NoSQL Database-Typ an, der in der Oracle NoSQL Database-Sink-Tabelle verwendet werden soll. Dieser Schlüssel wird als NoSQL-DB-Tabellen-Shard-Schlüssel verwendet. Dies gilt nur, wenn
defaultSchemaauf "true" gesetzt ist und das Quellformatdynamodb_jsonlautet. Weitere Informationen finden Sie unter DynamoDB-Typen zu Oracle NoSQL-Typen zuordnen. -
Obligatorisch (J/N): J, wenn
defaultSchemawahr ist und die Quelledynamodb_jsonist. -
Beispiel:
"DDBPartitionKey" : "PersonID:INTEGER"Hinweis: Wenn der Partitionsschlüssel Bindestriche (-) oder Punkte (.) enthält, ersetzt der Migrator ihn durch Unterstriche (_), da der NoSQL-Spaltenname keine Punkte und Bindestriche unterstützt.
-
Zweck: Gibt den DynamoDB-Sortierschlüssel und den entsprechenden Oracle NoSQL Database-Typ an, der in der Oracle NoSQL Database-Zieltabelle verwendet werden soll. Wenn die importierende DynamoDB-Tabelle keinen Sortierschlüssel aufweist, darf dieses Attribut nicht festgelegt werden. Dieser Schlüssel wird als Nicht-Shard-Teil des Primärschlüssels in der NoSQL-DB-Tabelle verwendet. Dies gilt nur, wenn
defaultSchemaauf "true" gesetzt ist und die Quelledynamodb_jsonist. Weitere Informationen finden Sie unter DynamoDB-Typen zu Oracle NoSQL-Typen zuordnen. -
Obligatorisch (J/N): N
-
Beispiel:
"DDBSortKey" : "Skey:STRING"Hinweis: Wenn der Sortierschlüssel Bindestriche (-) oder Punkte (.) enthält, ersetzt der Migrator ihn durch Unterstriche (_), da der NoSQL-Spaltenname keine Punkte und Bindestriche unterstützt.
-
Zweck: Gibt an, dass die Tabelle mit On-Demand-Lese- und Schreibdurchsatz erstellt werden soll. Wenn dieser Parameter nicht festgelegt ist, wird die Tabelle mit bereitgestellter Kapazität erstellt.
Der Standardwert ist
false.
Hinweis: Dieser Parameter gilt nicht für untergeordnete Tabellen, da sie den Durchsatz der übergeordneten Tabelle der obersten Ebene gemeinsam verwenden.
-
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
-
Beispiel:
"onDemandThroughput" : "true"
-
Zweck: Gibt den Lesedurchsatz der neuen Tabelle an.
div class="infoboxnote" markdown="1">
Hinweis:
-
Dieser Parameter gilt nicht für Tabellen, die mit On-Demand-Kapazität bereitgestellt werden.
-
Dieser Parameter gilt nicht für untergeordnete Tabellen, da sie den Lesedurchsatz der übergeordneten Tabelle der obersten Ebene gemeinsam verwenden.
</div>
-
-
Datentyp: Ganzzahl
-
Obligatorisch (J/N): J, wenn die Tabelle keine untergeordnete Tabelle ist oder wenn der Parameter schemaInfo.onDemandThroughput auf
falsegesetzt ist, andernfalls N. -
Beispiel:
"readUnits" : 100
-
Zweck: Gibt den Schreibdurchsatz der neuen Tabelle an.
Hinweis:
- Dieser Parameter gilt nicht für Tabellen, die mit On-Demand-Kapazität bereitgestellt werden.
- Dieser Parameter ist für untergeordnete Tabellen nicht anwendbar, da sie den Schreibdurchsatz der übergeordneten Tabelle der obersten Ebene gemeinsam verwenden.
-
Datentyp: Ganzzahl
-
Obligatorisch (J/N): J, wenn die Tabelle keine untergeordnete Tabelle ist oder wenn der Parameter schemaInfo.onDemandThroughput auf
falsegesetzt ist, andernfalls N. -
Beispiel:
"writeUnits" : 100
-
Zweck: Gibt die Speichergröße der neuen Tabelle in GB an.
Hinweis: Dieser Parameter gilt nicht für untergeordnete Tabellen, da sie die Speichergröße der übergeordneten Tabelle der obersten Ebene gemeinsam verwenden.
-
Datentyp: Ganzzahl
-
Obligatorisch (J/N): J, wenn die Tabelle keine untergeordnete Tabelle ist, andernfalls N.
-
Beispiel:
-
Mit
schemaPath"schemaInfo" : { "schemaPath" : "</path/to/a/schema/file>", "readUnits" : 500, "writeUnits" : 1000, "storageSize" : 5 } -
Mit
defaultSchema"schemaInfo" : { "defaultSchema" :Yes, "readUnits" : 500, "writeUnits" : 1000, "storageSize" : 5 }
-
-
Zweck: Gibt den Prozentsatz der Tabellenschreibeinheiten an, die während der Migrationsaktivität verwendet werden sollen. Die für die Migration von Daten erforderliche Zeit ist direkt proportional zu diesem Attribut.
Der Standardwert ist 90. Der gültige Bereich ist eine beliebige Ganzzahl zwischen 1 und 100.
Informationen zur Verwendung dieses Attributs zur Verbesserung der Datenmigrationsgeschwindigkeit finden Sie unter Fehlerbehebung beim Oracle NoSQL Database-Migrator
-
Datentyp: Ganzzahl
-
Obligatorisch (J/N): N
-
Beispiel:
"writeUnitsPercent" : 90
-
Zweck: Gibt das Verhalten des NoSQL-Datenbankmigrators an, wenn der Datensatz, der aus der Quelle migriert wird, bereits in der Senke vorhanden ist.
Wenn der Wert auf "false" gesetzt ist, überspringt der NoSQL-Datenbankmigrator beim Migrieren von Tabellen die Datensätze, für die bereits derselbe Primärschlüssel in der Sink vorhanden ist.
Wenn der Wert auf "true" gesetzt ist, überschreibt der NoSQL-Datenbankmigrator beim Migrieren von Tabellen die Datensätze, für die bereits derselbe Primärschlüssel in der Sink vorhanden ist.
Wenn keine Angabe gemacht wird, wird standardmäßig "true" verwendet.
-
Datentyp: Boolescher Wert
-
Obligatorisch (J/N): N
-
Beispiel:
"overwrite" : false
Transformationskonfigurationsvorlagen
In diesem Thema werden die Konfigurationsparameter für die verschiedenen vom Oracle NoSQL Database-Migrator unterstützten Transformationen erläutert. Die vollständige Konfigurationsdateivorlage finden Sie unter Konfigurationsdatei in Mit NoSQL-Datenmigrator verwendete Terminologie.
Mit dem Oracle NoSQL Database-Migrator können Sie die Daten ändern, d.h. Datentransformationen als Teil der Migrationsaktivität hinzufügen. Sie können mehrere Transformationen in einer einzelnen Migration definieren. In diesem Fall ist die Reihenfolge der Transformationen von entscheidender Bedeutung, da die Quelldaten jede Transformation in der angegebenen Reihenfolge durchlaufen. Die Ausgabe einer Transformation wird zur Eingabe der nächsten in der Migrationspipeline.
Der NoSQL-Datenmigrator unterstützt folgende Transformationen:
Tabelle - Transformationen
| Transformationskonfigurationsattribut | Mit dieser Transformation können Sie... |
|---|---|
ignoreFields |
Ignorieren Sie die identifizierten Spalten aus der Quellzeile, bevor Sie in die Spüle schreiben. |
includeFields |
Nehmen Sie die identifizierten Spalten aus der Quellzeile auf, bevor Sie in die Spüle schreiben. |
renameFields |
Benennen Sie die identifizierten Spalten aus der Quellzeile um, bevor Sie in die Spüle schreiben. |
aggregateFields |
Aggregieren Sie mehrere Spalten aus der Quelle in einer einzelnen Spalte in der Senke. Im Rahmen dieser Transformation können Sie auch die Spalten identifizieren, die Sie in der Aggregation ausschließen möchten. Diese Felder werden aus der aggregierten Spalte übersprungen. |
Die Konfigurationsvorlage für jede unterstützte Transformation finden Sie unten.
ignoreFelder
Das Konfigurationsdateiformat für die ignoreFields-Transformation wird unten angezeigt.
Transformationskonfigurationsvorlage
"transforms" : {
"ignoreFields" : ["<field1>","<field2>",...]
}
Transformationsparameter
ignoreFelder
-
Zweck: Ein Array der Spaltennamen, die aus den Quelldatensätzen ignoriert werden sollen.
Hinweis: Sie können nur Felder der obersten Ebene angeben. Transformationen können nicht auf die Daten in den verschachtelten Feldern angewendet werden.
-
Datentyp: Array von Zeichenfolgen
-
Obligatorisch (J/N): J
-
Beispiel: So ignorieren Sie die Spalten "name" und "address" aus dem Quelldatensatz:
"ignoreFields" : ["name","address"]
IncludeFelder
Das Konfigurationsdateiformat für die includeFields-Transformation wird unten angezeigt.
Transformationskonfigurationsvorlage
"transforms" : {
"includeFields" : ["<field1>","<field2>",...]
}
Transformationsparameter
IncludeFelder
-
Zweck: Ein Array der Spaltennamen, die aus den Quelldatensätzen aufgenommen werden sollen. Sie enthält nur die im Array angegebenen Felder, die übrigen Felder werden ignoriert.
Hinweis: Das NoSQL Database Migrator-Tool löst einen Fehler aus, wenn Sie ein leeres Array angeben. Außerdem können Sie nur die Felder der obersten Ebene angeben. Das NoSQL Database Migrator-Tool wendet keine Transformationen auf die Daten in den verschachtelten Feldern an.
-
Datentyp: Array von Zeichenfolgen
-
Obligatorisch (J/N): J
-
Beispiel: So nehmen Sie die Spalten "age" und "gender" aus dem Quelldatensatz auf:
"includeFields" : ["age","gender"]
Felder umbenennen
Das Konfigurationsdateiformat für die renameFields-Transformation wird unten angezeigt.
Transformationskonfigurationsvorlage
"transforms" : {
"renameFields" : {
"<old_name>" : "<new_name>",
"<old_name>" : "<new_name>,"
.....
}
}
Transformationsparameter
Felder umbenennen
-
Zweck: Schlüssel/Wert-Paare der alten und neuen Namen der umzubenennenden Spalten.
Hinweis: Sie können nur Felder der obersten Ebene angeben. Transformationen können nicht auf die Daten in den verschachtelten Feldern angewendet werden.
-
Datentyp: JSON-Objekt
-
Obligatorisch (J/N): J
-
Beispiel: So benennen Sie die Spalte "residence" in "address" und die Spalte "_id" in "id" um:
"renameFields" : { "residence" : "address", "_id" : "id" }
aggregierte Felder
Das Konfigurationsdateiformat für die aggregateFields-Transformation wird unten angezeigt.
Transformationskonfigurationsvorlage
"transforms" : {
"aggregateFields" : {
"fieldName" : "name of the new aggregate field",
"skipFields" : ["<field1>","<field2">,...]
}
}
Transformationsparameter
aggregierte Felder
-
Zweck: Name des aggregierten Feldes in der Senke.
-
Datentyp: Zeichenfolge
-
Obligatorisch (J/N): J
-
Beispiel: Wenn der angegebene Datensatz:
{ "id" : 100, "name" : "john", "address" : "USA", "age" : 20 }Wenn die Aggregattransformation:
"aggregateFields" : { "fieldName" : "document", "skipFields" : ["id"] }Die aggregierte Spalte in der Senke sieht wie folgt aus:
{ "id": 100, "document": { "name": "john", "address": "USA", "age": 20 } }
DynamoDB-Typen zu Oracle NoSQL-Typen zuordnen
Die folgende Tabelle zeigt die Zuordnung von DynamoDB-Typen zu Oracle NoSQL-Typen.
Tabelle - DynamoDB-Typ dem Oracle NoSQL-Typ zuordnen
| # | DynamoDB-Typ | JSON-Typ für NoSQL-JSON-Spalte | Oracle NoSQL-Typ |
|---|---|---|---|
| 1 | Zeichenfolge (S) | JSON-Zeichenkette | STRING |
| 2 | Zahlentyp (N) | JSON-Nummer | GANZZAHL/LANG/SCHWARZ/DOPPEL/ZAHL |
| 3 | Boolescher Wert (BOOL) | JSON (boolesch) | BOOLEAN |
| 4 | Binärtyp (B) - Byte-Puffer | BASE-64-codierte JSON-Zeichenfolge | BINARY |
| 5 | NULL | JSON Null | NULL |
| 6 | Zeichensatz (SS) | JSON-Array aus Zeichenfolgen | ARRAY (ZEICHENFOLGE) |
| 7 | Zahlensatz (NS) | JSON-Zahlenarray | ARRAY (GANZZAHL/LANG/SCHWARZ/DOPPEL/ZAHL) |
| 8 | Binäres Set (BS) | JSON-Array mit Base-64-codierten Zeichenfolgen | ARRAY (BINÄR) |
| 9 | LISTE (L) | Array von JSON | ARRAY (JSON) |
| 10 | KARTE (M) | JSON-Objekt | JSON |
| 11 | PARTITIONSSCHLÜSSEL | - | PRIMARY KEY und SHARD KEY |
| 12 | SORTIERSCHLÜSSEL | - | PRIMARY KEY |
| 13 | Attributnamen mit Bindestrich und Punkt | JSON-Feldnamen mit Unterstrich | Spaltennamen mit Unterstrich |
Bei der Zuordnung von DynamoDB-Typen zu Oracle NoSQL-Typen sind nur wenige zusätzliche Punkte zu berücksichtigen:
-
DynamoDB unterstützt nur einen Datentyp für Zahlen und kann bis zu 38 Stellen Genauigkeit aufweisen. Im Gegensatz dazu unterstützt Oracle NoSQL viele Typen, die basierend auf dem Bereich und der Genauigkeit der Daten ausgewählt werden können. Sie können den entsprechenden Zahlentyp auswählen, der dem Bereich Ihrer Eingabedaten entspricht. Wenn Sie sich der Art der Daten nicht sicher sind, können Sie den NoSQL NUMBER-Typ verwenden.
-
DynamoDB unterstützt nur einen Datentyp für Zahlen und kann bis zu 38 Stellen Genauigkeit aufweisen. Im Gegensatz dazu unterstützt Oracle NoSQL viele Typen, die basierend auf dem Bereich und der Genauigkeit der Daten ausgewählt werden können. Sie können den entsprechenden Zahlentyp auswählen, der dem Bereich Ihrer Eingabedaten entspricht. Wenn Sie sich der Art der Daten nicht sicher sind, können Sie den NoSQL NUMBER-Typ verwenden.
-
Der Partitionsschlüssel in DynamoDB ist auf 2048 Byte begrenzt, aber Oracle NoSQL Cloud Service hat einen Grenzwert von 64 Byte für den Primärschlüssel/Shard-Schlüssel.
-
Der Sortierschlüssel in DynamoDB ist auf 1024 Byte begrenzt, Oracle NoSQL Cloud Service ist jedoch auf 64 Byte für den Primärschlüssel begrenzt.
-
Attributnamen in DynamoDB können 64 KB lang sein, Spaltennamen von Oracle NoSQL Cloud-Services sind jedoch auf 64 Zeichen begrenzt.
Oracle NoSQL zu Parquet-Datentypen zuordnen
Beschreibt die Zuordnung von Oracle NoSQL-Datentypen zu Parquet-Datentypen.
| NoSQL-Typ | Parkettart |
|---|---|
| BOOLEAN | BOOLEAN |
| INTEGER | INT32 |
| LONG | INT64 |
| FLOAT | DOUBLE |
| DOUBLE | DOUBLE |
| BINARY | BINARY |
| FEST_BINÄR | BINARY |
| STRING | BINÄR (ZEICHENFOLGE) |
| ENUM | BINÄR (ZEICHENFOLGE) Oder BINARY(ENUM), wenn die logische ENUM konfiguriert ist |
| UUID | BINÄR (ZEICHENFOLGE) Oder FIXED_BINARY(16), wenn die logische UUID konfiguriert ist |
| TIMESTAMP(p) | INT64(TIMESTAMP(p)) |
| NUMBER | DOUBLE |
| Feldname ARRAY(T) | |
| Feldname MAP(T) | |
| field_name RECORD(K1 T1 N1, K ⁇ 2 T2 N2, ....) Hierbei gilt: K = Schlüsselname T = Typ N = Null möglich oder nicht |
|
| JSON | BINÄR (ZEICHENFOLGE) Oder BINARY (JSON), wenn logische JSON konfiguriert ist |
Hinweis: Wenn der NoSQL-Nummerntyp in den Parquet-Typ "Doppelt" konvertiert wird, kann es zu einem Nachkommastellenverlust kommen, falls der Wert nicht in "Doppelt" dargestellt werden kann. Wenn die Zahl zu groß ist, um sie als Double darzustellen, wird sie in Double.NEGATIVE_INFINITY oder Double.POSITIVE_INFINITY konvertiert.
Zuordnung von DynamoDB-Tabelle zu Oracle NoSQL-Tabelle
In DynamoDB ist eine Tabelle eine Sammlung von Elementen, und jedes Element ist eine Sammlung von Attributen. Jedes Element in der Tabelle hat eine eindeutige ID oder einen Primärschlüssel. Außer dem Primärschlüssel ist die Tabelle schemalos. Jedes Element kann eigene eindeutige Attribute aufweisen.
DynamoDB unterstützt zwei verschiedene Arten von Primärschlüsseln:
-
Partitionsschlüssel: Ein einfacher Primärschlüssel, der aus einem Attribut besteht, das als Partitionsschlüssel bezeichnet wird. DynamoDB verwendet den Wert des Partitionsschlüssels als Eingabe für eine interne Hash-Funktion. Die Ausgabe der Hash-Funktion bestimmt die Partition, in der das Element gespeichert wird.
-
Partitionsschlüssel und Sortierschlüssel: Als zusammengesetzter Primärschlüssel besteht dieser Schlüsseltyp aus zwei Attributen. Das erste Attribut ist der Partitionsschlüssel, das zweite Attribut der Sortierschlüssel. DynamoDB verwendet den Partitionsschlüsselwert als Eingabe für eine interne Hash-Funktion. Die Ausgabe der Hash-Funktion bestimmt die Partition, in der das Element gespeichert wird. Alle Elemente mit demselben Partitionsschlüsselwert werden zusammen in sortierter Reihenfolge nach Sortierschlüsselwert gespeichert.
Im Gegensatz dazu unterstützen Oracle NoSQL-Tabellen flexible Datenmodelle mit schemalosem und schemalosem Design.
Es gibt zwei verschiedene Möglichkeiten, eine DynamoDB-Tabelle zu modellieren:
-
DynamoDB-Tabelle als JSON-Dokument modellieren (empfohlen): Bei dieser Modellierung ordnen Sie alle Attribute der Dynamo-DB-Tabellen einer JSON-Spalte der NoSQL-Tabelle zu, mit Ausnahme von Partitionsschlüssel und Sortierschlüssel. Sie modellieren Partitionsschlüssel und Sortierschlüssel als Primärschlüsselspalten der NoSQL-Tabelle. Sie verwenden die Transformation
AggregateFields, um nicht-primäre Schlüsseldaten in einer JSON-Spalte zu aggregieren.Hinweis: Der Migrator stellt eine benutzerfreundliche Konfiguration bereit
defaultSchema, um automatisch eine schemalose DDL-Tabelle zu erstellen, die auch Attribute in einer JSON-Spalte aggregiert. -
DynamoDB-Tabelle als feste Spalten in NoSQL-Tabelle modellieren: In dieser Modellierung erstellen Sie für jedes Attribut der DynamoDB-Tabelle eine Spalte in der NoSQL-Tabelle, wie unter DynamoDB-Typen zu Oracle NoSQL-Typen zuordnen angegeben. Sie modellieren Partitionsschlüssel und sortieren Schlüsselattribute als Primärschlüssel. Dies sollte nur verwendet werden, wenn Sie sicher sind, dass der Import des DynamoDB-Tabellenschemas fest ist und jedes Element Werte für die meisten Attribute enthält. Wenn DynamoDB-Elemente keine gemeinsamen Attribute aufweisen, kann dies zu vielen NoSQL-Spalten mit leeren Werten führen.
Hinweis: Es wird dringend empfohlen, schemalose Tabellen zu verwenden, wenn Daten von DynamoDB zu Oracle NoSQL Database migriert werden, da DynamoDB-Tabellen schemalos sind. Dies gilt insbesondere für große Tabellen, bei denen der Inhalt jedes Datensatzes in der Tabelle möglicherweise nicht einheitlich ist.
Fehler bei Oracle NoSQL Database-Migrator beheben
Erfahren Sie mehr über die allgemeinen Herausforderungen, denen Sie bei der Verwendung von , begegnen können, und wie Sie diese lösen können.
Migration war nicht erfolgreich. Wie kann ich das beheben?
Ein Ausfall der Datenmigration kann auf mehrere zugrunde liegende Gründe zurückzuführen sein. Die wichtigsten Ursachen sind unten aufgeführt:
Tabelle - Ursachen für Migrationsfehler
| Fehlermeldung | Bedeutung | Auflösung |
|---|---|---|
Failed to connect to Oracle NoSQL Database |
Der Migrator konnte keine Verbindung zur NoSQL-Datenbank herstellen. |
|
Failed to connect to Oracle NoSQL Database Cloud Service |
Der Migrator konnte keine Verbindung zu Oracle NoSQL Database Cloud Service herstellen. |
|
Table not found |
Die für die Migration angegebene Tabelle konnte vom NoSQL-Datenbankmigrator nicht gefunden werden. | Für die Quelle:
Für die Spüle:
|
DDL Execution failed |
Die in der Eingabeschemadefinitionsdatei angegebenen DDL-Befehle sind ungültig. |
|
failed to write record to the sink table with java.lang.IllegalArgumentException |
Der Eingabedatensatz stimmt nicht mit dem Tabellenschema der Sink überein. |
|
Request timeout |
Der Quell- oder Sinkvorgang wurde nicht innerhalb der erwarteten Zeit abgeschlossen. |
|
Was sollte ich vor dem Neustart einer nicht erfolgreichen Migration beachten?
Wenn eine Datenmigrationsaufgabe nicht erfolgreich verläuft, befindet sich die Sink in einem Zwischenstatus, der die importierten Daten bis zum Fehler enthält. Sie können die Fehler- und Fehlerdetails in den Logs identifizieren und die Migration neu starten, nachdem Sie den Fehler diagnostiziert und korrigiert haben. Eine neu gestartete Migration beginnt von vorne und verarbeitet alle Daten von Anfang an. Es gibt keine Möglichkeit, die Migration vom Zeitpunkt des Fehlers aus zu überprüfen und neu zu starten. Daher überschreibt NoSQL Database Migrator alle Datensätze, die bereits in die Sink migriert wurden.
Die für die Datenmigration benötigte Zeit hängt von mehreren Faktoren ab, wie dem zu migrierenden Datenvolumen, der Netzwerkgeschwindigkeit und der aktuellen Belastung der Datenbank. Bei einem Cloud-Service hängt die Migrationsgeschwindigkeit auch vom Lesedurchsatz und dem bereitgestellten Schreibdurchsatz ab. Um die Migrationsgeschwindigkeit zu verbessern, können Sie:
-
Führen Sie die Migration außerhalb der Geschäftszeiten aus, wenn die Belastung der Datenbank geringer ist.
-
Sie sollten die VM zuweisen, auf der der NoSQL Database Migrator ausgeführt wird, die Datenquelle definieren und die Datensenke in derselben OCI-Region definieren, um minimale Netzwerklatenzen sicherzustellen.
-
Prüfen Sie im Fall von Oracle NoSQL Database Cloud Service, ob der für die Tabelle zugewiesene Speicher ausreichend ist. Wenn der NoSQL-Datenbankmigrator die Tabelle nicht erstellt, können Sie den Schreibdurchsatz erhöhen. Wenn der Migrator die Tabelle erstellt, sollten Sie einen höheren Wert für den Parameter
schemaInfo.writeUnitsin der Sink-Konfiguration angeben. Nach Abschluss der Datenmigration können Sie diesen Wert senken.Hinweis: Die Häufigkeit, mit der Sie den Durchsatz oder die Speicherlimits erhöhen können, ist nicht begrenzt. Sie können den Durchsatz- oder Speichergrenzwert in einem Zeitraum von 24 Stunden nur bis zu 4 Mal verringern. Siehe Cloud-Limits und Konfigurationsvorlagen für Sink.
Das Migrator-Utility ist von Natur aus darauf ausgelegt, eine höhere Migrationsgeschwindigkeit zu erreichen, indem mehrere Streams parallel verarbeitet werden. Die folgenden Punkte schlagen vor, wie Sie diese Funktion für verschiedene Migrationsszenarios nutzen können:
-
Migration von Oracle NoSQL Database Cloud Service/On-Premise-Tabellen zu Dateisystem/Object Storage-Senke:
Legen Sie die Parameter useMultiFiles und chunkSize in der Migrator-Konfiguration fest. Der Parameter
useMultiFileserstellt mehrere Dateien/Objekte in der Sink. Der ParameterchunkSizebestimmt die Größe jeder Datei während des Datenexports.Beispiel: Wenn Sie 2 GB Daten exportieren und den Parameter
useMultiFilesauf "true" und den ParameterchunkSizeauf 40 MB setzen, schreibt das Migrator-Utility 50 Dateien mit jeweils 40 MB.Hinweis: Das Migrator-Utility kann derzeit 100 Streams parallel verarbeiten. Setzen Sie daher den Parameter
chunkSizeauf einen optimalen Wert für die Dateigröße, sodass das Migrator-Utility während des Datenexports maximal 100 Dateien erstellt. -
Migration von einem Dateisystem/Objektspeicher zu Oracle NoSQL Database Cloud Service/On-Premise-Sink:
-
Wenn Ihr Dateisystem/Objektspeicher Daten exportiert hat, die mehrere Dateien/Objekte aus einer vorherigen Migration enthalten, verarbeitet das Migrator-Utility Dateien automatisch parallel, um beim Importieren der Daten eine höhere Migrationsgeschwindigkeit zu erreichen.
-
Wenn Sie Daten aus anderen externen Dateisystemen/Object Storage migrieren, sollten Sie Daten in mehrere Dateien/mehrere Objekte in der Datenquelle aufteilen.
Hinweis:
-
Bei einer Oracle NoSQL Database Cloud Service-Senke müssen Sie einen ausreichenden Schreibdurchsatz und einen Prozentsatz der Tabellenschreibeinheiten konfigurieren, um bis zu 100 Streams während des Migrationsvorgangs zu verarbeiten.
-
Wenn mehr als 100 Quelldateien vorhanden sind, erstellt das Migrator-Utility maximal 100 Streams und verteilt die Dateien während des Datenimports auf diese. Die Dateien in jedem Stream werden sequenziell migriert.
-
-
Ich habe eine lange laufende Migration mit riesigen Datasets. Wie kann ich den Fortschritt der Migration verfolgen?
Sie können zusätzliches Logging aktivieren, um den Fortschritt einer Migration mit langer Ausführungszeit zu verfolgen. Um das Loggingverhalten von Oracle NoSQL Database Migrator zu steuern, müssen Sie die gewünschte Logging-Ebene in der Datei logging.properties festlegen. Diese Datei wird mit dem NoSQL Database Migrator-Package bereitgestellt und ist in dem Verzeichnis verfügbar, in dem der Oracle NoSQL Database Migrator entpackt wurde. Die verschiedenen Logging-Ebenen in der Reihenfolge zunehmender Ausführlichkeit sind OFF, SEVERE, WARNING, INFO, FINE, und ALL.
Wenn Sie die Logebene auf OFF setzen, werden alle Logginginformationen deaktiviert. Wenn Sie die Logebene auf ALL setzen, werden die vollständigen Loginformationen angezeigt.
Die standardmäßige Logebene ist WARNING. Die gesamte Loggingausgabe ist standardmäßig so konfiguriert, dass sie zur Konsole wechselt.
In der Datei logging.properties werden Kommentare zu den einzelnen Logebenen angezeigt.