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.
-
Scopo: specifica il nome del bucket di storage degli oggetti OCI, che contiene gli oggetti di origine o di collegamento.
Assicurarsi che il bucket richiesto esista già nell'istanza di storage degli oggetti OCI e disponga delle autorizzazioni di lettura/scrittura.
-
Stringa Tipo di dati:
-
Obbligatorio (S/N): Y
-
Scopo: specifica la dimensione massima di un
chunkdi dati di tabella da memorizzare nel sink. Il valore è espresso in MB. Durante la migrazione, una tabella viene suddivisa in chunkchunkSizee ogni chunk viene scritto come file separato nel sink. Viene creato un nuovo file quando i dati di origine di cui viene eseguita la migrazione superano il valorechunkSize.Se non specificato, il valore predefinito è 32 MB. Il valore valido è un numero intero compreso tra 1 e 1024.
Per informazioni dettagliate su come migliorare la velocità di migrazione utilizzando il parametro
chunkSize, vedere Best practice. -
Tipo di dati: numero intero
-
Obbligatorio (S/N): N
-
Scopo: specifica il percorso assoluto di un file contenente le credenziali OCI. NoSQL Database Migrator utilizza questo file per connettersi al servizio OCI, ad esempio Oracle NoSQL Database Cloud Service, OCI Object Storage e così via.
Il valore predefinito è
$HOME/.oci/configVedere Configurazione di esempio o un esempio di file delle credenziali.
Nota: è possibile selezionare solo una delle opzioni di autenticazione. Pertanto, specificare solo uno di questi parametri:
credentials, useDelegationToken, useSessionToken o useOKEWorkloadIdentity nel modello di configurazione. -
Stringa Tipo di dati:
-
Obbligatorio (S/N): N
-
Scopo: specifica il nome del profilo di configurazione da utilizzare per connettersi al servizio OCI, ad esempio Oracle NoSQL Database Cloud Service, OCI Object Storage e così via. Le credenziali dell'account utente vengono definite profilo.
Se non si specifica questo valore, NoSQL Database Migrator utilizza il profilo
DEFAULT.Nota: questo parametro è valido solo se è stato specificato il parametro credentials.
-
Stringa Tipo di dati:
-
Obbligatorio (S/N): N
-
Scopo: specifica una delle seguenti opzioni:
-
URL dell'endpoint del servizio o ID area per il servizio di storage degli oggetti OCI. Per la lista degli endpoint del servizio di storage degli oggetti OCI, vedere Endpoint di storage degli oggetti
-
L'URL dell'endpoint del servizio o l'ID area per Oracle NoSQL Database Cloud Service. È possibile specificare solo l'URL completo o l'ID area. Per la lista delle aree dati supportate per Oracle NoSQL Database Cloud Service, vedere Aree dati e URL del servizio associato nel documento Oracle NoSQL Database Cloud Service.
-
-
Stringa Tipo di dati:
-
Obbligatorio (S/N): Y
-
Scopo: specifica il formato di origine o di collegamento.
-
Stringa Tipo di dati:
-
Obbligatorio (S/N): Y
-
Scopo: specifica lo spazio di nomi del servizio di storage degli oggetti OCI. Questo è un parametro facoltativo. Se non si specifica questo parametro, la utility Migrator utilizza lo spazio di nomi assegnato alla tenancy.
Ad esempio, il parametro dello spazio di nomi è utile quando si desidera utilizzare un sistema operativo OCI da una tenancy diversa dal proprio. In questi casi, lo spazio di nomi della tenancy del sistema operativo OCI è diverso dallo spazio di nomi della tenancy. Durante la migrazione, la utility Migrator utilizza per impostazione predefinita lo spazio di nomi della tenancy, a meno che non sia specificato diversamente. Pertanto, per indirizzare la utility Migrator a scegliere lo spazio di nomi della tenancy del sistema operativo OCI, è necessario specificare il nome della tenancy del sistema operativo OCI nel parametro dello spazio di nomi.
-
Stringa Tipo di dati:
-
Obbligatorio (S/N): N
-
Scopo: il prefisso funge da contenitore o directory logica per la memorizzazione dei dati nel bucket dello storage degli oggetti OCI.
-
Modello di configurazione di origine: se il parametro
prefixspecificato, viene eseguita la migrazione di tutti gli oggetti della directory denominata nel parametroprefix. In caso contrario, viene eseguita la migrazione di tutti gli oggetti presenti nel bucket. -
Modello di configurazione del lavandino: se viene specificato il parametro
prefix, viene creata una directory con il prefisso specificato nel bucket e gli oggetti vengono migrati in questa directory. In caso contrario, il nome della tabella dall'origine viene utilizzato come prefisso. Se nel bucket esiste già un oggetto con lo stesso nome, viene sovrascritto.
Per ulteriori informazioni sui prefissi, vedere Denominazione degli oggetti mediante prefissi e gerarchie.
-
-
Stringa Tipo di dati:
-
Obbligatorio (S/N): N
-
Scopo: specifica il tempo di attesa per il completamento di ogni operazione di lettura/scrittura dall'area di memorizzazione. Questo valore viene fornito in millisecondi. Il valore predefinito è 5000. Il valore può essere qualsiasi numero intero positivo.
-
Tipo di dati: numero intero
-
Obbligatorio (S/N): N
-
Scopo: specifica il percorso assoluto del file di login di sicurezza che contiene le credenziali dell'area di memorizzazione se l'area di memorizzazione è un'area di memorizzazione sicura. Per ulteriori informazioni sul file di login della sicurezza, vedere Esecuzione di un'installazione sicura di Oracle NoSQL Database.
È possibile utilizzare l'autenticazione basata su file di password o l'autenticazione basata su wallet. Tuttavia, l'autenticazione basata su wallet è supportata solo nella Enterprise Edition (EE) di Oracle NoSQL Database. Per ulteriori informazioni sull'autenticazione basata su wallet, vedere Sicurezza origine e lavandino.
L'edizione Community Edition(CE) supporta solo l'autenticazione basata su file di password.
-
Stringa Tipo di dati:
-
Obbligatorio (S/N): Y, per un negozio sicuro
-
Scopo: identifica il tipo di origine o di collegamento.
-
Stringa Tipo di dati:
-
Obbligatorio (S/N): Y
-
Scopo: specifica se lo strumento Migrazione database NoSQL utilizza o meno un'autenticazione token delega per connettersi ai servizi OCI. È necessario utilizzare l'autenticazione del token di delega per eseguire la utility Migrator da Cloud Shell. Il token di delega viene creato automaticamente per l'utente quando viene richiamata Cloud Shell.
Il valore predefinito è
false.Tenere presente quanto riportato di seguito.
-
L'autenticazione con token di delega è supportata solo quando lo strumento NoSQL Database Migrator è in esecuzione da una Cloud Shell.
-
È 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. -
Cloud Shell supporta la migrazione solo tra le seguenti origini e sink:
Type Origine valida sink valido Oracle NoSQL Database Cloud Service ( nosqldb_cloud)S S File (file JSON nella directory home) S S Storage degli oggetti OCI (file JSON) ( object_storage_oci)S S Storage degli oggetti OCI (file Parquet) ( object_storage_oci)N S
-
-
Tipo di dati: booleano
-
Obbligatorio (S/N): N
-
Scopo: specifica se lo strumento NoSQL Database Migrator utilizza o meno l'autenticazione del principal dell'istanza per connettersi al servizio OCI, ad esempio Oracle NoSQL Database Cloud Service, OCI Object Storage e così via. Per ulteriori informazioni sul metodo di autenticazione Principal dell'istanza, vedere Sicurezza origine e collegamento .
Il valore predefinito è
false.Nota:
-
L'autenticazione con i principal delle istanze è supportata solo quando lo strumento NoSQL Database Migrator è in esecuzione all'interno di un'istanza di computazione OCI, ad esempio lo strumento NoSQL Database Migrator in esecuzione in una VM ospitata su OCI.
-
È 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.
-
-
Tipo di dati: booleano
-
Obbligatorio (S/N): N
-
Scopo: specifica se lo strumento NoSQL Database Migrator utilizza Workload Identity Authentication (WIA) per accedere a OCI Object Storage e a Oracle NoSQL Database Cloud Service da un pod Oracle Kubernetes Engine (OKE).
Il valore predefinito è
false. -
Tipo di dati: booleano
-
Obbligatorio (S/N): N
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.
-
Scopo: specifica se lo strumento NoSQL Database Migrator utilizza o meno un'autenticazione token di sessione per connettersi ai servizi OCI quali OCI Object Storage (OCI OS) e Oracle NoSQL Database Cloud Service. Il valore predefinito è
false. -
Tipo di dati: booleano
-
Obbligatorio (S/N): N
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:
-
Durante l'utilizzo dell'autenticazione del token di sessione, è necessario specificare il percorso del file di configurazione OCI nel parametro delle credenziali e nel profilo utilizzato durante la generazione del token di sessione nel parametro credentialProfile. Se non si imposta il parametro delle credenziali nel modello di configurazione, la utility Migrator cerca il file delle credenziali nel percorso
$HOME/.oci. Se non si imposta il parametro credentialProfile nel modello di configurazione, la utility Migrator utilizza il nome di profilo predefinito (DEFAULT) dal file di configurazione OCI.Se la utility Migrator non è in grado di trovare il file delle credenziali, la migrazione non riesce con un messaggio di errore che comunica l'inesistenza del file delle credenziali OCI.
-
È possibile selezionare solo una delle opzioni di autenticazione. Pertanto, specificare solo uno di questi parametri: credenziali, useInstancePrincipal, useDelegationToken,
useSessionTokeno useOKEWorkloadIdentity nel modello di configurazione.
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.
-
File o directory specificata contenente i dati JSON.
-
File JSON nel bucket di storage degli oggetti OCI
File JSON specificato nel bucket di OCI Object Storage.
-
File o directory specificati contenenti i dati JSON formattati MongoDB.
-
File JSON formattato MongoDB nel bucket di storage degli oggetti OCI
Il file JSON esportato MongoDB specificato memorizzato nel bucket di storage degli oggetti OCI.
-
File JSON formattato DynamoDB memorizzato in AWS S3
Specificato DynamoDB ha esportato il file JSON memorizzato nello storage AWS S3.
-
Il file JSON esportato DynamoDB specificato da un file system.
-
Tabella specificata in Oracle NoSQL Database.
-
Oracle NoSQL Database Cloud Service
Tabella specificata in Oracle NoSQL Database Cloud Service.
-
File o directory specificata contenente i dati CSV.
-
File CSV nel bucket di storage degli oggetti OCI
File CSV specificato nel bucket di storage degli oggetti OCI.
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
-
Scopo: specifica il percorso assoluto di un file o di una directory contenente i dati JSON per la migrazione.
È necessario assicurarsi che questi dati corrispondano allo schema di tabella NoSQL definito nel sink. Se si specifica una directory, NoSQL Database Migrator identifica tutti i file con estensione
.jsonin tale directory per la migrazione. Le sottodirectory non sono supportate. -
Stringa Tipo di dati:
-
Obbligatorio (S/N): Y
-
Esempio:
-
Specifica di un file JSON
"dataPath" : "/home/user/sample.json" -
Specifica di una directory
"dataPath" : "/home/user"
-
-
Scopo: specifica lo schema dei dati di origine di cui si sta eseguendo la migrazione. Questo schema viene passato al sink NoSQL.
-
Tipo di dati: oggetto
-
Obbligatorio (S/N): N
-
Scopo: specifica il percorso assoluto del file di definizione dello schema contenente le istruzioni DDL per la tabella NoSQL di cui si esegue la migrazione.
-
Stringa Tipo di dati:
-
Obbligatorio (S/N): Y
-
Esempio:
"schemaInfo": { "schemaPath": "<path to the schema file>" }
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
-
Usa
"type" : "object_storage_oci" -
Usa
"format" : "json" -
Esempio:
-
ID area:
"endpoint" : "us-ashburn-1" -
Formato URL:
"endpoint" : "https://objectstorage.us-ashburn- 1.oraclecloud.com"
-
-
Esempio:
"namespace" : "my-namespace" -
Esempio:
"bucket" : "my-bucket" -
Esempio:
-
"prefix" : "my_table/Data/000000.json"(migra solo000000.json) -
"prefix" : "my_table/Data"(migra tutti gli oggetti con prefissomy_table/Data)
-
-
Esempio:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Esempio:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Esempio:
"useInstancePrincipal" : true -
Esempio:
"useDelegationToken" : trueNota: l'autenticazione con token di delega è supportata solo quando NoSQL Database Migrator è in esecuzione da Cloud Shell.
-
Esempio:
"useOKEWorkloadIdentity" : true -
Esempio:
"useSessionToken" : true
Parametri di configurazione univoci
-
Scopo: specifica lo schema dei dati di origine di cui si sta eseguendo la migrazione. Questo schema viene passato al sink NoSQL.
-
Tipo di dati: oggetto
-
Obbligatorio (S/N): N
-
Scopo: specifica il nome dell'oggetto nel bucket in cui vengono memorizzate le definizioni dello schema di tabella NoSQL per i dati di cui si esegue la migrazione.
-
Stringa Tipo di dati:
-
Obbligatorio (S/N): Y
-
Esempio:
"schemaInfo": { "schemaObject": "mytable/Schema/schema.ddl" },
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
-
Scopo: specifica il percorso assoluto di un file o di una directory contenente i dati JSON esportati da MongoDB per la migrazione.
Puoi fornire il file JSON in formato MongoDB generato utilizzando lo strumento mongoexport.
Se si specifica una directory, NoSQL Database Migrator identifica tutti i file con estensione
.jsonin tale directory per la migrazione. Le sottodirectory non sono supportate. È necessario assicurarsi che questi dati corrispondano allo schema di tabella NoSQL definito nel sink. -
Stringa Tipo di dati:
-
Obbligatorio (S/N): Y
-
Esempio:
-
Specifica di un file JSON formattato MongoDB
"dataPath" : "/home/user/sample.json" -
Specifica di una directory
"dataPath" : "/home/user"
-
-
Scopo: specifica lo schema dei dati di origine di cui si sta eseguendo la migrazione. Questo schema viene passato al sink valido.
-
Tipo di dati: oggetto
-
Obbligatorio (S/N): N
-
Scopo: specifica il percorso assoluto del file di definizione dello schema contenente le istruzioni DDL per la tabella NoSQL di cui si esegue la migrazione.
-
Stringa Tipo di dati:
-
Obbligatorio (S/N): Y
-
Esempio:
"schemaInfo" : { "schemaPath" : "/home/user/mytable/Schema/schema.ddl" }
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
-
Usa
"type" : "object_storage_oci" -
Usa
"format" : "mongodb_json" -
Esempio:
-
ID area:
"endpoint" : "us-ashburn-1" -
Formato URL:
"endpoint" : "https://objectstorage.us-ashburn- 1.oraclecloud.com"
-
-
Esempio:
"namespace" : "my-namespace" -
Esempio:
"bucket" : "my-bucket" -
Esempio:
-
"prefix" : "mongo_export/Data/table.json"(migra solotable.json) -
"prefix" : "mongo_export/Data"(migra tutti gli oggetti con prefissomongo_export/Data)
Nota: se non si specifica alcun valore, viene eseguita la migrazione di tutti gli oggetti presenti nel bucket.
-
-
Esempio:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
Esempio:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Esempio:
"useInstancePrincipal" : true -
Esempio:
"useDelegationToken" : trueNota: l'autenticazione con token di delega è supportata solo quando NoSQL Database Migrator è in esecuzione da Cloud Shell.
-
Esempio:
"useOKEWorkloadIdentity" : true -
Esempio:
"useSessionToken" : true
Parametri di configurazione univoci
-
Scopo: specifica lo schema dei dati di origine di cui si sta eseguendo la migrazione. Questo schema viene passato al sink NoSQL.
-
Tipo di dati: oggetto
-
Obbligatorio (S/N): N
-
Scopo: specifica il nome dell'oggetto nel bucket in cui vengono memorizzate le definizioni dello schema di tabella NoSQL per i dati di cui si esegue la migrazione.
-
Stringa Tipo di dati:
-
Obbligatorio (S/N): Y
-
Esempio:
"schemaInfo": { "schemaObject": "mytable/Schema/schema.ddl" }
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
-
Usa
"type" : "aws_s3" -
Usa
"format" : "dynamodb_json"Nota: se il valore del parametro del tipo è
aws_s3, il formato deve esseredynamodb_json.
Parametri di configurazione univoci
-
Scopo: specifica l'URL di una tabella DynamoDB esportata memorizzata in AWS S3. È possibile ottenere questo URL dalla console AWS S3. Il formato URL valido è
https://<bucket-name>.<s3_endpoint>/<prefix>. NoSQL Database Migrator cercherà i filejson.gznel prefisso durante l'importazione.Nota: è necessario esportare la tabella DynamoDB come specificato in Esportazione dei dati della tabella DynamoDB in Amazon S3.
-
Stringa Tipo di dati:
-
Obbligatorio (S/N): Y
-
Esempio:
https://my-bucket.s3.ap-south-1.amazonaws.com/AWSDynamoDB/01649660790057-14f642be
-
Scopo: specifica il percorso assoluto di un file contenente le credenziali AWS. Se non viene specificato, le impostazioni predefinite saranno
$HOME/.aws/credentials. Per ulteriori dettagli sul file delle credenziali, vedere Impostazioni dei file di configurazione e credenziali. -
Stringa Tipo di dati:
-
Obbligatorio (S/N): N
-
Esempio:
"credentials" : "/home/user/.aws/credentials""credentials" : "/home/user/security/credentialsNota: NoSQL Database Migrator non registra alcuna delle informazioni sulle credenziali. È necessario proteggere correttamente il file delle credenziali dall'accesso non autorizzato.
- Scopo: nome del profilo nel file delle credenziali AWS da utilizzare per la connessione ad AWS S
- Le credenziali dell'account utente vengono definite profilo. Se non si specifica questo valore, NoSQL Database Migrator utilizza il profilo
default. Per ulteriori dettagli sul file delle credenziali, vedere Impostazioni dei file di configurazione e credenziali.
- Le credenziali dell'account utente vengono definite profilo. Se non si specifica questo valore, NoSQL Database Migrator utilizza il profilo
-
Stringa Tipo di dati:
-
Obbligatorio (S/N): N
-
Esempio:
"credentialsProfile" : "default""credentialsProfile" : "test"
-
Scopo: specifica il nome dell'attributo TTL presente nei dati della tabella DynamoDB esportati. È possibile includere questo parametro solo se i dati della tabella DynamoDB hanno un attributo TTL e si desidera impostare il valore TTL sui dati importati durante l'importazione nel database NoSQL.
Nota: per eseguire l'importazione con i metadati TTL, è necessario impostare il parametro di configurazione includeTTL su true nel modello di configurazione sink (
nosqldbenosqldb_cloud). -
Stringa Tipo di dati:
-
Obbligatorio (S/N): N
-
Esempio:
"ttlAttributeName" : "ttl"
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
-
Scopo: specifica il percorso assoluto di un file o di una directory contenente i dati della tabella DynamoDB esportati. È necessario copiare i dati esportati della tabella DynamoDB da AWS S3 in un file system con MOUNT locale. È necessario assicurarsi che questi dati corrispondano allo schema di tabella NoSQL definito nel sink. Se si specifica una directory, NoSQL Database Migrator identifica tutti i file con estensione
.json.gzin tale directory e la sottodirectorydata. -
Stringa Tipo di dati:
-
Obbligatorio (S/N): Y
-
Esempio:
-
Specifica di un file
"dataPath" : "/home/user/AWSDynamoDB/01639372501551-bb4dd8c3/data/zclclwucjy6v5mkefvckxzhfvq.json.gz" -
Specifica di una directory
"dataPath" : "/home/user/AWSDynamoDB/01639372501551-bb4dd8c3"
-
-
Scopo: specifica il nome dell'attributo TTL presente nei dati della tabella DynamoDB esportati. È possibile includere questo parametro solo se i dati della tabella DynamoDB hanno un attributo TTL e si desidera impostare il valore TTL sui dati importati durante l'importazione nel database NoSQL.
Nota: per eseguire l'importazione con i metadati TTL, è necessario impostare il parametro di configurazione includeTTL su true nel modello di configurazione sink (
nosqldbenosqldb_cloud). -
Stringa Tipo di dati:
-
Obbligatorio (S/N): N
-
Esempio:
"ttlAttributeName" : "ttl"
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
-
Usa
"type" : "nosqldb" -
Esempio:
"security" : "/home/user/client.credentials"Esempio di contenuto del file di sicurezza per l'autenticazione basata su file di password:
oracle.kv.password.noPrompt=true oracle.kv.auth.username=admin oracle.kv.auth.pwdfile.file=/home/nosql/login.passwd oracle.kv.transport=ssl oracle.kv.ssl.trustStore=/home/nosql/client.trust oracle.kv.ssl.protocols=TLSv 1.2 oracle.kv.ssl.hostnameVerifier=dnmatch(CN\=NoSQL)Contenuto del file di sicurezza di esempio per l'autenticazione basata su wallet:
oracle.kv.password.noPrompt=true oracle.kv.auth.username=admin oracle.kv.auth.wallet.dir=/home/nosql/login.wallet oracle.kv.transport=ssl oracle.kv.ssl.trustStore=/home/nosql/client.trust oracle.kv.ssl.protocols=TLSv1.2 oracle.kv.ssl.hostnameVerifier=dnmatch(CN\=NoSQL) -
Esempio:
"requestTimeoutMs" : 5000
Parametri di configurazione univoci
-
Scopo: nome dell'area di memorizzazione di Oracle NoSQL Database.
-
Stringa Tipo di dati:
-
Obbligatorio (S/N): Y
-
Esempio:
"storeName" : "kvstore"
-
Scopo: elenco di coppie di host e porte di registro nel formato
hostname:port. Delimitare ogni elemento dell'elenco utilizzando una virgola. È necessario specificare almeno un host helper. -
Tipo di dati: array di stringhe
-
Obbligatorio (S/N): Y
-
Esempio:
"helperHosts" : ["localhost:5000","localhost:6000"]
-
Scopo: nome tabella completamente qualificato da cui eseguire la migrazione dei dati.
Formato:
[namespace_name:]<table_name>Se la tabella si trova nello spazio di nomi DEFAULT, è possibile omettere
namespace_name. La tabella deve esistere nel negozio. -
Stringa Tipo di dati:
-
Obbligatorio (S/N): Y
-
Esempio:
-
Con lo spazio di nomi DEFAULT
"table" :"mytable" -
Con uno spazio di nomi non predefinito
"table" : "mynamespace:mytable" -
Per specificare una tabella figlio
"table" : "mytable.child"
-
-
Scopo: specifica se includere o meno i metadati TTL per le righe di tabella durante l'esportazione delle tabelle di Oracle NoSQL Database. Se impostato su true, anche i dati TTL per le righe vengono inclusi nei dati forniti dall'origine. TTL è presente nell'oggetto JSON
_metadataassociato a ogni riga. Il tempo di scadenza per ogni riga viene esportato come numero di millisecondi dall'epoca UNIX (1 gennaio 1970).Se questo parametro non viene specificato, il valore predefinito è
false.Solo le righe con valore di scadenza positivo per TTL vengono incluse come parte delle righe esportate. Se una riga non scade, ovvero TTL=0, i relativi metadati TTL non vengono inclusi in modo esplicito. Ad esempio, se ROW1 scade il 2021-10-19 00:00:00 e ROW2 non scade, i dati esportati avranno l'aspetto seguente:
//ROW1 { "id" : 1, "name" : "abc", "_metadata" : { "expiration" : 1634601600000 } } //ROW2 { "id" : 2, "name" : "xyz" } -
Tipo di dati: booleano
-
Obbligatorio (S/N): N
-
Esempio:
"includeTTL" : true
-
Scopo: specifica il predicato query utilizzato dalla utility Migrator per esportare solo le righe corrispondenti alla condizione specificata.
La utility Migrator incorpora questo predicato nella clausola WHERE della query SQL. Questa query viene applicata alla tabella di origine per filtrare i dati in base alla condizione specificata. Per specificare la tabella di origine, utilizzare il parametro
tablenel modello di configurazione di origine.Ad esempio, per esportare solo le righe con il valore
id10, impostare il parametroqueryFiltersu"id=10". La utility Migrator genera la seguente query:select $row from <table> $row where id=10In questa query, la utility Migrator utilizza l'alias di tabella
$rowper elaborare singole righe.Tenere presente quanto riportato di seguito.
-
Non è possibile utilizzare
queryFilterper selezionare una determinata colonna. È possibile fornire trasformazioni per filtrare le colonne. -
Se non si fornisce un valore per il parametro
queryFilter, la utility Migrator esporta tutte le righe dalla tabella utilizzando la seguente query:select $row from $row
-
-
Tipo di dati: stringa JSON
-
Obbligatorio (S/N): N
-
Esempio:
"queryFilter" : "$row.address.city='Houston'"Per ulteriori esempi, vedere la tabella Previsioni query di esempio riportata di seguito.
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:
-
Si consiglia di utilizzare virgolette singole (') anziché virgolette doppie (") mentre si fornisce un valore stringa nel predicato query. Se si desidera utilizzare una virgoletta doppia ("), è necessario eseguirne l'esclusione.
Ad esempio: utilizzare il predicato query
"name='John'"per selezionare le righe dalla tabella specificata in cui il valore nel camponameè la stringa 'John'. -
È necessario includere l'alias tabella
$rownelle espressioni quando:-
Utilizzo di funzioni di riga quali
modification_time(), expiration_time(), creation_time()e così via. Per informazioni dettagliate, vedere Funzioni nelle righe. -
Accesso a campi specifici all'interno di una colonna JSON.
-
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
-
Usa
"type" : "nosqldb_cloud" -
Esempio:
-
ID area:
"endpoint" : "us-ashburn-1" -
Formato URL:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Esempio:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Esempio:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Esempio:
"useInstancePrincipal" : true -
Esempio:
"useDelegationToken" : trueNota: l'autenticazione con token di delega è supportata solo quando NoSQL Database Migrator è in esecuzione da Cloud Shell.
-
Esempio:
"useOKEWorkloadIdentity" : true -
Esempio:
"useSessionToken" : true -
Esempio:
"requestTimeoutMs" : 5000
Parametri di configurazione univoci
-
Scopo: nome della tabella da cui eseguire la migrazione dei dati.
-
Stringa Tipo di dati:
-
Obbligatorio (S/N): Y
-
Esempio:
-
Per specificare una tabella
"table" : "myTable" -
Per specificare una tabella figlio
"table" : "mytable.child"
-
-
Scopo: specifica il nome o l'OCID del compartimento in cui risiede la tabella.
Se non viene fornito alcun valore, per impostazione predefinita viene utilizzato il compartimento root.
È possibile trovare l'OCID del compartimento dalla finestra Explorer compartimenti in Governance nella console cloud OCI.
-
Stringa Tipo di dati:
-
Obbligatorio (Y/N): Y, se la tabella non si trova nel compartimento radice della tenancy OPPURE quando il parametro useInstancePrincipal è impostato su true.
Nota: se il parametro useInstancePrincipal è impostato su true, il compartimento deve specificare l'OCID del compartimento e non il nome.
-
Esempio:
-
Nome compartimento
"compartment" : "mycompartment" -
Nome del compartimento qualificato con il relativo compartimento padre
"compartment" : "parent.childcompartment" -
Non è stato fornito alcun valore. Il valore predefinito è il compartimento radice.
"compartment": "" -
OCID compartimento
"compartment" : "ocid 1.tenancy.oc1...4ksd"
-
-
Scopo: percentuale delle unità di lettura tabella da utilizzare durante la migrazione della tabella NoSQL.
Il valore predefinito per il server di amministrazione è 90. L'intervallo valido è un numero intero compreso tra 1 e 100. Il tempo necessario per eseguire la migrazione dei dati è direttamente proporzionale a questo attributo. È meglio aumentare il throughput di lettura della tabella per l'attività di migrazione. È possibile ridurre il throughput di lettura al termine del processo di migrazione.
Per apprendere i limiti giornalieri relativi alle modifiche al throughput, vedere Limiti cloud nel documento Oracle NoSQL Database Cloud Service.
Per informazioni su come utilizzare questo attributo per migliorare la velocità di migrazione dei dati, vedere Risoluzione dei problemi di Oracle NoSQL Database Migrator
-
Tipo di dati: numero intero
-
Obbligatorio (S/N): N
-
Esempio:
"readUnitsPercent" : 90
-
Scopo: specifica se includere o meno i metadati TTL per le righe di tabella durante l'esportazione delle tabelle di Oracle NoSQL Database Cloud Service. Se impostato su true, anche i dati TTL per le righe vengono inclusi nei dati forniti dall'origine. TTL è presente nell'oggetto JSON
_metadataassociato a ogni riga. Il tempo di scadenza per ogni riga viene esportato come numero di millisecondi dall'epoca UNIX (1 gennaio 1970).Se questo parametro non viene specificato, il valore predefinito è
false.Solo le righe con valore di scadenza positivo per TTL vengono incluse come parte delle righe esportate. Se una riga non scade, ovvero TTL=0, i relativi metadati TTL non vengono inclusi in modo esplicito. Ad esempio, se ROW1 scade il 2021-10-19 00:00:00 e ROW2 non scade, i dati esportati avranno l'aspetto seguente:
//ROW1 { "id" : 1, "name" : "abc", "_metadata" : { "expiration" : 1634601600000 } } //ROW2 { "id" : 2, "name" : "xyz" } -
Tipo di dati: booleano
-
Obbligatorio (S/N): N
-
Esempio:
"includeTTL" : true
-
Scopo: specifica il predicato query utilizzato dalla utility Migrator per esportare solo le righe corrispondenti alla condizione specificata.
La utility Migrator incorpora questo predicato nella clausola WHERE della query SQL. Questa query viene applicata alla tabella di origine per filtrare i dati in base alla condizione specificata. Per specificare la tabella di origine, utilizzare il parametro
tablenel modello di configurazione di origine.Ad esempio, per esportare solo le righe con il valore
id10, impostare il parametroqueryFiltersu"id=10". La utility Migrator genera la seguente query:select $row from <table> $row where id=10Nella query precedente, la utility Migrator utilizza l'alias di tabella
$rowper elaborare singole righe.Tenere presente quanto riportato di seguito.
-
Non è possibile utilizzare
queryFilterper selezionare una determinata colonna. È possibile fornire trasformazioni per filtrare le colonne. -
Se non si fornisce un valore per il parametro
queryFilter, la utility Migrator esporta tutte le righe dalla tabella utilizzando la query seguente:select $row from $row`
-
-
Tipo di dati: stringa JSON
-
Obbligatorio (S/N): N
-
Esempio:
"queryFilter" : "$row.address.city='Houston'"Per ulteriori esempi, vedere la tabella Previsioni query di esempio riportata di seguito.
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:
-
Si consiglia di utilizzare virgolette singole (') anziché virgolette doppie (") mentre si fornisce un valore stringa nel predicato query. Se si desidera utilizzare una virgoletta doppia ("), è necessario eseguirne l'esclusione.
Ad esempio: utilizzare il predicato query
"name='John'"per selezionare le righe dalla tabella specificata in cui il valore nel camponameè la stringa 'John'. -
È necessario includere l'alias tabella
$rownelle espressioni quando:- Utilizzo di funzioni di riga quali
modification_time(), expiration_time(), creation_time()e così via. Per informazioni dettagliate, vedere Funzioni nelle righe. - Accesso a campi specifici all'interno di una colonna JSON.
- Utilizzo di funzioni di riga quali
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
-
Scopo: specifica il percorso assoluto di un file o di una directory contenente i dati CSV per la migrazione. Se si specifica una directory, NoSQL Database Migrator importa tutti i file con estensione
.csvo.CSVin tale directory. Tutti i file CSV vengono copiati in un'unica tabella, ma non in un particolare ordine.I file CSV devono essere conformi allo standard
RFC4180. È necessario assicurarsi che i dati in ogni file CSV corrispondano allo schema della tabella di database NoSQL definito nella tabella sink. Le sottodirectory non sono supportate. -
Stringa Tipo di dati:
-
Obbligatorio (S/N): Y
-
Esempio:
-
Specifica di un file CSV
"dataPath" : "/home/user/sample.csv" -
Specifica di una directory
"dataPath" : "/home/user"
-
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 .
-
Scopo: specifica se il file CSV ha o meno un'intestazione. Se è impostato su
true, la prima riga viene ignorata. Se è impostato sufalse, la prima riga viene considerata un record CSV. Il valore predefinito èfalse. -
Tipo di dati: booleano
-
Obbligatorio (S/N): N
-
Esempio:
"hasHeader" : "false"
-
Scopo: specifica la lista dei nomi delle colonne delle tabelle del database NoSQL. L'ordine dei nomi delle colonne indica il mapping dei campi del file CSV con le colonne corrispondenti della tabella del database NoSQL. Se l'ordine delle colonne del file CSV di input non corrisponde alle colonne della tabella del database NoSQL esistenti o appena create, è possibile mappare l'ordinamento utilizzando questo parametro. Inoltre, quando si esegue l'importazione in una tabella con Colonna identità, è possibile saltare il nome della colonna Identità nel parametro
columns.Nota:
-
Se la tabella del database NoSQL contiene colonne aggiuntive non disponibili nel file CSV, i valori delle colonne mancanti vengono aggiornati con il valore predefinito definito nella tabella del database NoSQL. Se non viene fornito un valore predefinito, durante la migrazione viene inserito un valore nullo. Per ulteriori informazioni sui valori predefiniti, vedere la sezione Definizioni dei tipi di dati nel manuale SQL Reference Guide.
-
Se nel file CSV sono presenti colonne aggiuntive non definite nella tabella del database NoSQL, le informazioni aggiuntive sulle colonne vengono ignorate.
-
Se un valore qualsiasi nel record CSV è vuoto, viene impostato sul valore predefinito delle colonne corrispondenti nella tabella Database NoSQL. Se non viene fornito un valore predefinito, durante la migrazione viene inserito un valore nullo.
-
-
Tipo di dati: array di stringhe
-
Obbligatorio (S/N): N
-
Esempio:
"columns" : ["table_column_1", "table_column_2"]
-
Scopo: specifica le opzioni di formattazione per un file CSV. Fornire il formato di codifica del set di caratteri del file CSV e scegliere se tagliare o meno gli spazi vuoti.
-
Tipo di dati: oggetto
-
Obbligatorio (S/N): N
-
Scopo: specifica il set di caratteri per la decodifica del file CSV. Il valore predefinito è
UTF-8. I set di caratteri supportati sonoUS-ASCII, ISO-8859-1, UTF-8,eUTF-16. -
Stringa Tipo di dati:
-
Obbligatorio (S/N): N
-
Esempio:
"encoding" : "UTF-8"
-
Scopo: specifica se gli spazi vuoti iniziali e finali di un campo CSV devono essere troncati. Il valore predefinito è
false. -
Tipo di dati: booleano
-
Obbligatorio (S/N): N
-
Esempio:
"trim" : "true"
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
-
Usa
"type" : "object_storage_oci" -
Usa
"format" : "csv" -
Esempio di endpoint:
-
ID area:
"endpoint" : "us-ashburn-1" -
Formato URL:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Esempio:
"namespace" : "my-namespace" -
Esempio:
"bucket" : "my-bucket"Nota:
-
NoSQL Database Migrator importa tutti i file con estensione .
csvo.CSVa livello di oggetto e li copia in un'unica tabella nello stesso ordine. -
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 standardRFC4180potrebbero 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 .
-
-
Esempio:
-
"prefix" : "my_table/Data/000000.csv"(migra solo000000.csv) -
"prefix" : "my_table/Data"(migra tutti gli oggetti con prefissomy_table/Data)
-
-
Esempio:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Esempio:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Esempio:
"useInstancePrincipal" : true -
Esempio:
"useDelegationToken" : trueNota: l'autenticazione con token di delega è supportata solo quando NoSQL Database Migrator è in esecuzione da Cloud Shell.
-
Esempio:
"useOKEWorkloadIdentity" : true -
Esempio:
"useSessionToken" : true
Parametri di configurazione univoci
-
Scopo: specifica se il file CSV ha o meno un'intestazione. Se è impostato su
true, la prima riga viene ignorata. Se è impostato sufalse, la prima riga viene considerata un record CSV. Il valore predefinito èfalse. -
Tipo di dati: booleano
-
Obbligatorio (S/N): N
-
Esempio:
"hasHeader" : "false"
-
Scopo: specifica la lista dei nomi delle colonne delle tabelle del database NoSQL. L'ordine dei nomi delle colonne indica il mapping dei campi del file CSV con le colonne corrispondenti della tabella del database NoSQL. Se l'ordine delle colonne del file CSV di input non corrisponde alle colonne della tabella del database NoSQL esistenti o appena create, è possibile mappare l'ordinamento utilizzando questo parametro. Inoltre, quando si esegue l'importazione in una tabella con Colonna identità, è possibile saltare il nome della colonna Identità nel parametro
columns.Nota:
-
Se la tabella del database NoSQL contiene colonne aggiuntive non disponibili nel file CSV, i valori delle colonne mancanti vengono aggiornati con il valore predefinito definito nella tabella del database NoSQL. Se non viene fornito un valore predefinito, durante la migrazione viene inserito un valore nullo. Per ulteriori informazioni sui valori predefiniti, vedere la sezione Definizioni dei tipi di dati nel manuale SQL Reference Guide.
-
Se nel file CSV sono presenti colonne aggiuntive non definite nella tabella del database NoSQL, le informazioni aggiuntive sulle colonne vengono ignorate.
-
Se un valore qualsiasi nel record CSV è vuoto, viene impostato sul valore predefinito delle colonne corrispondenti nella tabella Database NoSQL. Se non viene fornito un valore predefinito, durante la migrazione viene inserito un valore nullo.
-
-
Tipo di dati: array di stringhe
-
Obbligatorio (S/N): N
-
Esempio:
"columns" : ["table_column_1", "table_column_2"]
-
Scopo: specifica le opzioni di formattazione per un file CSV. Fornire il formato di codifica del set di caratteri del file CSV e scegliere se tagliare o meno gli spazi vuoti.
-
Tipo di dati: oggetto
-
Obbligatorio (S/N): N
-
Scopo: specifica il set di caratteri per la decodifica del file CSV. Il valore predefinito è
UTF-8. I set di caratteri supportati sonoUS-ASCII, ISO-8859-1, UTF-8,eUTF-16. -
Stringa Tipo di dati:
-
Obbligatorio (S/N): N
-
Esempio:
"encoding" : "UTF-8"
-
Scopo: specifica se gli spazi vuoti iniziali e finali di un campo CSV devono essere troncati. Il valore predefinito è
false. -
Tipo di dati: booleano
-
Obbligatorio (S/N): N
-
Esempio:
"trim" : "true"
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.
-
File JSON specificato.
-
File parquet nella directory specificata.
-
File JSON nel bucket di storage degli oggetti OCI
File JSON nel bucket di storage degli oggetti OCI specificato.
-
File parquet nel bucket di storage degli oggetti OCI
File parquet nel bucket di storage degli oggetti OCI specificato.
-
Tabella specificata in Oracle NoSQL Database.
-
Oracle NoSQL Database Cloud Service
Tabella specificata in Oracle NoSQL Database Cloud Service.
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
-
Usa
"type" : "file" -
Usa
"format" : "json" -
Esempio:
"chunkSize" : 40Nota: questo parametro è applicabile SOLO quando il parametro useMultiFiles è impostato su true.
Parametri di configurazione univoci
-
Scopo: specifica il percorso di una directory in cui NoSQL Database Migrator copia i dati di origine in formato JSON.
NoSQL Database Migrator crea file JSON nella directory specificata. Se i file esistono, NoSQL Database Migrator sovrascrive il proprio contenuto con i dati di origine.
Assicurarsi che la directory esista già e disponga delle autorizzazioni di lettura e scrittura.
-
Stringa Tipo di dati:
-
Obbligatorio (S/N): Y
-
Esempio:
"dataPath" : "/home/user/data"Una volta completata la migrazione, la directory specificata nel parametro dataPath includerà i file esportati come mostrato nell'esempio riportato di seguito.
|--<Table_name>_1_5.json |--<Table_name>_6_10.json ...
-
Scopo: specifica il percorso assoluto di un file per scrivere le informazioni sullo schema della tabella fornite dall'origine.
Se questo valore non è definito, le informazioni sullo schema di origine non verranno migrate al sink. Se si specifica questo valore, la utility di migrazione scrive lo schema della tabella di origine nel file specificato qui.
Le informazioni sullo schema vengono scritte come un comando DDL per riga in questo file. Se il file non esiste nel percorso dati specificato, NoSQL Database Migrator lo crea. Se esiste già, NoSQL Database Migrator sovrascriverà il proprio contenuto con i dati di origine. Assicurarsi che la directory padre nel percorso dati sia valida per il file specificato.
-
Stringa Tipo di dati:
-
Obbligatorio (S/N): N
-
Esempio:
"schemaPath" : "/home/user/schema_file"
-
Scopo: specifica se abbellire o meno l'output JSON per aumentare la leggibilità.
Se non viene specificato, le impostazioni predefinite saranno false.
-
Tipo di dati: booleano
-
Obbligatorio (S/N): N
-
Esempio:
"pretty" : true
-
Scopo: specifica se suddividere ulteriormente i file esportati (creati sotto la directory specificata nel parametro dataPath) in più file secondari di una dimensione specifica durante la migrazione dei dati della tabella del database NoSQL in una directory. Il valore predefinito del parametro useMultiFiles è true.
NoSQL Database Migrator divide i dati della tabella del database NoSQL in più file durante l'esportazione dei dati. Se il parametro useMultiFiles è impostato su true, ogni file esportato viene ulteriormente suddiviso in sottofile di dimensioni specificate nel parametro chunkSize.
Esempio: una volta completata la migrazione, la directory specificata nel parametro dataPath includerà i file esportati come mostrato nell'esempio seguente:
|--<Table_name>_1_5_0.json |--<Table_name>_1_5_1.json |--<Table_name>_6_10_0.json |--<Table_name>_6_10_1.json |--<Table_name>_6_10_2.json ... -
Tipo di dati: booleano
-
Obbligatorio (S/N): N
-
Esempio:
"useMultiFiles" : true
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
-
Usa
"type" : "file" -
Usa
"format" : "parquet" -
Esempio:
"chunkSize" : 40
Parametri di configurazione univoci
-
Scopo: specifica il percorso di una directory per la memorizzazione dei dati della tabella NoSQL di cui è stata eseguita la migrazione. Assicurarsi che la directory esista già e disponga delle autorizzazioni di lettura e scrittura.
-
Stringa Tipo di dati:
-
Obbligatorio (S/N): Y
-
Esempio:
"dataPath" : "/home/user/migrator/my_table"
-
Scopo: specifica il tipo di compressione da utilizzare per comprimere i dati Parquet. I valori validi sono SNAPPY, GZIP e NONE.
Se non viene specificato, le impostazioni predefinite saranno SNAPPY.
-
Stringa Tipo di dati:
-
Obbligatorio (S/N): N
-
Esempio:
"compression" : "GZIP"
-
Scopo: specifica le opzioni per selezionare i tipi logici Parquet per le colonne NoSQL ENUM, JSON e UUID.
Se non si specifica questo parametro, NoSQL Database Migrator scrive i dati delle colonne ENUM, JSON e UUID come stringa.
-
Tipo di dati: oggetto
-
Obbligatorio (S/N): N
-
Scopo: specifica se scrivere i dati della colonna JSON NoSQL come tipo JSON logico Parquet. Per ulteriori informazioni, vedere Definizioni dei tipi logici di parquet.
Se non specificato o impostato su false, NoSQL Database Migrator scrive i dati della colonna JSON NoSQL come stringa.
-
Tipo di dati: booleano
-
Obbligatorio (S/N): N
-
Esempio:
"useLogicalJson" : true
-
Scopo: specifica se scrivere o meno i dati della colonna ENUM NoSQL come tipo ENUM logico Parquet. Per ulteriori informazioni, vedere Definizioni dei tipi logici di parquet.
Se non è specificato o impostato su false, NoSQL Database Migrator scrive i dati della colonna NoSQL ENUM come stringa.
-
Tipo di dati: booleano
-
Obbligatorio (S/N): N
-
Esempio:
"useLogicalEnum" : true
-
Scopo: specifica se scrivere o meno i dati della colonna UUID NoSQL come tipo di UUID logico Parquet. Per ulteriori informazioni, vedere Definizioni dei tipi logici di parquet.
Se non specificato o impostato su false, NoSQL Database Migrator scrive i dati della colonna UUID NoSQL come stringa.
-
Tipo di dati: booleano
-
Obbligatorio (S/N): N
-
Esempio:
"useLogicalUUID" : true
parquetOptions.truncateDoubleSpecials
-
Scopo: specifica se troncare o meno i valori doppi +Infinity, -Infinity e NaN.
Per impostazione predefinita, è impostato su
false. Se impostato sutrue,-
Positive_Infinity è troncato a Double.MAX_VALUE.
-
NEGATIVE_INFINITY è troncato a -Double.MAX_VALUE.
-
NaN è stato troncato a 9,999999999999990E307.
-
-
Tipo di dati: booleano
-
Obbligatorio (S/N): N
-
Esempio:
"truncateDoubleSpecials" : true
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
-
Usa
"type" : "object_storage_oci" -
Usa
"format" : "json" -
Esempio:
-
ID area:
"endpoint" : "us-ashburn-1" -
Formato URL:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Esempio:
"namespace" : "my-namespace" -
Esempio:
"bucket" : "my-bucket" -
Lo schema viene migrato nel file
<prefix>/Schema/schema.ddle i dati di origine vengono migrati nei file<prefix>/Data/<chunk>.json, dove chunk=000000.json, 000001.json e così via.Esempio:
-
"prefix" : "my_export" -
"prefix" : "my_export/2021-04-05/"
-
-
Esempio:
"chunkSize" : 40 -
Esempio:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
- Esempio di credentialsProfile:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Esempio:
"useInstancePrincipal" : true -
Esempio:
"useDelegationToken" : trueNota: l'autenticazione con token di delega è supportata solo quando NoSQL Database Migrator è in esecuzione da Cloud Shell.
-
Esempio:
"useOKEWorkloadIdentity" : true -
Esempio:
"useSessionToken" : true
Parametro di configurazione univoco
pretty
-
Scopo: specifica se abbellire o meno l'output JSON per aumentare la leggibilità.
Se non viene specificato, le impostazioni predefinite saranno false.
-
Tipo di dati: booleano
-
Obbligatorio (S/N): N
-
Esempio:
"pretty" : true
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
-
Usa
"type" : "object_storage_oci" -
Usa
"format" : "parquet" -
Esempio:
-
ID area:
"endpoint" : "us-ashburn-1" -
Formato URL:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Esempio:
"namespace" : "my-namespace" -
Esempio:
"bucket" : "my-bucket" -
I dati di origine vengono migrati nei file
<prefix>/Data/<chunk>.parquet, dove chunk=000000.parquet, 000001.parquet e così via.Esempio:
-
"prefix" : "my_export" -
"prefix" : "my_export/2021-04-05/"
-
-
Esempio:
"chunkSize" : 40 -
Esempio:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Esempio:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Esempio:
"useInstancePrincipal" : true -
Esempio:
"useDelegationToken" : trueNota: l'autenticazione con token di delega è supportata solo quando NoSQL Database Migrator è in esecuzione da Cloud Shell.
-
Esempio:
"useOKEWorkloadIdentity" : true -
Esempio:
"useSessionToken" : true
Parametro di configurazione univoco
-
Scopo: specifica il tipo di compressione da utilizzare per comprimere i dati Parquet. I valori validi sono SNAPPY, GZIP e NONE.
Se non viene specificato, le impostazioni predefinite saranno SNAPPY.
-
Stringa Tipo di dati:
-
Obbligatorio (S/N): N
-
Esempio:
"compression" : "GZIP"
-
Scopo: specifica le opzioni per selezionare i tipi logici Parquet per le colonne NoSQL ENUM, JSON e UUID.
Se non si specifica questo parametro, NoSQL Database Migrator scrive i dati delle colonne ENUM, JSON e UUID come stringa.
-
Tipo di dati: oggetto
-
Obbligatorio (S/N): N
-
Scopo: specifica se scrivere i dati della colonna JSON NoSQL come tipo JSON logico Parquet. Per ulteriori informazioni, vedere Definizioni dei tipi logici di parquet.
Se non specificato o impostato su false, NoSQL Database Migrator scrive i dati della colonna JSON NoSQL come stringa.
-
Tipo di dati: booleano
-
Obbligatorio (S/N): N
-
Esempio:
"useLogicalJson" : true
-
Scopo: specifica se scrivere o meno i dati della colonna ENUM NoSQL come tipo ENUM logico Parquet. Per ulteriori informazioni, vedere Definizioni dei tipi logici di parquet.
Se non è specificato o impostato su false, NoSQL Database Migrator scrive i dati della colonna NoSQL ENUM come stringa.
-
Tipo di dati: booleano
-
Obbligatorio (S/N): N
-
Esempio:
"useLogicalEnum" : true
-
Scopo: specifica se scrivere o meno i dati della colonna UUID NoSQL come tipo di UUID logico Parquet. Per ulteriori informazioni, vedere Definizioni dei tipi logici di parquet.
Se non specificato o impostato su false, NoSQL Database Migrator scrive i dati della colonna UUID NoSQL come stringa.
-
Tipo di dati: booleano
-
Obbligatorio (S/N): N
-
Esempio:
"useLogicalUUID" : true
parquetOptions.truncateDoubleSpecials
-
Scopo: specifica se troncare o meno i valori doppi +Infinity, -Infinity e NaN.
Per impostazione predefinita, è impostato su
false. Se impostato sutrue,-
Positive_Infinity è troncato a Double.MAX_VALUE.
-
NEGATIVE_INFINITY è troncato a -Double.MAX_VALUE.
-
NaN è stato troncato a 9,999999999999990E307.
-
-
Tipo di dati: booleano
-
Obbligatorio (S/N): N
-
Esempio:
"truncateDoubleSpecials" : true
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
-
Usa
"type" : "nosqldb" -
Esempio:
"security" : "/home/user/client.credentials"Esempio di contenuto del file di sicurezza per l'autenticazione basata su file di password:
oracle.kv.password.noPrompt=true oracle.kv.auth.username=admin oracle.kv.auth.pwdfile.file=/home/nosql/login.passwd oracle.kv.transport=ssl oracle.kv.ssl.trustStore=/home/nosql/client.trust oracle.kv.ssl.protocols=TLSv1.2 oracle.kv.ssl.hostnameVerifier=dnmatch(CN\=NoSQL)Contenuto del file di sicurezza di esempio per l'autenticazione basata su wallet:
oracle.kv.password.noPrompt=true oracle.kv.auth.username=admin oracle.kv.auth.wallet.dir=/home/nosql/login.wallet oracle.kv.transport=ssl oracle.kv.ssl.trustStore=/home/nosql/client.trust oracle.kv.ssl.protocols=TLSv1.2 oracle.kv.ssl.hostnameVerifier=dnmatch(CN\=NoSQL) -
Esempio:
"requestTimeoutMs" : 5000
Parametro di configurazione univoco
-
Scopo: nome dell'area di memorizzazione di Oracle NoSQL Database.
-
Stringa Tipo di dati:
-
Obbligatorio (S/N): Y
-
Esempio:
"storeName" : "kvstore"
-
Scopo: elenco di coppie di host e porte di registro nel formato
hostname:port. Delimitare ogni elemento dell'elenco utilizzando una virgola. È necessario specificare almeno un host helper. -
Tipo di dati: array di stringhe
-
Obbligatorio (S/N): Y
-
Esempio:
"helperHosts" : ["localhost:5000","localhost:6000"]
-
Scopo: specifica il nome della tabella in cui memorizzare i dati migrati.
Formato:
[namespace_name:]<table_name>Se la tabella si trova nello spazio di nomi DEFAULT, è possibile omettere
namespace_name. La tabella deve esistere nell'area di memorizzazione durante la migrazione e il relativo schema deve corrispondere ai dati di origine.Se la tabella non è disponibile nel sink, è possibile utilizzare il parametro
schemaInfoper indicare a NoSQL Database Migrator di creare la tabella nel sink. -
Stringa Tipo di dati:
-
Obbligatorio (S/N): Y
-
Esempio:
-
Con lo spazio di nomi DEFAULT
"table" :"mytable" -
Con uno spazio di nomi non predefinito
"table" : "mynamespace:mytable" -
Per specificare una tabella figlio
"table" : "mytable.child"
Nota: è possibile eseguire la migrazione delle tabelle figlio da un'origine dati valida a Oracle NoSQL Database. NoSQL Database Migrator copia solo una singola tabella in ogni esecuzione. Assicurarsi che venga eseguita la migrazione della tabella padre prima della tabella figlio.
-
-
Scopo: specifica se includere o meno i metadati TTL per le righe di tabella fornite dall'origine durante l'importazione delle tabelle di Oracle NoSQL Database.
Se questo parametro non viene specificato, il valore predefinito è
false. In tal caso, NoSQL Database Migrator non include i metadati TTL per le righe di tabella fornite dall'origine durante l'importazione delle tabelle di Oracle NoSQL Database.Se impostato su true, lo strumento NoSQL Database Migrator esegue i controlli riportati di seguito sui metadati TTL durante l'importazione di una riga di tabella.
-
Se si importa una riga che non ha una definizione
_metadata, lo strumento NoSQL Database Migrator imposta il TTL su 0, il che significa che la riga non scade mai. -
Se si importa una riga con definizione
_metadata, lo strumento Migrazione database NoSQL confronta il valore TTL con un tempo di riferimento quando una riga viene importata. Se la riga è già scaduta rispetto al tempo di riferimento, viene saltata. Se la riga non è scaduta, viene importata insieme al valore TTL. Per impostazione predefinita, il tempo di riferimento dell'operazione di importazione è il tempo corrente in millisecondi, ottenuto da System.currentTimeMillis(), del computer in cui è in esecuzione lo strumento NoSQL Database Migrator. È tuttavia possibile impostare un tempo di riferimento personalizzato utilizzando il parametro di configurazionettlRelativeDatese si desidera estendere l'ora di scadenza e importare le righe che altrimenti scadrebbero immediatamente.La formula per calcolare il tempo di scadenza di una riga è la seguente:
expiration = (TTL value of source row in milliseconds - Reference Time in milliseconds) if (expiration <= 0) then it indicates that row has expired.
Nota: poiché i limiti TTL di Oracle NoSQL sono espressi in ore e giorni, in alcuni casi, il TTL della riga importata potrebbe essere adeguato all'ora o al giorno più vicini. Ad esempio, si consideri una riga con valore di scadenza
1629709200000 (2021-08-23 09:00:00)e il valore di tempo di riferimento è1629707962582 (2021-08-23 08:39:22). In questo caso, anche se la riga non è scaduta rispetto al tempo di riferimento durante l'importazione di questi dati, il nuovo TTL per la riga è1629712800000 (2021-08-23 10:00:00). -
-
Tipo di dati: booleano
-
Obbligatorio (S/N): N
-
Esempio:
"includeTTL" : true
-
Scopo: specificare una data UTC nel formato AAAA-MM-GG hh:mm:ss utilizzato per impostare la scadenza TTL delle righe di tabella durante l'importazione in Oracle NoSQL Database.
Se una riga di tabella nei dati che si sta esportando è scaduta, è possibile impostare il parametro ttlRelativeDate su una data precedente all'ora di scadenza della riga di tabella nei dati esportati.
Se non si specifica questo parametro, per impostazione predefinita viene utilizzato il tempo corrente in millisecondi, ottenuto da System.currentTimeMillis(), del computer in cui è in esecuzione lo strumento NoSQL Database Migrator.
-
Tipo di dati: data
-
Obbligatorio (S/N): N
-
Esempio:
"ttlRelativeDate" : "2021-01-03 04:31:17"Consideriamo uno scenario in cui le righe di tabella scadono dopo sette giorni dal 1° gennaio 2021. Dopo aver esportato questa tabella, il 7 gennaio 2021 si verifica un problema con la tabella e si decide di importare i dati. Le righe della tabella scadranno tra un giorno (data di scadenza meno il valore predefinito del parametro di configurazione
ttlRelativedate, ovvero la data corrente). Tuttavia, se si desidera estendere la data di scadenza delle righe di tabella a cinque giorni anziché a un giorno, utilizzare il parametrottlRelativeDatee scegliere una data precedente. Pertanto, in questo scenario, se si desidera estendere la durata di scadenza delle righe della tabella di cinque giorni, impostare il valore dei parametri di configurazionettlRelativeDatesu 3-gen-2021, utilizzato come ora di riferimento quando le righe della tabella vengono importate.
-
Scopo: specifica lo schema per i dati di cui si esegue la migrazione. Se questa opzione non viene specificata, NoSQL Database Migrator presuppone che la tabella esista già nell'area di memorizzazione del sink.
-
Tipo di dati: oggetto
-
Obbligatorio (S/N): N
-
Scopo: specifica il percorso assoluto di un file contenente le istruzioni DDL per la tabella NoSQL.
NoSQL Database Migrator esegue i comandi DDL elencati in questo file prima di eseguire la migrazione dei dati.
NoSQL Database Migrator non supporta più di un'istruzione DDL per riga nel file
schemaPath. -
Stringa Tipo di dati:
-
Obbligatorio (S/N): N
Nota:
defaultSchemaeschemaPathsi escludono a vicenda. -
Esempio:
"schemaPath" : "/home/user/schema_file"
-
Scopo: l'impostazione di questo parametro su true indica a NoSQL Database Migrator di creare una tabella con lo schema predefinito. Lo schema predefinito è definito dal migratore stesso. Per ulteriori informazioni sulle definizioni di schema predefinite, vedere Schema predefinito in Utilizzo di Oracle NoSQL Data Migrator .
-
Tipo di dati: booleano
-
Obbligatorio (S/N): N
Nota:
defaultSchemaeschemaPathsi escludono a vicenda.
-
Scopo: specifica se il sink utilizza o meno la definizione dello schema della tabella fornita dall'origine durante la migrazione delle tabelle NoSQL.
-
Tipo di dati: booleano
-
Obbligatorio (S/N): N
Nota: i parametri defaultSchema, schemaPath e useSourceSchema si escludono a vicenda. Specificare solo uno di questi parametri.
-
Esempio:
-
Con schema predefinito:
"schemaInfo" : { "defaultSchema" : true } -
Con uno schema predefinito:
"schemaInfo" : { "schemaPath" : "<complete/path/to/the/schema/definition/file>" } -
Con schema di origine:
"schemaInfo" : { "useSourceSchema" : true }
-
-
Scopo: specifica la chiave di partizione DynamoDB e il tipo di Oracle NoSQL Database corrispondente da utilizzare nella tabella sink di Oracle NoSQL Database. Questa chiave verrà utilizzata come chiave partizione della tabella DB NoSQL. Questa opzione è applicabile solo se
defaultSchemaè impostato su true e il formato di origine èdynamodb_json. Per ulteriori dettagli, vedere Mapping dei tipi DynamoDB ai tipi Oracle NoSQL. -
Obbligatorio (S/N): Y, se
defaultSchemaè true e l'origine èdynamodb_json. -
Esempio:
"DDBPartitionKey" : "PersonID:INTEGER"Nota: se la chiave di partizione contiene trattini (-) o punti (.), Migrator la sostituirà con caratteri di sottolineatura (_) poiché il nome della colonna NoSQL non supporta punti e trattini.
-
Scopo: specifica la chiave di ordinamento DynamoDB e il tipo di Oracle NoSQL Database corrispondente da utilizzare nella tabella di destinazione di Oracle NoSQL Database. Se la tabella DynamoDB di importazione non dispone di una chiave di ordinamento, questo attributo non deve essere impostato. Questa chiave verrà utilizzata come parte non partizione della chiave primaria nella tabella DB NoSQL. Questa opzione è applicabile solo se
defaultSchemaè impostato su true e l'origine èdynamodb_json. Per ulteriori dettagli, vedere Mapping dei tipi DynamoDB ai tipi Oracle NoSQL. -
Obbligatorio (S/N): N
-
Esempio:
"DDBSortKey" : "Skey:STRING"Nota: se la chiave di ordinamento contiene trattini (-) o punti (.), Migrator la sostituirà con caratteri di sottolineatura (_) poiché il nome della colonna NoSQL non supporta punti e trattini.
-
Scopo: indica il funzionamento di NoSQL Database Migrator quando il record di cui si esegue la migrazione dall'origine è già presente nel sink.
Se il valore è impostato su false, durante la migrazione delle tabelle NoSQL Database Migrator salta i record per i quali la stessa chiave primaria esiste già nel sink.
Se il valore è impostato su true, durante la migrazione delle tabelle NoSQL Database Migrator sovrascrive i record per i quali la stessa chiave primaria esiste già nel sink.
Se non viene specificato, le impostazioni predefinite saranno true.
-
Tipo di dati: booleano
-
Obbligatorio (S/N): N
-
Esempio:
"overwrite" : false
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
-
Usa
"type" : "nosqldb_cloud" -
Esempio:
-
ID area:
"endpoint" : "us-ashburn-1" -
Formato URL:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Esempio:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Esempio:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Esempio:
"useInstancePrincipal" : true -
Esempio:
"useDelegationToken" : trueNota: l'autenticazione con token di delega è supportata solo quando NoSQL Database Migrator è in esecuzione da Cloud Shell.
-
Esempio:
"useOKEWorkloadIdentity" : true -
Esempio:
"useSessionToken" : true -
Esempio:
"requestTimeoutMs" : 5000
Parametro di configurazione univoco
-
Scopo: specifica il nome della tabella in cui memorizzare i dati migrati.
È necessario assicurarsi che questa tabella esista in Oracle NoSQL Database Cloud Service. In caso contrario, è necessario utilizzare l'oggetto
schemaInfonella configurazione del sink per indicare a NoSQL Database Migrator di creare la tabella.Lo schema di questa tabella deve corrispondere ai dati di origine.
-
Stringa Tipo di dati:
-
Obbligatorio (S/N): Y
-
Esempio:
-
Per specificare una tabella
"table" : "mytable" -
Per specificare una tabella figlio
"table" : "mytable.child"
Nota: è possibile eseguire la migrazione delle tabelle figlio da un'origine dati valida a Oracle NoSQL Database Cloud Service. NoSQL Database Migrator copia solo una singola tabella in ogni esecuzione. Assicurarsi che venga eseguita la migrazione della tabella padre prima della tabella figlio.
-
-
Scopo: specifica il nome o l'OCID del compartimento in cui risiede la tabella.
Se non viene fornito alcun valore, per impostazione predefinita viene utilizzato il compartimento root.
È possibile trovare l'OCID del compartimento dalla finestra Explorer compartimenti in Governance nella console cloud OCI.
-
Stringa Tipo di dati:
-
Obbligatorio (Y/N): Y, se la tabella non si trova nel compartimento radice della tenancy OPPURE quando il parametro useInstancePrincipal è impostato su true.
Nota: se il parametro useInstancePrincipal è impostato su true, il compartimento deve specificare l'OCID del compartimento e non il nome.
-
Esempio:
-
Nome compartimento
"compartment" : "mycompartment" -
Nome del compartimento qualificato con il relativo compartimento padre
"compartment" : "parent.childcompartment" -
Non è stato fornito alcun valore. Il valore predefinito è il compartimento radice.
"compartment": "" -
OCID compartimento
"compartment" : "ocid1.tenancy.oc1...4ksd"
-
-
Scopo: specifica se includere o meno i metadati TTL per le righe di tabella fornite dall'origine durante l'importazione delle tabelle di Oracle NoSQL Database.
Se questo parametro non viene specificato, il valore predefinito è
false. In tal caso, NoSQL Database Migrator non include i metadati TTL per le righe di tabella fornite dall'origine durante l'importazione delle tabelle di Oracle NoSQL Database.Se impostato su true, lo strumento NoSQL Database Migrator esegue i controlli riportati di seguito sui metadati TTL durante l'importazione di una riga di tabella.
-
Se si importa una riga che non ha una definizione
_metadata, lo strumento NoSQL Database Migrator imposta il TTL su 0, il che significa che la riga non scade mai. -
Se si importa una riga con definizione
_metadata, lo strumento Migrazione database NoSQL confronta il valore TTL con un tempo di riferimento quando una riga viene importata. Se la riga è già scaduta rispetto al tempo di riferimento, viene saltata. Se la riga non è scaduta, viene importata insieme al valore TTL. Per impostazione predefinita, il tempo di riferimento dell'operazione di importazione è il tempo corrente in millisecondi, ottenuto da System.currentTimeMillis(), del computer in cui è in esecuzione lo strumento NoSQL Database Migrator. È tuttavia possibile impostare un tempo di riferimento personalizzato utilizzando il parametro di configurazionettlRelativeDatese si desidera estendere l'ora di scadenza e importare le righe che altrimenti scadrebbero immediatamente.La formula per calcolare il tempo di scadenza di una riga è la seguente:
expiration = (TTL value of source row in milliseconds - Reference Time in milliseconds) if (expiration <= 0) then it indicates that row has expired.
Nota: poiché i limiti TTL di Oracle NoSQL sono espressi in ore e giorni, in alcuni casi, il TTL della riga importata potrebbe essere adeguato all'ora o al giorno più vicini. Ad esempio, si consideri una riga con valore di scadenza
1629709200000 (2021-08-23 09:00:00)e il valore di tempo di riferimento è1629707962582 (2021-08-23 08:39:22). In questo caso, anche se la riga non è scaduta rispetto al tempo di riferimento durante l'importazione di questi dati, il nuovo TTL per la riga è1629712800000 (2021-08-23 10:00:00). -
-
Tipo di dati: booleano
-
Obbligatorio (S/N): N
-
Esempio:
"includeTTL" : true
-
Scopo: specificare una data UTC nel formato AAAA-MM-GG hh:mm:ss utilizzato per impostare la scadenza TTL delle righe di tabella durante l'importazione in Oracle NoSQL Database.
Se una riga di tabella nei dati che si sta esportando è scaduta, è possibile impostare il parametro
ttlRelativeDatesu una data precedente all'ora di scadenza della riga di tabella nei dati esportati.Se non si specifica questo parametro, per impostazione predefinita viene utilizzato il tempo corrente in millisecondi, ottenuto da System.currentTimeMillis(), del computer in cui è in esecuzione lo strumento NoSQL Database Migrator.
-
Tipo di dati: data
-
Obbligatorio (S/N): N
-
Esempio:
"ttlRelativeDate" : "2021-01-03 04:31:17"Consideriamo uno scenario in cui le righe di tabella scadono dopo sette giorni dal 1° gennaio 2021. Dopo aver esportato questa tabella, il 7 gennaio 2021 si verifica un problema con la tabella e si decide di importare i dati. Le righe della tabella scadranno tra un giorno (data di scadenza meno il valore predefinito del parametro di configurazione
ttlRelativedate, ovvero la data corrente). Tuttavia, se si desidera estendere la data di scadenza delle righe di tabella a cinque giorni anziché a un giorno, utilizzare il parametrottlRelativeDatee scegliere una data precedente. Pertanto, in questo scenario, se si desidera estendere la durata di scadenza delle righe della tabella di cinque giorni, impostare il valore dei parametri di configurazionettlRelativeDatesu 3-gen-2021, utilizzato come ora di riferimento quando le righe della tabella vengono importate.
-
Scopo: specifica lo schema per i dati di cui si esegue la migrazione.
Se non si specifica questo parametro, NoSQL Database Migrator presuppone che la tabella esista già in Oracle NoSQL Database Cloud Service.
Se questo parametro non è specificato e la tabella non esiste nel sink, la migrazione non riesce.
-
Tipo di dati: oggetto
-
Obbligatorio (S/N): N
-
Scopo: specifica il percorso assoluto di un file contenente le istruzioni DDL per la tabella NoSQL.
NoSQL Database Migrator esegue i comandi DDL elencati in questo file prima di eseguire la migrazione dei dati.
NoSQL Database Migrator non supporta più di un'istruzione DDL per riga nel file
schemaPath. -
Stringa Tipo di dati:
-
Obbligatorio (S/N): N
Nota: defaultSchema e schemaPath si escludono a vicenda.
- Esempio:
"schemaPath" : "/home/user/schema_file"
-
Scopo: l'impostazione di questo parametro su Sì indica a NoSQL Database Migrator di creare una tabella con lo schema predefinito. Lo schema predefinito è definito dal migratore stesso. Per ulteriori informazioni sulle definizioni di schema predefinite, vedere Schema predefinito in Utilizzo di Oracle NoSQL Data Migrator .
-
Tipo di dati: booleano
-
Obbligatorio (S/N): N
Nota:
defaultSchemaeschemaPathsi escludono a vicenda.
-
Scopo: specifica se il sink utilizza o meno la definizione dello schema della tabella fornita dall'origine durante la migrazione delle tabelle NoSQL.
-
Tipo di dati: booleano
-
Obbligatorio (S/N): N
Nota: i parametri defaultSchema, schemaPath e useSourceSchema si escludono a vicenda. Specificare solo uno di questi parametri.
-
Esempio:
-
Con schema predefinito:
"schemaInfo": { "defaultSchema": true, "readUnits": 100, "writeUnits": 60, "storageSize": 1 } -
Con uno schema predefinito:
"schemaInfo": { "schemaPath": "<complete/path/to/the/schema/definition/file>", "readUnits": 100, "writeUnits": 100, "storageSize": 1 } -
Con schema di origine:
"schemaInfo": { "useSourceSchema": true, "readUnits": 100, "writeUnits": 60, "storageSize": 1 }
-
-
Scopo: specifica la chiave di partizione DynamoDB e il tipo di Oracle NoSQL Database corrispondente da utilizzare nella tabella sink di Oracle NoSQL Database. Questa chiave verrà utilizzata come chiave partizione della tabella DB NoSQL. Questa opzione è applicabile solo se
defaultSchemaè impostato su true e il formato di origine èdynamodb_json. Per ulteriori dettagli, vedere Mapping dei tipi DynamoDB ai tipi Oracle NoSQL. -
Obbligatorio (S/N): Y, se
defaultSchemaè true e l'origine èdynamodb_json. -
Esempio:
"DDBPartitionKey" : "PersonID:INTEGER"Nota: se la chiave di partizione contiene trattini (-) o punti (.), Migrator la sostituirà con caratteri di sottolineatura (_) poiché il nome della colonna NoSQL non supporta punti e trattini.
-
Scopo: specifica la chiave di ordinamento DynamoDB e il tipo di Oracle NoSQL Database corrispondente da utilizzare nella tabella di destinazione di Oracle NoSQL Database. Se la tabella DynamoDB di importazione non dispone di una chiave di ordinamento, questo attributo non deve essere impostato. Questa chiave verrà utilizzata come parte non partizione della chiave primaria nella tabella DB NoSQL. Questa opzione è applicabile solo se
defaultSchemaè impostato su true e l'origine èdynamodb_json. Per ulteriori dettagli, vedere Mapping dei tipi DynamoDB ai tipi Oracle NoSQL. -
Obbligatorio (S/N): N
-
Esempio:
"DDBSortKey" : "Skey:STRING"Nota: se la chiave di ordinamento contiene trattini (-) o punti (.), Migrator la sostituirà con caratteri di sottolineatura (_) poiché il nome della colonna NoSQL non supporta punti e trattini.
-
Scopo: specifica di creare la tabella con throughput di lettura e scrittura su richiesta. Se questo parametro non è impostato, la tabella viene creata con capacità di cui è stato eseguito il provisioning.
Il valore predefinito è
false.
Nota: questo parametro non è applicabile alle tabelle figlio in quanto condividono il throughput della tabella padre di livello superiore.
-
Tipo di dati: booleano
-
Obbligatorio (S/N): N
-
Esempio:
"onDemandThroughput" : "true"
-
Scopo: specifica il throughput di lettura della nuova tabella.
div class="infoboxnote" markdown="1">
Nota:
-
Questo parametro non è applicabile alle tabelle di cui è stato eseguito il provisioning con capacità su richiesta.
-
Questo parametro non è applicabile alle tabelle figlio in quanto condividono il throughput di lettura della tabella padre di livello superiore.
</div>
-
-
Tipo di dati: numero intero
-
Obbligatorio (S/N): Y, se la tabella non è una tabella figlio o se il parametro schemaInfo.onDemandThroughput è impostato su
false, altrimenti N. -
Esempio:
"readUnits" : 100
-
Scopo: specifica il throughput di scrittura della nuova tabella.
Nota:
- Questo parametro non è applicabile alle tabelle di cui è stato eseguito il provisioning con capacità su richiesta.
- Questo parametro non è applicabile alle tabelle figlio in quanto condividono il throughput di scrittura della tabella padre di livello superiore.
-
Tipo di dati: numero intero
-
Obbligatorio (S/N): Y, se la tabella non è una tabella figlio o se il parametro schemaInfo.onDemandThroughput è impostato su
false, altrimenti N. -
Esempio:
"writeUnits" : 100
-
Scopo: specifica la dimensione di storage della nuova tabella in GB.
Nota: questo parametro non è applicabile alle tabelle figlio in quanto condividono le dimensioni di memorizzazione della tabella padre di livello superiore.
-
Tipo di dati: numero intero
-
Obbligatorio (S/N): Y, se la tabella non è una tabella figlio, altrimenti N.
-
Esempio:
-
Con
schemaPath"schemaInfo" : { "schemaPath" : "</path/to/a/schema/file>", "readUnits" : 500, "writeUnits" : 1000, "storageSize" : 5 } -
Con
defaultSchema"schemaInfo" : { "defaultSchema" :Yes, "readUnits" : 500, "writeUnits" : 1000, "storageSize" : 5 }
-
-
Scopo: specifica la percentuale di unità di scrittura tabella da utilizzare durante l'attività di migrazione. Il tempo necessario per eseguire la migrazione dei dati è direttamente proporzionale a questo attributo.
Il valore predefinito per il server di amministrazione è 90. L'intervallo valido è un numero intero compreso tra 1 e 100.
Per informazioni su come utilizzare questo attributo per migliorare la velocità di migrazione dei dati, vedere Risoluzione dei problemi di Oracle NoSQL Database Migrator
-
Tipo di dati: numero intero
-
Obbligatorio (S/N): N
-
Esempio:
"writeUnitsPercent" : 90
-
Scopo: indica il funzionamento di NoSQL Database Migrator quando il record di cui si esegue la migrazione dall'origine è già presente nel sink.
Se il valore è impostato su false, durante la migrazione delle tabelle NoSQL Database Migrator salta i record per i quali la stessa chiave primaria esiste già nel sink.
Se il valore è impostato su true, durante la migrazione delle tabelle NoSQL Database Migrator sovrascrive i record per i quali la stessa chiave primaria esiste già nel sink.
Se non viene specificato, le impostazioni predefinite saranno true.
-
Tipo di dati: booleano
-
Obbligatorio (S/N): N
-
Esempio:
"overwrite" : false
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
-
Scopo: array dei nomi di colonna da ignorare dai record di origine.
Nota: è possibile fornire solo campi di livello superiore. Impossibile applicare le trasformazioni ai dati nei campi nidificati.
-
Tipo di dati: array di stringhe
-
Obbligatorio (S/N): Y
-
Esempio: per ignorare le colonne denominate "nome" e "indirizzo" dal record di origine, effettuare le operazioni riportate di seguito.
"ignoreFields" : ["name","address"]
includeCampi
Il formato del file di configurazione per la trasformazione includeFields è mostrato di seguito.
Modello configurazione trasformazione
"transforms" : {
"includeFields" : ["<field1>","<field2>",...]
}
Parametro trasformazione
includeCampi
-
Scopo: array dei nomi di colonna da includere nei record di origine. solo include i campi specificati nell'array, mentre il resto dei campi viene ignorato.
Nota: se si specifica un array vuoto, lo strumento NoSQL Database Migrator genera un errore. Inoltre, è possibile specificare solo i campi di livello superiore. Lo strumento NoSQL Database Migrator non applica le trasformazioni ai dati nei campi nidificati.
-
Tipo di dati: array di stringhe
-
Obbligatorio (S/N): Y
-
Esempio: per includere le colonne denominate "età" e "genere" dal record di origine, effettuare le operazioni riportate di seguito.
"includeFields" : ["age","gender"]
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
-
Scopo: coppie chiave-valore dei nomi vecchi e nuovi delle colonne da rinominare.
Nota: è possibile fornire solo campi di livello superiore. Le trasformazioni non possono essere applicate ai dati nei campi nidificati.
-
Tipo di dati: oggetto JSON
-
Obbligatorio (S/N): Y
-
Esempio: per rinominare la colonna denominata "residence" in "address" e la colonna denominata "_id" in "id":
"renameFields" : { "residence" : "address", "_id" : "id" }
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
-
Scopo: nome del campo aggregato nel sink.
-
Stringa Tipo di dati:
-
Obbligatorio (S/N): Y
-
Esempio: se il record specificato è:
{ "id" : 100, "name" : "john", "address" : "USA", "age" : 20 }Se la trasformazione aggregata è:
"aggregateFields" : { "fieldName" : "document", "skipFields" : ["id"] }La colonna aggregata nel lavandino assomiglia a:
{ "id": 100, "document": { "name": "john", "address": "USA", "age": 20 } }
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:
-
DynamoDB supporta un solo tipo di dati per i numeri e può avere fino a 38 cifre di precisione. Al contrario, Oracle NoSQL supporta molti tipi tra cui scegliere in base all'intervallo e alla precisione dei dati. È possibile selezionare il tipo di numero appropriato che si adatta all'intervallo dei dati di input. Se non si è certi della natura dei dati, è possibile utilizzare il tipo NoSQL NUMBER.
-
DynamoDB supporta un solo tipo di dati per i numeri e può avere fino a 38 cifre di precisione. Al contrario, Oracle NoSQL supporta molti tipi tra cui scegliere in base all'intervallo e alla precisione dei dati. È possibile selezionare il tipo di numero appropriato che si adatta all'intervallo dei dati di input. Se non si è certi della natura dei dati, è possibile utilizzare il tipo NoSQL NUMBER.
-
La chiave di partizione in DynamoDB ha un limite di 2048 byte, ma Oracle NoSQL Cloud Service ha un limite di 64 byte per la chiave primaria/chiave partizione.
-
La chiave di ordinamento in DynamoDB ha un limite di 1024 byte, ma Oracle NoSQL Cloud Service ha un limite di 64 byte per la chiave primaria.
-
I nomi degli attributi in DynamoDB possono essere lunghi 64 KB, ma i nomi delle colonne del servizio Oracle NoSQL Cloud hanno un limite di 64 caratteri.
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) | |
| MAP(T) nome_campo | |
| campo_nome RECORD(K1 T1 N1, K ⁇ 2 T2 N2, ....) dove: K = Nome chiave T = Tipo N = annullabile o no |
|
| 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:
-
Chiave di partizione: una chiave primaria semplice, composta da un attributo noto come chiave di partizione. DynamoDB utilizza il valore della chiave di partizione come input per una funzione hash interna. L'output della funzione hash determina la partizione in cui verrà memorizzato l'elemento.
-
Chiave di partizione e chiave di ordinamento: come chiave primaria composta, questo tipo di chiave è composto da due attributi. Il primo attributo è la chiave di partizione e il secondo è la chiave di ordinamento. DynamoDB utilizza il valore della chiave di partizione come input per una funzione hash interna. L'output della funzione hash determina la partizione in cui verrà memorizzato l'elemento. Tutti gli elementi con lo stesso valore della chiave di partizione vengono memorizzati insieme, in ordine in base al valore della chiave di ordinamento.
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:
-
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
AggregateFieldsper aggregare i dati della chiave non primaria in una colonna JSON.Nota: Migrator fornisce una configurazione intuitiva
defaultSchemaper creare automaticamente una tabella DDL priva di schema che aggrega anche gli attributi in una colonna JSON. -
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. |
|
Failed to connect to Oracle NoSQL Database Cloud Service |
Il migratore non è riuscito a stabilire una connessione a Oracle NoSQL Database Cloud Service. |
|
Table not found |
La tabella identificata per la migrazione non può essere individuata da NoSQL Database Migrator. | Per la fonte:
Per il lavandino:
|
DDL Execution failed |
I comandi DDL forniti nel file di definizione dello schema di input non sono validi. |
|
failed to write record to the sink table with java.lang.IllegalArgumentException |
Il record di input non corrisponde allo schema di tabella del sink. |
|
Request timeout |
L'operazione dell'origine o del sink non è stata completata entro il tempo previsto. |
|
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.
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:
-
Prendere in considerazione l'esecuzione della migrazione durante le ore non lavorative quando il carico sul database è inferiore.
-
Prendi in considerazione l'allocazione della VM in cui verrà eseguito NoSQL Database Migrator, la definizione dell'origine dati e la definizione del data sink nella stessa area OCI per garantire latenze di rete minime.
-
In caso di Oracle NoSQL Database Cloud Service, verificare se lo storage allocato per la tabella è sufficiente. Se NoSQL Database Migrator non sta creando la tabella, è possibile aumentare il throughput di scrittura. Se il migratore sta creando la tabella, considerare la possibilità di specificare un valore superiore per il parametro
schemaInfo.writeUnitsnella configurazione del sink. Al termine della migrazione dei dati, è possibile ridurre questo valore.Nota: il numero di volte in cui è possibile aumentare i limiti di throughput o storage non è limitato. È possibile ridurre i limiti di throughput o storage solo fino a 4 volte in un periodo di 24 ore. Vedere Limiti cloud e Modelli di configurazione dei collegamenti.
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:
-
Migrazione da Oracle NoSQL Database Cloud Service/tabelle on premise al sink di file system/Object Storage:
Impostare i parametri useMultiFiles e chunkSize nella configurazione Migrator. Il parametro
useMultiFilescrea più file/oggetti nel sink. Il parametrochunkSizedetermina la dimensione di ciascun file durante l'esportazione dei dati.Ad esempio: per esportare dati da 2 GB, impostando il parametro
useMultiFilessu true e il parametrochunkSizesu 40 MB, l'utility Migrator scriverà 50 file da 40 MB ciascuno.Nota: la utility Migrator può attualmente elaborare 100 flussi in parallelo. Pertanto, impostare il parametro
chunkSizesu un valore di dimensione file ottimale in modo che la utility Migrator crei un massimo di 100 file durante l'esportazione dei dati. -
Migrazione da un sink di file system/Object Storage a Oracle NoSQL Database Cloud Service/on-premise:
-
Se il file system/lo storage degli oggetti ha esportato dati contenenti più file/oggetti da una migrazione precedente, la utility Migrator elabora automaticamente i file in parallelo per ottenere una maggiore velocità di migrazione durante l'importazione dei dati.
-
Se si esegue la migrazione dei dati da altri file system o storage degli oggetti esterni, considerare la possibilità di suddividere i dati in più file o più oggetti nell'origine dati.
Nota:
-
In caso di sink di Oracle NoSQL Database Cloud Service, devi configurare un throughput di scrittura e una percentuale di unità di scrittura tabella sufficienti per elaborare fino a 100 flussi durante l'operazione di migrazione.
-
Se si dispone di più di 100 file di origine, l'utility Migrator crea un massimo di 100 flussi e distribuisce i file tra di essi durante l'importazione dei dati. I file in ogni flusso verranno migrati in sequenza.
-
-
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.