Riferimento Migrator di Oracle NoSQL Database

Informazioni sui parametri del modello di configurazione di origine, sink e trasformazione disponibili per Oracle NoSQL Database Migrator.

Questo articolo contiene i seguenti argomenti:

Parametri

NoSQL Database Migrator richiede un file di configurazione in cui definire tutti i parametri per eseguire l'attività di migrazione. Alcuni parametri sono comuni tra diverse fonti e lavandini. Questo argomento fornisce un elenco di questi parametri comuni. Per l'elenco di altri parametri univoci per singole origini o sink, vedere le sezioni del modello di configurazione corrispondenti.

Parametri di configurazione comuni

Di seguito sono riportati i parametri di configurazione comuni. Per esempi, vedere le singole sezioni del modello di configurazione.

secchio

dimensione chunk

credenziali

credentialsProfile

endpoint

formato

spazio di nomi

prefix

requestTimeoutM

sicurezza

tipo

usareDelegationToken

useInstancePrincipal

utilizzareOKEWorkloadIdentity

Per un caso d'uso di esempio, vedere Eseguire la migrazione da OCI Object Storage a Oracle NoSQL Database Cloud Service mediante l'autenticazione OKE.

Nota: è possibile selezionare solo una delle opzioni di autenticazione. Pertanto, specificare solo uno di questi parametri: credenziali, useInstancePrincipal, useDelegationToken, useSessionToken o useOKEWorkloadIdentity nel modello di configurazione.

useSessionToken

Per utilizzare l'autenticazione basata su token di sessione, è necessario generare un token di sessione utilizzando i comandi OCI Command Line Interface (CLI). Per un caso d'uso di esempio, vedere Eseguire la migrazione da Oracle NoSQL Database a OCI Object Storage utilizzando l'autenticazione del token di sessione.

Nota:

Modelli configurazione origine

Informazioni sui formati dei file di configurazione di origine per ogni origine valida e sullo scopo di ciascun parametro di configurazione.

Per il modello di file di configurazione, vedere File di configurazione in Terminologia utilizzata con NoSQL Data Migrator.

Per i dettagli sui formati sink validi per ciascuna origine, vedere Modelli di configurazione del collegamento.

Argomenti

Negli argomenti riportati di seguito vengono descritti i modelli di configurazione di origine a cui fa riferimento Oracle NoSQL Database Migrator per copiare i dati dall'origine specificata in un sink valido.

Origine file JSON

Il formato del file di configurazione per il file JSON come origine di NoSQL Database Migrator è mostrato di seguito.

È possibile eseguire la migrazione di un file di origine JSON specificando il percorso del file o una directory nel modello di configurazione di origine.

Di seguito è riportato un esempio di file di origine JSON.

{"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"}}

Modello configurazione origine

"source": {
  "type": "file",
  "format": "json",
  "dataPath": "<path/to/JSON/[file|dir]>",
  "schemaInfo": {
    "schemaPath": "<path/to/schema/file>"
  }
},

Parametri origine

Parametri di configurazione comuni

Parametri di configurazione univoci

percorso dati

schemaInfo

schemaInfo.schemaPath

File JSON nel bucket di storage degli oggetti OCI

Il formato del file di configurazione per il file JSON nel bucket di storage degli oggetti OCI come origine di NoSQL Database Migrator è mostrato di seguito.

È possibile eseguire la migrazione di un file JSON nel bucket di storage degli oggetti OCI specificando il nome del bucket nel modello di configurazione di origine.

Di seguito è riportato un esempio di file di origine JSON nel bucket di storage degli oggetti OCI.

{"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"}}

Nota: i tipi di sink validi per il tipo di origine dello storage degli oggetti OCI sono nosqldb e nosqldb_cloud.

Modello configurazione origine

"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>
}

Parametri origine

Parametri di configurazione comuni

Parametri di configurazione univoci

schemaInfo

schemaInfo.schemaObject

File JSON formattato MongoDB

Il formato del file di configurazione per il file JSON in formato MongoDB come origine di NoSQL Database Migrator è mostrato di seguito.

È possibile eseguire la migrazione di dati JSON esportati da MongoDB specificando il file o la directory nel modello di configurazione di origine.

MongoDB supporta due tipi di estensioni per il formato JSON dei file: Modalità canonica e Modalità rilassata. È possibile fornire il file JSON in formato MongoDB generato utilizzando lo strumento mongoexport in modalità Canonica o Rilassata. Entrambe le modalità sono supportate da NoSQL Database Migrator per la migrazione.

Per ulteriori informazioni sul file MongoDB Extended JSON (v2), vedere mongoexport_formats.

Per ulteriori informazioni sulla generazione del file JSON in formato MongoDB, vedere mongoexport per ulteriori informazioni.

