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.

bucket

ChunkSize

Zugangsdaten

credentials-Profil

endpoint

Format

Namespace

prefix

requestTimeoutMs

Sicherheit

Typ

DelegationToken verwenden

useInstancePrincipal

OKEWorkloadIdentity verwenden

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.

useSessionToken

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:

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.

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

dataPath

schemaInfo

schemaInfo.schemaPath

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

Eindeutige Konfigurationsparameter

schemaInfo

schemaInfo.schemaObject

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

dataPath

schemaInfo

schemaInfo.schemaPath

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

  1. "credentials" : "/home/user/.oci/config"

  2. "credentials" : "/home/user/security/config"

Eindeutige Konfigurationsparameter

schemaInfo

schemaInfo.schemaObject

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

Eindeutige Konfigurationsparameter

s3URL

Zugangsdaten

credentials-Profil

ttlAttributeName

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

dataPath

ttlAttributeName

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

Eindeutige Konfigurationsparameter

storeName

helperHosts

Tabelle

includeTTL

Abfragefilter

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:

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

Eindeutige Konfigurationsparameter

Tabelle

Compartment

Hinweis: Wenn der Parameter "useInstancePrincipal" auf "true" gesetzt ist, muss das Compartment die Compartment-OCID und nicht den Namen angeben.

readUnitsProzent

includeTTL

Abfragefilter

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:

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

dataPath

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.

hasHeader

Spalten

csvOptions

csvOptions.encoding

csvOptions.trim

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

Eindeutige Konfigurationsparameter

hasHeader

Spalten

csvOptions

csvOptions.encoding

csvOptions.trim

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.

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

Eindeutige Konfigurationsparameter

dataPath

schemaPath

pretty

Mehrere Dateien verwenden

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

Eindeutige Konfigurationsparameter

dataPath

Komprimierung

Parkettoptionen

parquetOptions.useLogicalJson

parquetOptions.useLogicalEnum

parquetOptions.useLogicalUUID

parquetOptions.truncateDoubleSpecials

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

Eindeutiger Konfigurationsparameter

pretty

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

Eindeutiger Konfigurationsparameter

Komprimierung

Parkettoptionen

parquetOptions.useLogicalJson

parquetOptions.useLogicalEnum

parquetOptions.useLogicalUUID

parquetOptions.truncateDoubleSpecials

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

Eindeutiger Konfigurationsparameter

storeName

helperHosts

Tabelle

includeTTL

ttlRelativeDate

schemainfo

schemaInfo.schemaPath

schemaInfo.defaultSchema

schemaInfo.useSourceSchema

schemaInfo.DDBPartitionKey

schemaInfo.DDBSortKey

overwrite

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

Eindeutiger Konfigurationsparameter


Tabelle


Compartment


includeTTL


ttlRelativeDate


schemaInfo


schemaInfo.schemaPath

Hinweis: defaultSchema und schemaPath schließen sich gegenseitig aus.


schemaInfo.defaultSchema


schemaInfo.useSourceSchema


schemaInfo.DDBPartitionKey


schemaInfo.DDBSortKey


schemaInfo.onDemandThroughput

Hinweis: Dieser Parameter gilt nicht für untergeordnete Tabellen, da sie den Durchsatz der übergeordneten Tabelle der obersten Ebene gemeinsam verwenden.


schemaInfo.readUnits


schemaInfo.writeUnits


schemaInfo.storageSize


writeUnitsPercent


overwrite

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

IncludeFelder

Das Konfigurationsdateiformat für die includeFields-Transformation wird unten angezeigt.

Transformationskonfigurationsvorlage

"transforms" : {
  "includeFields" : ["<field1>","<field2>",...]
}

Transformationsparameter

IncludeFelder

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

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

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:

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)
group field_name(LIST) { repeated group list { required T element } }
Feldname MAP(T)
group field_name (MAP) { repeated group key_value (MAP_KEY_VALUE) { required binary key (STRING); required T value; } }
field_name RECORD(K1 T1 N1, K ⁇ 2 T2 N2, ....)