Di seguito è riportato un esempio di file JSON della modalità rilassata in formato MongoDB.

{"_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"}]}

Modello configurazione origine

"source": {
  "type": "file",
  "format": "mongodb_json",
  "dataPath": "</path/to/json/[file|dir]>",
  "schemaInfo": {
    "schemaPath": "</path/to/schema/file>"
  }
}

Parametri origine

Parametri di configurazione comuni

Parametri di configurazione univoci

percorso dati

schemaInfo

schemaInfo.schemaPath

File JSON formattato MongoDB nel bucket di storage degli oggetti OCI

Il formato del file di configurazione per il file JSON formattato MongoDB nel bucket di storage degli oggetti OCI come origine di NoSQL Database Migrator è mostrato di seguito.

È possibile eseguire la migrazione dei dati JSON esportati MongoDB nel bucket di storage degli oggetti OCI specificando il nome del bucket nel modello di configurazione di origine.

Estrarre i dati da MongoDB utilizzando la utility mongoexport e caricarli nel bucket di storage degli oggetti OCI. Per ulteriori informazioni, vedere mongoexport. MongoDB supporta due tipi di estensioni per il formato JSON dei file: Modalità canonica e Modalità rilassata. Entrambi i formati sono supportati nel bucket di OCI Object Storage.

Di seguito è riportato un esempio di file JSON in modalità Relaxed Mode in formato MongoDB.

{"_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"}]}

Nota: i tipi di sink validi per il tipo di origine dello storage degli oggetti OCI sono nosqldb e nosqldb_cloud.

Modello configurazione origine

"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>
}

Parametri origine

Parametri di configurazione comuni

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

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

Parametri di configurazione univoci

schemaInfo

schemaInfo.schemaObject

File JSON formattato DynamoDB memorizzato in AWS S3

Il formato del file di configurazione per il file JSON in formato DynamoDB in AWS S3 come origine di NoSQL Database Migrator è mostrato di seguito.

È possibile eseguire la migrazione di un file contenente i dati JSON esportati da DynamoDB dallo storage S3 AWS specificando il percorso nel modello di configurazione di origine.

Di seguito è riportato un esempio di file JSON in formato DynamoDB.

{"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"}}}

È necessario esportare la tabella DynamoDB nello storage S3 AWS, come specificato in Esportazione dei dati della tabella DynamoDB in Amazon S3.

I tipi di sink validi per JSON in formato DynamoDB memorizzato in AWS S3 sono nosqldb e nosqldb_cloud.

Modello configurazione origine

"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>"
}

Parametri origine

Parametri di configurazione comuni

Parametri di configurazione univoci

s3URL

credenziali

credentialsProfile

ttlAttributeName

File JSON formattato DynamoDB

Il formato del file di configurazione per il file JSON in formato DynamoDB come origine di NoSQL Database Migrator è mostrato di seguito.

È possibile eseguire la migrazione di un file o di una directory contenente i dati JSON esportati da DynamoDB da un file system specificando il percorso nel modello di configurazione di origine.

Di seguito è riportato un esempio di file JSON in formato DynamoDB.

{"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"}}}

È necessario copiare i dati della tabella DynamoDB esportati dallo storage S3 AWS in un file system con MOUNT locale.

I tipi di sink validi per il file JSON DynamoDB sono nosqldb e nosqldb_cloud.

Modello configurazione origine

"source" : {
  "type" : "file",
  "format" : "dynamodb_json",
  "ttlAttributeName" : <DynamoDB exported TTL attribute name>,
  "dataPath" : "<path/to/[file|dir]/containing/exported/DDB/tabledata>"
}

Parametri origine

Parametri di configurazione comuni

Parametro di configurazione univoco

percorso dati

ttlAttributeName

Oracle NoSQL Database

Il formato del file di configurazione per Oracle NoSQL Database come origine di NoSQL Database Migrator è illustrato di seguito.

È possibile eseguire la migrazione di una tabella da Oracle NoSQL Database specificando il nome della tabella nel modello di configurazione di origine.

Di seguito è riportata una tabella di esempio di Oracle NoSQL Database.

{"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}

Modello configurazione origine

"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
}

Parametri origine

Parametro di configurazione comune

Parametri di configurazione univoci

nomearea di memorizzazione

helperHost

tabella

includeTTL

Filtro query

Espressioni supportate:

La utility Migrator supporta le espressioni seguenti nel predicato query. Per sintassi ed esempi dettagliati, vedere 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

Nella tabella seguente vengono forniti esempi di predicati query validi per espressioni diverse e dati esportati risultanti.

Nota:

Tabella - Predicati query di esempio

Query/predicato Dati esportati
"id=10" Righe della tabella specificata con id=10.
"nome='Giovanni'" Righe della tabella specificata con nome = 'John'.
"età>30 anni e sesso='maschio'" Righe della tabella specificata con age maggiore di 30 e gender = 'maschio'.
"$row.address.state = 'CA'" Righe dalla tabella specificata con il campo state nella colonna JSON address = 'CA'. Qui è possibile utilizzare un'espressione passo campo nel predicato per accedere al valore di campo obbligatorio da un campo JSON.
"$row.expenses.keys($value > 1000) = 'cibo'" Righe della tabella specificata in cui la categoria expenses = "alimento" e l'importo expenses è maggiore di 1000. Qui è possibile utilizzare un'espressione passo filtro-mappa per selezionare i nomi dei campi (chiavi) o i valori dei campi dei campi mappa/record.
"$row.expenses.keys($value > $.clothes) = 'cibo'" Righe della tabella specificata in cui la categoria expenses = "alimento" e l'importo di expenses è superiore alla spesa per clothes.
"[$row.address.phones[$element.area = 650].kind] = 'lavoro'" Righe dalla tabella specificata in cui il prefisso del telefono nell'array è = 650 e tipo = 'lavoro'. Qui è possibile utilizzare l'espressione passo filtro-array poiché il campo address è un array JSON.
"[Connessioni[$elemento > 100 e $pos < 10]] > 100" Righe dalla tabella specificata con massimo 10 connessioni e numero di connessioni > 100. In questa sezione è possibile utilizzare un'espressione passo filtro-array poiché il campo connections è un array.
"$row.income IS NULL" Righe dalla tabella specificata che non hanno un reddito noto. Per ulteriori dettagli, vedere Operatori IS NULL e IS NOT NULL.
"a in (1, 5, 4)" Righe della tabella specificata in cui a è 1, 5 o 4. Per maggiori dettagli, vedere IN Operator.
"(a, b) in (1, 'a'), (5, 'g'), (4, 't)" Righe della tabella specificata in cui (a è 1 e b è 'a') OPPURE (a è 5 e b è 'g') OPPURE (a è 4 e b è 't').
"regex_like(nome, 'j.*')" Righe della tabella specificata il cui nome inizia con j. Per ulteriori informazioni, vedere Espressioni regolari.
"ESISTE $row.person.address.zipcode" Righe della tabella specificata in cui la colonna json person contiene zipcode nell'indirizzo. Per ulteriori informazioni, vedere Operatore esistente.
"$row.address è di tipo (stringa)" Righe della tabella specificata in cui la colonna address è di tipo stringa. Per ulteriori dettagli, vedere Operatore Is-Of-Type.
"lastLogin > CAST('2022-10-01' COME TIMESTAMP)" Righe dalla tabella specificata con ultimo login dopo il 1° ottobre 2022. Per maggiori dettagli, vedere Cast Expressions.
"$row.connections[ ]=qualsiasi 1" Righe della tabella specificata la cui colonna array connections contiene l'elemento 1. Per ulteriori dettagli, vedere Operatori di confronto sequenze.
"modification_time($row) >= 2022-10-01'' Righe dalla tabella specificata che vengono modificate il 1° ottobre 2022 o successivamente. Per ulteriori dettagli, vedere Funzioni sulle righe.
"expiration_time_millis($row) > 0" Righe dalla tabella specificata non scadute. Per ulteriori dettagli, vedere Funzioni sulle righe.

Oracle NoSQL Database Cloud Service

Il formato del file di configurazione per Oracle NoSQL Database Cloud Service come origine di NoSQL Database Migrator è illustrato di seguito.

È possibile eseguire la migrazione di una tabella da Oracle NoSQL Database Cloud Service specificando il nome o l'OCID del compartimento in cui risiede la tabella nel modello di configurazione di origine.

Di seguito è riportata una tabella di esempio di Oracle NoSQL Database Cloud Service.

{"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}

Modello configurazione origine

"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>
}

Parametri origine

Parametri di configurazione comuni

Parametri di configurazione univoci

tabella

compartimento

Nota: se il parametro useInstancePrincipal è impostato su true, il compartimento deve specificare l'OCID del compartimento e non il nome.

readUnitsPercentuale

includeTTL

Filtro query

Espressioni supportate:

La utility Migrator supporta le espressioni seguenti nel predicato query. Per sintassi ed esempi dettagliati, vedere 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

Nella tabella seguente vengono forniti esempi di predicati query validi per espressioni diverse e dati esportati risultanti.

Nota:

Tabella - Predicati query di esempio