Hierbei gilt:

K = Schlüsselname

T = Typ

N = Null möglich oder nicht

group field_name { ni == true ? optional Ti ki : required Ti ki  }
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:

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:

  1. 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.

  2. 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.
  • Prüfen Sie, ob die Werte der Attribute storeName und helperHosts in der JSON-Konfigurationsdatei gültig sind und ob die Hosts erreichbar sind.
  • Prüfen Sie bei einem gesicherten Speicher, ob die Sicherheitsdatei mit den korrekten Werten für Benutzername und Kennwort gültig ist.
Failed to connect to Oracle NoSQL Database Cloud Service Der Migrator konnte keine Verbindung zu Oracle NoSQL Database Cloud Service herstellen.
  • Prüfen Sie, ob die Endpunkt-URL oder der Regionsname, der in der JSON-Konfigurationsdatei angegeben ist, korrekt ist.
  • Prüfen Sie, ob die OCI-Zugangsdatendatei im Pfad verfügbar ist, der in der JSON-Konfigurationsdatei angegeben ist.
  • Stellen Sie sicher, dass die in den OCI-Zugangsdaten angegebenen OCI-Zugangsdaten gültig sind.
Table not found Die für die Migration angegebene Tabelle konnte vom NoSQL-Datenbankmigrator nicht gefunden werden.

Für die Quelle:

  • Prüfen Sie, ob die Tabelle in der Quelldatenbank vorhanden ist.
  • Stellen Sie sicher, dass die Tabelle mit ihrem Namespace in der JSON-Konfigurationsdatei qualifiziert ist, wenn die Tabelle in einem nicht standardmäßigen Namespace erstellt wird.
  • Prüfen Sie, ob Sie über die erforderliche Lese-/Schreibberechtigung für den Zugriff auf die Tabelle verfügen.
  • Wenn die Quelle Oracle NoSQL Database Cloud Service ist, prüfen Sie, ob der gültige Compartment-Name in der JSON-Konfigurationsdatei angegeben ist, und stellen Sie sicher, dass Sie die erforderliche Autorisierung für den Zugriff auf die Tabelle haben.

Für die Spüle:

  • Prüfen Sie, ob die Tabelle im Sink vorhanden ist. Wenn sie nicht vorhanden ist, müssen Sie die Tabelle manuell erstellen oder die Konfiguration schemaInfo verwenden, um sie über die Migration zu erstellen.
DDL Execution failed Die in der Eingabeschemadefinitionsdatei angegebenen DDL-Befehle sind ungültig.
  • Prüfen Sie die Syntax der DDL-Befehle in der Datei schemaPath.
  • Stellen Sie sicher, dass nur eine DDL-Anweisung pro Zeile in der Datei schemaPath vorhanden ist.
failed to write record to the sink table with java.lang.IllegalArgumentException Der Eingabedatensatz stimmt nicht mit dem Tabellenschema der Sink überein.
  • Prüfen Sie, ob die in der Ziel-Sink-Tabelle angegebenen Datentypen und Spaltennamen mit dem Sink-Tabellenschema übereinstimmen.
  • Wenn Sie eine Transformation angewendet haben, prüfen Sie, ob die transformierten Datensätze mit dem Schema der Sink-Tabelle übereinstimmen.
Request timeout Der Quell- oder Sinkvorgang wurde nicht innerhalb der erwarteten Zeit abgeschlossen.
  • Überprüfen Sie die Netzwerkverbindung.
  • Prüfen Sie, ob die NoSQL-Datenbank hochgefahren und gestartet ist.
  • Versuchen Sie, den Wert requestTimeout in der JSON-Konfigurationsdatei zu erhöhen.

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.

Best Practices

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:

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:

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.