Query/predicato Dati esportati
"id=10" Righe della tabella specificata con ID = 10.
"nome='Giovanni'" Righe della tabella specificata con nome = 'John'.
"età>30 anni e sesso='maschio'" Righe della tabella specificata con age maggiore di 30 e gender = 'maschio'.
"$row.address.state = 'CA'" Righe dalla tabella specificata con il campo state nella colonna JSON address = 'CA'. Qui è possibile utilizzare un'espressione passo campo nel predicato per accedere al valore di campo obbligatorio da un campo JSON.
"$row.expenses.keys($value > 1000) = 'cibo'" Righe della tabella specificata in cui la categoria expenses = "alimento" e l'importo expenses è maggiore di 1000. Qui è possibile utilizzare un'espressione passo filtro-mappa per selezionare i nomi dei campi (chiavi) o i valori dei campi dei campi mappa/record.
"$row.expenses.keys($value > $.clothes) = 'cibo'" Righe della tabella specificata in cui la categoria expenses = "alimento" e l'importo di expenses è superiore alla spesa per clothes.
"[$row.address.phones[$element.area = 650].kind] = 'lavoro'" Righe dalla tabella specificata in cui il prefisso del telefono nell'array è = 650 e tipo = 'lavoro'. Qui è possibile utilizzare l'espressione passo filtro-array poiché il campo address è un array JSON.
"[Connessioni[$elemento > 100 e $pos < 10]] > 100" Righe dalla tabella specificata con massimo 10 connessioni e numero di connessioni > 100. In questa sezione è possibile utilizzare un'espressione passo filtro-array poiché il campo connections è un array.
"$row.income IS NULL" Righe dalla tabella specificata che non hanno un reddito noto. Per ulteriori dettagli, vedere Operatori IS NULL e IS NOT NULL.
"a in (1, 5, 4)" Righe della tabella specificata in cui a è 1, 5 o 4. Per maggiori dettagli, vedere IN Operator.
"(a, b) in (1, 'a'), (5, 'g'), (4, 't)" Righe della tabella specificata in cui (a è 1 e b è 'a') OPPURE (a è 5 e b è 'g') OPPURE (a è 4 e b è 't').
"regex_like(nome, 'j.*')" Righe della tabella specificata il cui nome inizia con j. Per ulteriori dettagli, vedere Espressioni regolari.
"ESISTE $row.person.address.zipcode" Righe della tabella specificata in cui la colonna json person contiene zipcode nell'indirizzo. Per ulteriori informazioni, vedere Operatore esistente.
"$row.address è di tipo (stringa)" Righe della tabella specificata in cui la colonna address è di tipo stringa. Per ulteriori dettagli, vedere Operatore Is-Of-Type.
"lastLogin > CAST('2022-10-01' COME TIMESTAMP)" Righe dalla tabella specificata con ultimo login dopo il 1° ottobre 2022. Per maggiori dettagli, vedere Cast Expressions.
"$row.connections[ ]=qualsiasi 1" Righe della tabella specificata la cui colonna array connections contiene l'elemento 1. Per ulteriori dettagli, vedere Operatori di confronto sequenze.
"modification_time($row) >= 2022-10-01'' Righe dalla tabella specificata che vengono modificate il 1° ottobre 2022 o successivamente. Per ulteriori dettagli, vedere Funzioni sulle righe.
"expiration_time_millis($row) > 0" Righe dalla tabella specificata non scadute. Per ulteriori dettagli, vedere Funzioni sulle righe.

Origine file CSV

Il formato del file di configurazione per il file CSV come origine di NoSQL Database Migrator è mostrato di seguito. Il file CSV deve essere conforme al formato RFC4180.

È possibile eseguire la migrazione di un file CSV o di una directory contenente i dati CSV specificando il nome o la directory del file nel modello di configurazione di origine.

Di seguito è riportato un esempio di file CSV.

1,"Computer Science","San Francisco","2500"
2,"Bio-Technology","Los Angeles","1200"
3,"Journalism","Las Vegas","1500"
4,"Telecommunication","San Francisco","2500"

Modello configurazione origine

"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>"
 }
}

Parametri origine

Parametri di configurazione comuni

Parametri di configurazione univoci

percorso dati

Nota: i file CSV devono contenere solo valori scalari. L'importazione di file CSV contenenti tipi complessi quali MAP, RECORD, ARRAY e JSON non è supportata. Lo strumento NoSQL Database Migrator non controlla la correttezza dei dati nel file CSV di input. Lo strumento NoSQL Database Migrator supporta l'importazione di dati CSV conformi al formato RFC4180. I file CSV contenenti dati non conformi allo standard RFC4180 potrebbero non essere stati copiati correttamente o potrebbero generare un errore. Se i dati di input sono danneggiati, lo strumento NoSQL Database Migrator non analizzerà i record CSV. Se si verificano errori durante la migrazione, lo strumento NoSQL Database Migrator registra le informazioni sui record di input non riusciti a scopo di debug e informativo. Per ulteriori dettagli, vedere Avanzamento migrazione log in Utilizzo di Oracle NoSQL Data Migrator .

hasHeader

colonne

opzioni CSV

csvOptions.encoding

csvOptions.trim

File CSV nel bucket di storage degli oggetti OCI

Il formato del file di configurazione per il file CSV nel bucket di storage degli oggetti OCI come origine di NoSQL Database Migrator è mostrato di seguito. Il file CSV deve essere conforme al formato RFC4180.

È possibile eseguire la migrazione di un file CSV nel bucket di storage degli oggetti OCI specificando il nome del bucket nel modello di configurazione di origine.

Di seguito è riportato un esempio di file CSV nel bucket di storage degli oggetti OCI.

1,"Computer Science","San Francisco","2500"
2,"Bio-Technology","Los Angeles","1200"
3,"Journalism","Las Vegas","1500"
4,"Telecommunication","San Francisco","2500"

Nota: i tipi di sink validi per il tipo di origine dello storage degli oggetti OCI sono nosqldb e nosqldb_cloud.

Modello configurazione origine

"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>
   }
 }

Parametri origine

Parametri di configurazione comuni

Parametri di configurazione univoci

hasHeader

colonne

opzioni CSV

csvOptions.encoding

csvOptions.trim

Modelli di configurazione del lavandino

Informazioni sui formati dei file di configurazione del sink per ogni sink valido e sullo scopo di ogni parametro di configurazione.

Per il modello di file di configurazione, vedere File di configurazione in Terminologia utilizzata con NoSQL Data Migrator.

Per informazioni dettagliate sui formati di origine validi per ciascun sink, vedere Modelli di configurazione di origine.

Argomenti

Negli argomenti riportati di seguito vengono descritti i modelli di configurazione sink a cui fa riferimento Oracle NoSQL Database Migrator per copiare i dati da un'origine valida al sink specificato.

Lavello file JSON

Il formato del file di configurazione per il file JSON come sink di NoSQL Database Migrator è mostrato di seguito.

Modello configurazione lavello

"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>
}

Parametri lavandino

Parametri di configurazione comuni

Parametri di configurazione univoci

percorso dati

schemaPath

pretty

useMultiFiles

File parquet

Il formato del file di configurazione per Parquet File come sink di NoSQL Database Migrator è mostrato di seguito.

Modello configurazione lavello

"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>
  }
}

Parametri lavandino

Parametri di configurazione comuni

Parametri di configurazione univoci

percorso dati

compressione

Opzioni parquet

parquetOptions.useLogicalJson

parquetOptions.useLogicalEnum

parquetOptions.useLogicalUUID

parquetOptions.truncateDoubleSpecials

File JSON nel bucket di storage degli oggetti OCI

Il formato del file di configurazione per il file JSON nel bucket di storage degli oggetti OCI come sink di NoSQL Database Migrator è mostrato di seguito.

Nota: i tipi di origine validi per OCI Object Storage come sink sono nosqldb e nosqldb_cloud.

Modello configurazione lavello

"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>
}

Parametri lavandino

Parametri di configurazione comuni

Parametro di configurazione univoco

pretty

File parquet nel bucket di storage degli oggetti OCI

Il formato del file di configurazione per il file Parquet nel bucket di OCI Object Storage come sink di NoSQL Database Migrator è mostrato di seguito.

Nota: i tipi di origine validi per il tipo di origine dello storage degli oggetti OCI sono nosqldb e nosqldb_cloud.

Modello configurazione lavello

"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>
}

Parametri lavandino

Parametri di configurazione comuni

Parametro di configurazione univoco

compressione

Opzioni parquet

parquetOptions.useLogicalJson

parquetOptions.useLogicalEnum

parquetOptions.useLogicalUUID

parquetOptions.truncateDoubleSpecials

Oracle NoSQL Database

Il formato del file di configurazione per Oracle NoSQL Database come sink di NoSQL Database Migrator è mostrato di seguito.

Modello configurazione lavello

"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>
}

Parametri lavandino

Parametro di configurazione comune

Parametro di configurazione univoco

nomearea di memorizzazione

helperHost

tabella

includeTTL

ttlRelativeDate

schemainfo

schemaInfo.schemaPath

schemaInfo.defaultSchema

schemaInfo.useSourceSchema

schemaInfo.DDBPartitionKey

schemaInfo.DDBSortKey

overwrite

Oracle NoSQL Database Cloud Service

Il formato del file di configurazione per Oracle NoSQL Database Cloud Service come sink di NoSQL Database Migrator è mostrato di seguito.

Modello configurazione lavello

"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>
}

Parametri lavandino

Parametri di configurazione comuni

Parametro di configurazione univoco


tabella


compartimento


includeTTL


ttlRelativeDate


schemaInfo


schemaInfo.schemaPath

Nota: defaultSchema e schemaPath si escludono a vicenda.


schemaInfo.defaultSchema


schemaInfo.useSourceSchema


schemaInfo.DDBPartitionKey


schemaInfo.DDBSortKey


schemaInfo.onDemandThroughput

Nota: questo parametro non è applicabile alle tabelle figlio in quanto condividono il throughput della tabella padre di livello superiore.


schemaInfo.readUnits


schemaInfo.writeUnits


schemaInfo.storageSize


writeUnitsPercentuale


overwrite

Modelli di configurazione trasformazione

In questo argomento vengono descritti i parametri di configurazione per le diverse trasformazioni supportate da Oracle NoSQL Database Migrator. Per il modello di file di configurazione completo, vedere File di configurazione in Terminologia utilizzata con NoSQL Data Migrator.

Oracle NoSQL Database Migrator ti consente di modificare i dati, ovvero di aggiungere trasformazioni dei dati nell'ambito dell'attività di migrazione. È possibile definire più trasformazioni in una singola migrazione. In tal caso, l'ordine delle trasformazioni è vitale perché i dati di origine subiscono ogni trasformazione nell'ordine specificato. L'output di una trasformazione diventa l'input per il successivo nella pipeline del migratore.

Le diverse trasformazioni supportate da NoSQL Data Migrator sono:

Tabella - Trasformazioni

Attributo configurazione trasformazione È possibile utilizzare questa trasformazione per...
ignoreFields Ignorare le colonne identificate dalla riga di origine prima di scrivere nel sink.
includeFields Includere le colonne identificate dalla riga di origine prima di scrivere nel sink.
renameFields Rinominare le colonne identificate dalla riga di origine prima di scrivere nel sink.
aggregateFields Aggrega più colonne dall'origine in una singola colonna nel sink. Nell'ambito di questa trasformazione, è inoltre possibile identificare le colonne che si desidera escludere nell'aggregazione. Questi campi verranno ignorati dalla colonna aggregata.

Il modello di configurazione per ogni trasformazione supportata è disponibile di seguito.

ignora campi

Il formato del file di configurazione per la trasformazione ignoreFields è mostrato di seguito.

Modello configurazione trasformazione

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

Parametro trasformazione

ignora campi

includeCampi

Il formato del file di configurazione per la trasformazione includeFields è mostrato di seguito.

Modello configurazione trasformazione

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

Parametro trasformazione

includeCampi

renameCampi

Il formato del file di configurazione per la trasformazione renameFields è mostrato di seguito.

Modello configurazione trasformazione

"transforms" : {
  "renameFields" : {
    "<old_name>" : "<new_name>",
    "<old_name>" : "<new_name>,"
    .....
  }
}

Parametro trasformazione

renameCampi

aggregatiCampi

Il formato del file di configurazione per la trasformazione aggregateFields è mostrato di seguito.

Modello configurazione trasformazione

"transforms" : {
  "aggregateFields" : {
    "fieldName" : "name of the new aggregate field",
    "skipFields" : ["<field1>","<field2">,...]
  }
}

Parametro trasformazione

aggregatiCampi

Mapping dei tipi DynamoDB ai tipi NoSQL Oracle

La tabella riportata di seguito mostra il mapping dei tipi DynamoDB ai tipi Oracle NoSQL.

Tabella - Mapping del tipo DynamoDB al tipo Oracle NoSQL

# Tipo DynamoDB Tipo JSON per la colonna JSON NoSQL Tipo Oracle NoSQL
1 Stringa (S) Stringa JSON STRING
2 Tipo di numero (N) Numero JSON NUMERO INTERO/LUNGO/FLOAT/DOPPIO/NUMERO
3 Booleano (BOOL) Booleano JSON BOOLEAN
4 Tipo binario (B) - Byte buffer Stringa JSON con codifica BASE-64 BINARIO
5 NULL JSON nullo NULL
6 Set di stringhe (SS) Array JSON di corde ARRAY (STRINGA)
7 Insieme di numeri (NS) Array di dati JSON dei numeri ARRAY (INTERO/LUNGO/FLOAT/DOPPIO/NUMERO)
8 Set binario (BS) Array JSON di stringhe con codifica Base-64 ARRAY (BINARIO)
9 ELENCO (L) Array di JSON ARRAY (JSON)
10 MAPPA (M) Oggetto JSON JSON
11 CHIAVE DI PARTIZIONAMENTO ND CHIAVE PRIMARIA E CHIAVE DURATA
12 CHIAVE DI ORDINAMENTO ND PRIMARY KEY
13 Nomi attributo con trattino e punto Nomi dei campi JSON con un carattere di sottolineatura Nomi di colonna con carattere di sottolineatura

Pochi punti aggiuntivi da considerare durante il mapping dei tipi DynamoDB ai tipi Oracle NoSQL:

Mapping tra Oracle NoSQL e tipo di dati Parquet

Descrive il mapping dei tipi di dati Oracle NoSQL ai tipi di dati Parquet.

Tipo NoSQL Tipo di parquet
BOOLEAN BOOLEAN
INTEGER INT32
LONG INT64
FLOAT DOPPIO
DOPPIO DOPPIO
BINARIO BINARIO
FILE BINARIO_FISSO BINARIO
STRING BINARIO (STRINGA)
ENUM BINARIO (STRINGA)

o

BINARY(ENUM), se ENUM logico è configurato

UUID BINARIO (STRINGA)

o

FIXED_BINARY(16), se l'UUID logico è configurato

TIMESTAMP(p) INT64(TIMESTAMP(p))
NUMBER DOPPIO
nome_campo ARRAY(T)
group field_name(LIST) { repeated group list { required T element } }
MAP(T) nome_campo
group field_name (MAP) { repeated group key_value (MAP_KEY_VALUE) { required binary key (STRING); required T value; } }
campo_nome RECORD(K1 T1 N1, K ⁇ 2 T2 N2, ....)

dove:

K = Nome chiave

T = Tipo

N = annullabile o no

group field_name { ni == true ? optional Ti ki : required Ti ki  }
JSON BINARIO (STRINGA)

o

BINARY(JSON), se è configurato JSON logico

Nota: quando il tipo di numero NoSQL viene convertito in tipo Parquet doppio, potrebbe verificarsi una perdita di precisione nel caso in cui il valore non possa essere rappresentato in Doppio. Se il numero è troppo grande per essere rappresentato come Doppio, viene convertito in Double.NEGATIVE_INFINITY o Double.POSITIVE_INFINITY.

Mapping della tabella DynamoDB alla tabella Oracle NoSQL

In DynamoDB, una tabella è una raccolta di elementi e ogni elemento è una raccolta di attributi. Ogni elemento della tabella ha un identificativo univoco o una chiave primaria. Oltre alla chiave primaria, la tabella è priva di schema. Ogni elemento può avere i propri attributi distinti.

DynamoDB supporta due tipi diversi di chiavi primarie:

Al contrario, le tabelle Oracle NoSQL supportano modelli di dati flessibili con una progettazione senza schemi e senza schemi.

Esistono due modi diversi di modellare una tabella DynamoDB:

  1. Modellazione della tabella DynamoDB come documento JSON (consigliato): in questa modellazione è possibile mappare tutti gli attributi delle tabelle Dynamo DB in una colonna JSON della tabella NoSQL ad eccezione della chiave di partizione e della chiave di ordinamento. La chiave di partizione e la chiave di ordinamento verranno modellate come colonne di chiave primaria della tabella NoSQL. Verrà utilizzata la trasformazione AggregateFields per aggregare i dati della chiave non primaria in una colonna JSON.

    Nota: Migrator fornisce una configurazione intuitiva defaultSchema per creare automaticamente una tabella DDL priva di schema che aggrega anche gli attributi in una colonna JSON.

  2. Modellazione della tabella DynamoDB come colonne fisse nella tabella NoSQL: in questa modellazione, per ogni attributo della tabella DynamoDB, verrà creata una colonna nella tabella NoSQL come specificato nella Mappatura dei tipi DynamoDB ai tipi Oracle NoSQL. Si modelleranno la chiave di partizione e si ordineranno gli attributi chiave come chiavi primarie. Questa operazione deve essere utilizzata solo se si è certi che l'importazione dello schema della tabella DynamoDB sia fissa e che ogni elemento contenga valori per la maggior parte degli attributi. Se gli elementi DynamoDB non dispongono di attributi comuni, ciò può causare la presenza di molte colonne NoSQL con valori vuoti.

    Nota: si consiglia di utilizzare tabelle prive di schema durante la migrazione dei dati da DynamoDB a Oracle NoSQL Database a causa della natura delle tabelle DynamoDB prive di schema. Si tratta in particolare di tabelle di grandi dimensioni in cui il contenuto di ciascun record potrebbe non essere uniforme in tutta la tabella.

Risoluzione dei problemi di Oracle NoSQL Database Migrator

Informazioni sulle sfide generali che è possibile affrontare durante l'utilizzo di , e su come risolverle.

Migrazione non riuscita. Come posso risolvere questo problema?

Un errore della migrazione dei dati può essere dovuto a più motivi di base. Le cause importanti sono elencate di seguito:

Tabella - Cause errore migrazione

Messaggio di errore Significato Risoluzione
Failed to connect to Oracle NoSQL Database Il migratore non è riuscito a stabilire una connessione con il database NoSQL.
  • Verificare se i valori degli attributi storeName e helperHosts nel file JSON di configurazione sono validi e che gli host siano raggiungibili.
  • Per un'area di memorizzazione protetta, verificare se il file di sicurezza è valido con i valori corretti per nome utente e password.
Failed to connect to Oracle NoSQL Database Cloud Service Il migratore non è riuscito a stabilire una connessione a Oracle NoSQL Database Cloud Service.
  • Verificare se l'URL dell'endpoint o il nome dell'area specificati nel file JSON di configurazione è corretto.
  • Controllare se il file delle credenziali OCI è disponibile nel percorso specificato nel file JSON di configurazione.
  • Assicurarsi che le credenziali OCI fornite nelle credenziali OCI siano valide.
Table not found La tabella identificata per la migrazione non può essere individuata da NoSQL Database Migrator.

Per la fonte:

  • Verificare se la tabella è presente nel database di origine.
  • Assicurarsi che la tabella sia qualificata con il relativo spazio di nomi nel file JSON di configurazione, se la tabella viene creata in uno spazio di nomi non predefinito.
  • Verificare di disporre dell'autorizzazione di lettura/scrittura necessaria per accedere alla tabella.
  • Se l'origine è Oracle NoSQL Database Cloud Service, verificare se il nome del compartimento valido è specificato nel file JSON di configurazione e assicurarsi di disporre dell'autorizzazione necessaria per accedere alla tabella.

Per il lavandino:

  • Verificare se la tabella è presente nel lavandino. Se non esiste, è necessario creare la tabella manualmente oppure utilizzare la configurazione schemaInfo per crearla tramite la migrazione.
DDL Execution failed I comandi DDL forniti nel file di definizione dello schema di input non sono validi.
  • Controllare la sintassi dei comandi DDL nel file schemaPath.
  • Assicurarsi che nel file schemaPath sia presente una sola istruzione DDL per riga.
failed to write record to the sink table with java.lang.IllegalArgumentException Il record di input non corrisponde allo schema di tabella del sink.
  • Controllare se i tipi di dati e i nomi di colonna specificati nella tabella sink di destinazione corrispondono allo schema della tabella sink.
  • Se è stata applicata una trasformazione qualsiasi, verificare se i record trasformati corrispondono allo schema della tabella sink.
Request timeout L'operazione dell'origine o del sink non è stata completata entro il tempo previsto.
  • Verificare il collegamento di rete.
  • Controllare se il database NoSQL è attivo e in esecuzione.
  • Provare ad aumentare il valore requestTimeout nel file JSON di configurazione.

Cosa devo considerare prima di riavviare una migrazione non riuscita?

Quando un task di migrazione dei dati non riesce, il sink si troverà in uno stato intermedio contenente i dati importati fino al punto di errore. È possibile identificare i dettagli degli errori e degli errori dai log e riavviare la migrazione dopo aver diagnosticato e corretto l'errore. Inizia una migrazione riavviata, elaborando tutti i dati dall'inizio. Non è possibile eseguire il checkpoint e riavviare la migrazione dal punto di errore. Pertanto, NoSQL Database Migrator sovrascrive qualsiasi record di cui è stata già eseguita la migrazione nel sink.

Procedure ottimali

Il tempo impiegato per la migrazione dei dati dipende da più fattori, ad esempio il volume dei dati di cui si esegue la migrazione, la velocità della rete e il carico corrente sul database. Nel caso di un servizio cloud, la velocità di migrazione dipende anche dal throughput di lettura e dal throughput di scrittura di cui è stato eseguito il provisioning. Pertanto, per migliorare la velocità di migrazione, è possibile:

La utility Migrator è intrinsecamente progettata per ottenere una maggiore velocità di migrazione elaborando più flussi in parallelo. I seguenti punti suggeriscono come sfruttare questa funzionalità per vari scenari di migrazione:

Ho una migrazione a lungo termine che coinvolge enormi set di dati. Come posso tenere traccia dell'avanzamento della migrazione?

È possibile abilitare la registrazione aggiuntiva per tenere traccia dello stato di avanzamento di una migrazione con tempi di esecuzione lunghi. Per controllare il funzionamento del log di Oracle NoSQL Database Migrator, è necessario impostare il livello di login desiderato nel file logging.properties. Questo file viene fornito con il package NoSQL Database Migrator e disponibile nella directory in cui è stato decompresso Oracle NoSQL Database Migrator. I diversi livelli di log nell'ordine di aumentare il livello di dettaglio sono OFF, SEVERE, WARNING, INFO, FINE, e ALL.

L'impostazione del livello di log su OFF disattiva tutte le informazioni di log, mentre l'impostazione del livello di log su ALL fornisce le informazioni di log complete.

Il livello di log predefinito è WARNING. Per impostazione predefinita, tutto l'output di log è configurato per passare alla console.

È possibile visualizzare i commenti nel file logging.properties per conoscere ogni livello di log.