Referencia del Oracle NoSQL Database Migrator
Obtenga información sobre los parámetros de plantilla de configuración de origen, disquete y transformación disponibles para Oracle NoSQL Database Migrator.
En este artículo se incluyen los siguientes temas:
Parámetros
NoSQL Database Migrator necesita un archivo de configuración en el que se definan todos los parámetros para realizar la actividad de migración. Algunos parámetros son comunes en varias fuentes y sumideros. En este tema se proporciona una lista de estos parámetros comunes. Para obtener la lista de otros parámetros que son exclusivos de orígenes o sumideros individuales, consulte las secciones correspondientes de la plantilla de configuración.
Parámetros de configuración comunes
A continuación, se muestran los parámetros de configuración comunes. Consulte las secciones de plantillas de configuración individuales para obtener ejemplos.
-
Propósito: especifica el nombre del cubo de OCI Object Storage, que contiene los objetos de origen/sink.
Asegúrese de que el cubo necesario ya existe en la instancia de OCI Object Storage y tiene permisos de lectura/escritura.
-
Tipo de datos: cadena
-
Obligatorio (Y/N): Y
-
Propósito: especifica el tamaño máximo de un
chunkde datos de tabla que se van a almacenar en el fregadero. El valor está en MB. Durante la migración, una tabla se divide en fragmentoschunkSizey cada fragmento se escribe como un archivo independiente en el fregadero. Se crea un nuevo archivo cuando los datos de origen que se están migrando superan el valorchunkSize.Si no se especifica, el valor por defecto es 32 MB. El valor válido es un entero comprendido entre 1 y 1024.
Para obtener más información sobre cómo mejorar la velocidad de migración mediante el parámetro
chunkSize, consulte Mejores prácticas. -
Tipo de datos: Entero
-
Obligatorio (Y/N): N
-
Propósito: especifica la ruta de acceso absoluta a un archivo que contiene credenciales de OCI. NoSQL Database Migrator utiliza este archivo para conectarse al servicio OCI, como Oracle NoSQL Database Cloud Service, OCI Object Storage, etc.
El valor por defecto es
$HOME/.oci/configConsulte Configuración de ejemplo o un ejemplo del archivo de credenciales.
Nota: Sólo puede seleccionar una de las opciones de autenticación. Por lo tanto, especifique solo uno de estos parámetros:
credentials, useDelegationToken, useSessionToken o useOKEWorkloadIdentity en la plantilla de configuración. -
Tipo de datos: cadena
-
Obligatorio (Y/N): N
-
Propósito: especifica el nombre del perfil de configuración que se va a utilizar para conectarse al servicio OCI, como Oracle NoSQL Database Cloud Service, OCI Object Storage, etc. Las credenciales de cuentas de usuario se les conoce como perfil.
Si no especifica este valor, NoSQL Database Migrator utiliza el perfil
DEFAULT.Nota: Este parámetro solo es válido si se especifica el parámetro credenciales.
-
Tipo de datos: cadena
-
Obligatorio (Y/N): N
-
Objetivo: especifica una de las siguientes opciones:
-
URL de punto final de servicio o ID de región para el servicio OCI Object Storage. Para obtener una lista de los puntos finales del servicio OCI Object Storage, consulte Puntos finales de Object Storage
-
URL de punto final de servicio o ID de región de Oracle NoSQL Database Cloud Service. Puede especificar solo la URL completa o el ID de región. Para obtener una lista de las regiones de datos soportadas para Oracle NoSQL Database Cloud Service, consulte Regiones de datos y URL de servicio asociadas en el documento de Oracle NoSQL Database Cloud Service.
-
-
Tipo de datos: cadena
-
Obligatorio (Y/N): Y
-
Propósito: especifica el formato de origen/sink.
-
Tipo de datos: cadena
-
Obligatorio (Y/N): Y
-
Propósito: especifica el espacio de nombres del servicio OCI Object Storage. Éste es un parámetro opcional. Si no especifica este parámetro, la utilidad Migrator utiliza el espacio de nombres asignado al arrendamiento.
Por ejemplo, el parámetro de espacio de nombres es útil cuando desea utilizar un sistema operativo OCI de un arrendamiento que sea diferente del suyo. En estos casos, el espacio de nombres del arrendamiento del sistema operativo OCI es diferente del espacio de nombres de su arrendamiento. Durante la migración, la utilidad Migrator toma por defecto el espacio de nombres de su arrendamiento, a menos que se especifique lo contrario. Por lo tanto, para indicar a la utilidad Migrator que seleccione el espacio de nombres del arrendamiento del sistema operativo OCI, debe especificar el nombre del arrendamiento del sistema operativo OCI en el parámetro del espacio de nombres.
-
Tipo de datos: cadena
-
Obligatorio (Y/N): N
-
Propósito: el prefijo actúa como un contenedor o directorio lógico para almacenar datos en el cubo de OCI Object Storage.
-
Plantilla de configuración de origen: si se especifica el parámetro
prefix, se migran todos los objetos del directorio especificado en el parámetroprefix. De lo contrario, todos los objetos presentes en el cubo se migran. -
Plantilla de configuración de disipador: si se especifica el parámetro
prefix, se crea un directorio con el prefijo especificado en el cubo y los objetos se migran a este directorio. De lo contrario, el nombre de tabla del origen se utiliza como prefijo. Si ya existe un objeto con el mismo nombre en el cubo, se sobrescribe.
Para obtener más información sobre los prefijos, consulte Nomenclatura de objetos mediante prefijos y jerarquías.
-
-
Tipo de datos: cadena
-
Obligatorio (Y/N): N
-
Propósito: especifica el tiempo que se debe esperar a que se complete cada operación de lectura/escritura desde/hacia el almacén. Este valor se proporciona en milisegundos. El valor por defecto es 5.000. El valor puede ser cualquier entero positivo.
-
Tipo de datos: número entero
-
Obligatorio (Y/N): N
-
Propósito: especifica la ruta de acceso absoluta al archivo de conexión de seguridad que contiene las credenciales del almacén si el almacén es un almacén seguro. Para obtener más información sobre el archivo de inicio de sesión de seguridad, consulte Realización de una instalación segura de Oracle NoSQL Database.
Puede utilizar la autenticación basada en archivo de contraseñas o la autenticación basada en cartera. Sin embargo, la autenticación basada en cartera solo está soportada en Enterprise Edition (EE) de Oracle NoSQL Database. Para obtener más información sobre la autenticación basada en cartera, consulte Source and Sink Security.
La edición Community Edition (CE) solo admite la autenticación basada en archivos de contraseña.
-
Tipo de datos: cadena
-
Obligatorio (Y/N): Y, para un almacén seguro
-
Objetivo: identifica el tipo de origen/disipador.
-
Tipo de datos: cadena
-
Obligatorio (Y/N): Y
-
Propósito: especifica si la herramienta NoSQL Database Migrator utiliza o no una autenticación de token de delegación para conectarse a los servicios de OCI. Debe usar la autenticación de token de delegación para ejecutar la utilidad Migrator desde Cloud Shell. El token de delegación se crea automáticamente para el usuario cuando se llama a Cloud Shell.
El valor por defecto es
false.Tenga en cuenta lo siguiente:
-
La autenticación con token de delegación solo está soportada cuando la herramienta NoSQL Database Migrator se ejecuta desde Cloud Shell.
-
Solo puede seleccionar una de las opciones de autenticación. Por lo tanto, especifique solo uno de estos parámetros: credenciales, useInstancePrincipal,
useDelegationToken, useSessionToken o useOKEWorkloadIdentity en la plantilla de configuración. -
Cloud Shell solo soporta la migración entre los siguientes orígenes y sumideros:
Tipo Origen válido Fregadero válido Oracle NoSQL Database Cloud Service ( nosqldb_cloud)S S Archivo (archivo JSON en el directorio raíz) S S OCI Object Storage (archivo JSON) ( object_storage_oci)S S OCI Object Storage (archivo de parquet) ( object_storage_oci)N S
-
-
Tipo de datos: booleano
-
Obligatorio (Y/N): N
-
Propósito: especifica si la herramienta NoSQL Database Migrator utiliza o no la autenticación de principal de instancia para conectarse al servicio OCI, como Oracle NoSQL Database Cloud Service, OCI Object Storage, etc. Para obtener más información sobre el método de autenticación del principal de instancia, consulte Source and Sink Security.
El valor por defecto es
false.Nota:
-
La autenticación con los principales de instancias solo está soportada cuando la herramienta NoSQL Database Migrator se ejecuta en una instancia informática de OCI, por ejemplo, la herramienta NoSQL Database Migrator que se ejecuta en una máquina virtual alojada en OCI.
-
Solo puede seleccionar una de las opciones de autenticación. Por lo tanto, especifique solo uno de estos parámetros: credenciales,
useInstancePrincipal, useDelegationToken, useSessionToken o useOKEWorkloadIdentity en la plantilla de configuración.
-
-
Tipo de datos: booleano
-
Obligatorio (Y/N): N
-
Propósito: especifica si la herramienta NoSQL Database Migrator utiliza o no la autenticación de identidad de carga de trabajo (WIA) para acceder a OCI Object Storage y Oracle NoSQL Database Cloud Service desde un pod de Oracle Kubernetes Engine (OKE).
El valor por defecto es
false. -
Tipo de datos: booleano
-
Obligatorio (Y/N): N
Para ver un caso de uso de ejemplo, consulte Migración de OCI Object Storage a Oracle NoSQL Database Cloud Service mediante la autenticación de OKE.
Nota: Sólo puede seleccionar una de las opciones de autenticación. Por lo tanto, especifique sólo uno de estos parámetros: credentials, useInstancePrincipal, useDelegationToken, useSessionToken o useOKEWorkloadIdentity en la plantilla de configuración.
useSessionToken (Usar token de sesión)
-
Propósito: especifica si la herramienta NoSQL Database Migrator utiliza o no una autenticación de token de sesión para conectarse a servicios de OCI como OCI Object Storage (SO OCI) y Oracle NoSQL Database Cloud Service. El valor por defecto es
false. -
Tipo de datos: booleano
-
Obligatorio (Y/N): N
Para utilizar la autenticación basada en token de sesión, debe generar un token de sesión mediante los comandos de la interfaz de línea de comandos (CLI) de OCI. Para ver un caso de uso de ejemplo, consulte Migración de Oracle NoSQL Database a OCI Object Storage mediante la autenticación de token de sesión.
Nota:
-
Al utilizar la autenticación de token de sesión, debe especificar la ruta al archivo de configuración de OCI en el parámetro de credenciales y el perfil utilizado al generar el token de sesión en el parámetro credentialsProfile. Si no define el parámetro de credenciales en la plantilla de configuración, la utilidad Migrator busca el archivo de credenciales en la ruta de acceso
$HOME/.oci. Si no define el parámetro credentialsProfile en la plantilla de configuración, la utilidad Migrator utiliza el nombre de perfil por defecto (DEFAULT) del archivo de configuración de OCI.Si la utilidad Migrator no puede encontrar el archivo de credenciales, la migración falla con un mensaje de error que transmite la inexistencia del archivo de credenciales de OCI.
-
Solo puede seleccionar una de las opciones de autenticación. Por lo tanto, especifique solo uno de estos parámetros: credentials, useInstancePrincipal, useDelegationToken,
useSessionTokeno useOKEWorkloadIdentity en la plantilla de configuración.
Plantillas de configuración de origen
Obtenga información sobre los formatos de archivo de configuración de origen para cada origen válido y la finalidad de cada parámetro de configuración.
Para obtener información sobre la plantilla de archivo de configuración, consulte Archivo de configuración en Terminología utilizada con NoSQL Data Migrator.
Para obtener detalles sobre los formatos de fregadero válidos para cada origen, consulte Sink Configuration Templates.
Temas
En los siguientes temas se describen las plantillas de configuración de origen a las que hace referencia el migrador de Oracle NoSQL Database para copiar los datos del origen proporcionado en un receptor válido.
-
Archivo o directorio especificado que contiene los datos JSON.
-
Archivo JSON en el cubo de OCI Object Storage
Archivo JSON especificado en el cubo de OCI Object Storage.
-
Archivo JSON con formato MongoDB
Archivo o directorio especificado que contiene los datos JSON con formato MongoDB.
-
Archivo JSON con formato MongoDB en el cubo de OCI Object Storage
Archivo JSON exportado MongoDB especificado almacenado en el cubo de OCI Object Storage.
-
Archivo JSON con formato DynamoDB almacenado en AWS S3
El archivo JSON exportado de DynamoDB especificado se almacena en el almacenamiento S3 de AWS.
-
Archivo JSON con formato DynamoDB
El archivo JSON exportado de DynamoDB especificado de un sistema de archivos.
-
Tabla especificada en Oracle NoSQL Database.
-
Oracle NoSQL Database Cloud Service
La tabla especificada en Oracle NoSQL Database Cloud Service.
-
Archivo o directorio especificado que contiene los datos CSV.
-
Archivo CSV en el cubo de OCI Object Storage
Archivo CSV especificado en el cubo de OCI Object Storage.
Origen de archivo JSON
El formato de archivo de configuración para el archivo JSON como origen de NoSQL Database Migrator se muestra a continuación.
Puede migrar un archivo de origen JSON especificando la ruta de acceso del archivo o un directorio en la plantilla de configuración de origen.
Un archivo de origen JSON de ejemplo es el siguiente:
{"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"}}
Plantilla de configuración de origen
"source": {
"type": "file",
"format": "json",
"dataPath": "<path/to/JSON/[file|dir]>",
"schemaInfo": {
"schemaPath": "<path/to/schema/file>"
}
},
Parámetros de origen
Parámetros de configuración comunes
Parámetros de configuración únicos
-
Propósito: especifica la ruta de acceso absoluta a un archivo o directorio que contiene los datos JSON para la migración.
Debe asegurarse de que estos datos coincidan con el esquema de tabla NoSQL definido en el fregadero. Si especifica un directorio, NoSQL Database Migrator identifica todos los archivos con la extensión
.jsonen ese directorio para la migración. No se admiten subdirectorios. -
Tipo de datos: cadena
-
Obligatorio (Y/N): Y
-
Ejemplo:
-
Especificación de un archivo JSON
"dataPath" : "/home/user/sample.json" -
Especificación de un directorio
"dataPath" : "/home/user"
-
-
Propósito: especifica el esquema de los datos de origen que se van a migrar. Este esquema se transfiere al receptor NoSQL.
-
Tipo de datos: objeto
-
Obligatorio (Y/N): N
-
Propósito: especifica la ruta de acceso absoluta al archivo de definición de esquema que contiene sentencias DDL para la tabla NoSQL que se va a migrar.
-
Tipo de datos: cadena
-
Obligatorio (Y/N): Y
-
Ejemplo:
"schemaInfo": { "schemaPath": "<path to the schema file>" }
Archivo JSON en el cubo de OCI Object Storage
A continuación, se muestra el formato de archivo de configuración para el archivo JSON en el cubo de OCI Object Storage como origen de NoSQL Database Migrator.
Puede migrar un archivo JSON en el cubo de OCI Object Storage especificando el nombre del cubo en la plantilla de configuración de origen.
Un archivo de origen JSON de ejemplo en el cubo de OCI Object Storage es el siguiente:
{"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: Los tipos de receptor válidos para el tipo de origen de OCI Object Storage son nosqldb y nosqldb_cloud.
Plantilla de configuración de origen
"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>
}
Parámetros de origen
Parámetros de configuración comunes
-
Utilice
"type" : "object_storage_oci" -
Utilice
"format" : "json" -
Por ejemplo:
-
ID de región:
"endpoint" : "us-ashburn-1" -
Formato de URL:
"endpoint" : "https://objectstorage.us-ashburn- 1.oraclecloud.com"
-
-
Ejemplo:
"namespace" : "my-namespace" -
Ejemplo:
"bucket" : "my-bucket" -
Por ejemplo:
-
"prefix" : "my_table/Data/000000.json"(solo migra000000.json) -
"prefix" : "my_table/Data"(migra todos los objetos con el prefijomy_table/Data)
-
-
Por ejemplo:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Por ejemplo:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Ejemplo:
"useInstancePrincipal" : true -
Ejemplo:
"useDelegationToken" : trueNota: La autenticación con token de delegación solo está soportada cuando el migrador de base de datos NoSQL se está ejecutando desde Cloud Shell.
-
Ejemplo:
"useOKEWorkloadIdentity" : true -
Ejemplo:
"useSessionToken" : true
Parámetros de configuración únicos
-
Propósito: especifica el esquema de los datos de origen que se van a migrar. Este esquema se transfiere al receptor NoSQL.
-
Tipo de datos: objeto
-
Obligatorio (Y/N): N
-
Propósito: especifica el nombre del objeto del cubo en el que se almacenan las definiciones de esquema de tabla NoSQL para los datos que se van a migrar.
-
Tipo de datos: cadena
-
Obligatorio (Y/N): Y
-
Ejemplo:
"schemaInfo": { "schemaObject": "mytable/Schema/schema.ddl" },
Archivo JSON con formato MongoDB
El formato de archivo de configuración para el archivo JSON con formato MongoDB como origen de NoSQL Database Migrator se muestra a continuación.
Puede migrar datos JSON exportados de MongoDB especificando el archivo o directorio en la plantilla de configuración de origen.
MongoDB soporta dos tipos de extensiones en formato JSON de archivos, Modo canónico y Modo relajado. Puede proporcionar el archivo JSON con formato MongoDB que se genera mediante la herramienta mongoexport en modo canónico o relajado. Ambos modos están soportados por NoSQL Database Migrator para la migración.
Para obtener más información sobre el archivo JSON extendido MongoDB (v2), consulte mongoexport_formats.
Para obtener más información sobre la generación del archivo JSON con formato MongoDB, consulte mongoexport para obtener más información.
Un archivo JSON de ejemplo con formato MongoDB Modo relajado es el siguiente:
{"_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"}]}
Plantilla de configuración de origen
"source": {
"type": "file",
"format": "mongodb_json",
"dataPath": "</path/to/json/[file|dir]>",
"schemaInfo": {
"schemaPath": "</path/to/schema/file>"
}
}
Parámetros de origen
Parámetros de configuración comunes
Parámetros de configuración únicos
-
Propósito: especifica la ruta de acceso absoluta a un archivo o directorio que contiene los datos JSON exportados de MongoDB para la migración.
Puede proporcionar el archivo JSON con formato MongoDB que se genera mediante la herramienta mongoexport.
Si especifica un directorio, NoSQL Database Migrator identifica todos los archivos con la extensión
.jsonen ese directorio para la migración. No se admiten subdirectorios. Debe asegurarse de que estos datos coincidan con el esquema de tabla NoSQL definido en el fregadero. -
Tipo de datos: cadena
-
Obligatorio (Y/N): Y
-
Ejemplo:
-
Especificación de un archivo JSON con formato MongoDB
"dataPath" : "/home/user/sample.json" -
Especificación de un directorio
"dataPath" : "/home/user"
-
-
Propósito: especifica el esquema de los datos de origen que se van a migrar. Este esquema se transfiere al receptor válido.
-
Tipo de datos: objeto
-
Obligatorio (Y/N): N
-
Propósito: especifica la ruta de acceso absoluta al archivo de definición de esquema que contiene sentencias DDL para la tabla NoSQL que se va a migrar.
-
Tipo de datos: cadena
-
Obligatorio (Y/N): Y
-
Ejemplo:
"schemaInfo" : { "schemaPath" : "/home/user/mytable/Schema/schema.ddl" }
Archivo JSON con formato MongoDB en el cubo de OCI Object Storage
A continuación, se muestra el formato de archivo de configuración para el archivo JSON con formato MongoDB en el cubo de OCI Object Storage como origen de NoSQL Database Migrator.
Puede migrar los datos JSON exportados de MongoDB en el cubo de OCI Object Storage especificando el nombre del cubo en la plantilla de configuración de origen.
Extraiga los datos de MongoDB mediante la utilidad mongoexport y cárguelos en el cubo de OCI Object Storage. Consulte mongoexport para obtener más información. MongoDB soporta dos tipos de extensiones en formato JSON de archivos, Modo canónico y Modo relajado. Ambos formatos están soportados en el cubo de OCI Object Storage.
Un archivo JSON Relaxed mode con formato MongoDB de ejemplo es el siguiente:
{"_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: Los tipos de receptor válidos para el tipo de origen de OCI Object Storage son nosqldb y nosqldb_cloud.
Plantilla de configuración de origen
"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>
}
Parámetros de origen
Parámetros de configuración comunes
-
Utilice
"type" : "object_storage_oci" -
Utilice
"format" : "mongodb_json" -
Por ejemplo:
-
ID de región:
"endpoint" : "us-ashburn-1" -
Formato de URL:
"endpoint" : "https://objectstorage.us-ashburn- 1.oraclecloud.com"
-
-
Ejemplo:
"namespace" : "my-namespace" -
Ejemplo:
"bucket" : "my-bucket" -
Por ejemplo:
-
"prefix" : "mongo_export/Data/table.json"(solo migratable.json) -
"prefix" : "mongo_export/Data"(migra todos los objetos con el prefijomongo_export/Data)
Nota: Si no proporciona ningún valor, se migran todos los objetos presentes en el cubo.
-
-
Por ejemplo:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
Por ejemplo:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Ejemplo:
"useInstancePrincipal" : true -
Ejemplo:
"useDelegationToken" : trueNota: La autenticación con token de delegación solo está soportada cuando el migrador de base de datos NoSQL se está ejecutando desde Cloud Shell.
-
Ejemplo:
"useOKEWorkloadIdentity" : true -
Ejemplo:
"useSessionToken" : true
Parámetros de configuración únicos
-
Propósito: especifica el esquema de los datos de origen que se van a migrar. Este esquema se transfiere al receptor NoSQL.
-
Tipo de datos: objeto
-
Obligatorio (Y/N): N
-
Propósito: especifica el nombre del objeto del cubo en el que se almacenan las definiciones de esquema de tabla NoSQL para los datos que se van a migrar.
-
Tipo de datos: cadena
-
Obligatorio (Y/N): Y
-
Ejemplo:
"schemaInfo": { "schemaObject": "mytable/Schema/schema.ddl" }
Archivo JSON con formato DynamoDB almacenado en AWS S3
El formato de archivo de configuración para el archivo JSON con formato DynamoDB en AWS S3 como origen de NoSQL Database Migrator se muestra a continuación.
Puede migrar un archivo que contenga los datos JSON exportados de DynamoDB desde el almacenamiento S3 de AWS especificando la ruta de acceso en la plantilla de configuración de origen.
Un archivo JSON con formato DynamoDB de ejemplo es el siguiente:
{"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"}}}
Debe exportar la tabla DynamoDB al almacenamiento S3 de AWS como se especifica en Exportación de datos de tabla DynamoDB a Amazon S3.
Los tipos de receptor válidos para el formato JSON con DynamoDB almacenados en AWS S3 son nosqldb y nosqldb_cloud.
Plantilla de configuración de origen
"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>"
}
Parámetros de origen
Parámetros de configuración comunes
-
Utilice
"type" : "aws_s3" -
Utilice
"format" : "dynamodb_json"Nota: Si el valor del parámetro de tipo es
aws_s3, el formato debe serdynamodb_json.
Parámetros de configuración únicos
-
Propósito: especifica la URL de una tabla DynamoDB exportada almacenada en AWS S3. Puede obtener esta URL desde la consola AWS S3. El formato de URL válido es
https://<bucket-name>.<s3_endpoint>/<prefix>. NoSQL Database Migrator buscará los archivosjson.gzen el prefijo durante la importación.Nota: Debe exportar la tabla DynamoDB como se especifica en Exportación de datos de tabla DynamoDB a Amazon S3.
-
Tipo de datos: cadena
-
Obligatorio (Y/N): Y
-
Ejemplo:
https://my-bucket.s3.ap-south-1.amazonaws.com/AWSDynamoDB/01649660790057-14f642be
-
Propósito: especifica la ruta absoluta a un archivo que contiene las credenciales de AWS. Si no se especifican, se usan por defecto
$HOME/.aws/credentials. Para obtener más información sobre el archivo de credenciales, consulte Configuración y valores del archivo de credenciales. -
Tipo de datos: cadena
-
Obligatorio (Y/N): N
-
Ejemplo:
"credentials" : "/home/user/.aws/credentials""credentials" : "/home/user/security/credentialsNota: NoSQL Database Migrator no registra ninguna información de credenciales. Debe proteger correctamente el archivo de credenciales contra el acceso no autorizado.
- Propósito: nombre del perfil en el archivo de credenciales de AWS que se utilizará para conectarse a AWS S
- Las credenciales de cuentas de usuario se les conoce como perfil. Si no especifica este valor, NoSQL Database Migrator utiliza el perfil
default. Para obtener más información sobre el archivo de credenciales, consulte Configuración y valores del archivo de credenciales.
- Las credenciales de cuentas de usuario se les conoce como perfil. Si no especifica este valor, NoSQL Database Migrator utiliza el perfil
-
Tipo de datos: cadena
-
Obligatorio (Y/N): N
-
Ejemplo:
"credentialsProfile" : "default""credentialsProfile" : "test"
-
Propósito: especifica el nombre del atributo TTL presente en los datos de la tabla DynamoDB exportada. Este parámetro sólo se incluye si los datos de la tabla DynamoDB tienen un atributo TTL y desea definir el valor TTL en los datos importados al importarlos a la base de datos NoSQL.
Nota: Para importar con los metadatos de TTL, debe definir el parámetro de configuración includeTTL en true en la plantilla de configuración de fregadero (
nosqldbynosqldb_cloud). -
Tipo de datos: cadena
-
Obligatorio (Y/N): N
-
Ejemplo:
"ttlAttributeName" : "ttl"
Archivo JSON con formato DynamoDB
El formato de archivo de configuración para el archivo JSON con formato DynamoDB como origen de NoSQL Database Migrator se muestra a continuación.
Puede migrar un archivo o directorio que contenga los datos JSON exportados de DynamoDB desde un sistema de archivos especificando la ruta de acceso en la plantilla de configuración de origen.
Un archivo JSON con formato DynamoDB de ejemplo es el siguiente:
{"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"}}}
Debe copiar los datos de la tabla DynamoDB exportados del almacenamiento S3 de AWS en un sistema de archivos montado local.
Los tipos de receptor válidos para el archivo JSON de DynamoDB son nosqldb y nosqldb_cloud.
Plantilla de configuración de origen
"source" : {
"type" : "file",
"format" : "dynamodb_json",
"ttlAttributeName" : <DynamoDB exported TTL attribute name>,
"dataPath" : "<path/to/[file|dir]/containing/exported/DDB/tabledata>"
}
Parámetros de origen
Parámetros de configuración comunes
Parámetro de configuración único
-
Propósito: especifica la ruta de acceso absoluta a un archivo o directorio que contiene los datos de la tabla DynamoDB exportada. Debe copiar los datos de tabla de DynamoDB exportados desde AWS S3 a un sistema de archivos montado local. Debe asegurarse de que estos datos coincidan con el esquema de tabla NoSQL definido en el fregadero. Si especifica un directorio, NoSQL Database Migrator identifica todos los archivos con la extensión
.json.gzen ese directorio y el subdirectoriodata. -
Tipo de datos: cadena
-
Obligatorio (Y/N): Y
-
Ejemplo:
-
Especificación de un archivo
"dataPath" : "/home/user/AWSDynamoDB/01639372501551-bb4dd8c3/data/zclclwucjy6v5mkefvckxzhfvq.json.gz" -
Especificación de un directorio
"dataPath" : "/home/user/AWSDynamoDB/01639372501551-bb4dd8c3"
-
-
Propósito: especifica el nombre del atributo TTL presente en los datos de la tabla DynamoDB exportada. Este parámetro sólo se incluye si los datos de la tabla DynamoDB tienen un atributo TTL y desea definir el valor TTL en los datos importados al importarlos a la base de datos NoSQL.
Nota: Para importar con los metadatos de TTL, debe definir el parámetro de configuración includeTTL en true en la plantilla de configuración de fregadero (
nosqldbynosqldb_cloud). -
Tipo de datos: cadena
-
Obligatorio (Y/N): N
-
Ejemplo:
"ttlAttributeName" : "ttl"
Oracle NoSQL Database
El formato de archivo de configuración para Oracle NoSQL Database como origen de NoSQL Database Migrator se muestra a continuación.
Puede migrar una tabla desde Oracle NoSQL Database especificando el nombre de la tabla en la plantilla de configuración de origen.
Una tabla de Oracle NoSQL Database de ejemplo es la siguiente:
{"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}
Plantilla de configuración de origen
"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
}
Parámetros de origen
Parámetro de configuración común
-
Utilice
"type" : "nosqldb" -
Por ejemplo:
"security" : "/home/user/client.credentials"Ejemplo de contenido de archivo de seguridad para autenticación basada en archivo de contraseñas:
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)Ejemplo de contenido de archivo de seguridad para la autenticación basada en cartera:
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) -
Ejemplo:
"requestTimeoutMs" : 5000
Parámetros de configuración únicos
-
Propósito: nombre del almacén de Oracle NoSQL Database.
-
Tipo de datos: cadena
-
Obligatorio (Y/N): Y
-
Ejemplo:
"storeName" : "kvstore"
-
Propósito: lista de pares de host y puerto de registro en formato
hostname:port. Delimite cada elemento de la lista con una coma. Debe especificar al menos un host auxiliar. -
Tipo de datos: matriz de cadenas
-
Obligatorio (Y/N): Y
-
Ejemplo:
"helperHosts" : ["localhost:5000","localhost:6000"]
-
Objetivo: nombre de tabla totalmente cualificado desde el que migrar los datos.
Formato:
[namespace_name:]<table_name>Si la tabla está en el espacio de nombres DEFAULT, puede omitir
namespace_name. La tabla debe existir en el almacén. -
Tipo de datos: cadena
-
Obligatorio (Y/N): Y
-
Ejemplo:
-
Con el espacio de nombres DEFAULT
"table" :"mytable" -
Con un espacio de nombres no por defecto
"table" : "mynamespace:mytable" -
Para especificar una tabla secundaria
"table" : "mytable.child"
-
-
Propósito: especifica si se deben incluir o no metadatos de TTL para las filas de tabla al exportar tablas de Oracle NoSQL Database. Si se define en true, los datos de TTL de las filas también se incluyen en los datos proporcionados por el origen. TTL está presente en el objeto JSON
_metadataasociado a cada fila. El tiempo de caducidad de cada fila se exporta como el número de milisegundos desde la época de UNIX (1 de enero de 1970).Si no se especifica este parámetro, el valor por defecto es
false.Solo las filas que tienen un valor de caducidad positivo para TTL se incluyen como parte de las filas exportadas. Si una fila no caduca, lo que significa TTL=0, los metadatos de TTL no se incluyen explícitamente. Por ejemplo, si ROW1 caduca a las 2021-10-19 00:00:00 y ROW2 no caduca, los datos exportados tienen el siguiente aspecto:
//ROW1 { "id" : 1, "name" : "abc", "_metadata" : { "expiration" : 1634601600000 } } //ROW2 { "id" : 2, "name" : "xyz" } -
Tipo de datos: booleano
-
Obligatorio (Y/N): N
-
Ejemplo:
"includeTTL" : true
queryFilter (Filtro de consulta)
-
Propósito: especifica el predicado de consulta que la utilidad Migrator utiliza para exportar solo las filas que coinciden con la condición proporcionada.
La utilidad Migrator incorpora este predicado en la cláusula WHERE de la consulta SQL. Esta consulta se aplica en la tabla de origen para filtrar los datos según la condición especificada. Para especificar la tabla de origen, utilice el parámetro
tableen la plantilla de configuración de origen.Por ejemplo, para exportar solo las filas con el valor 10 de
id, defina el parámetroqueryFilteren"id=10". La utilidad Migrator genera la siguiente consulta:select $row from <table> $row where id=10En esta consulta, la utilidad Migrator utiliza el alias de tabla
$rowpara procesar filas individuales.Tenga en cuenta lo siguiente:
-
No puede utilizar
queryFilterpara seleccionar una columna concreta. Puede proporcionar transformaciones para filtrar las columnas. -
Si no proporciona un valor para el parámetro
queryFilter, la utilidad Migrator exporta todas las filas de la tabla mediante la siguiente consulta:select $row from $row
-
-
Tipo de datos: cadena JSON
-
Obligatorio (Y/N): N
-
Ejemplo:
"queryFilter" : "$row.address.city='Houston'"Consulte la tabla Predicados de consulta de ejemplo a continuación para obtener ejemplos adicionales.
Expresiones soportadas:
La utilidad Migrator soporta las siguientes expresiones en el predicado de consulta. Para obtener sintaxis detallada y ejemplos, consulte la Guía de referencia de SQL.
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
En la siguiente tabla se proporcionan ejemplos de predicados de consulta válidos para diferentes expresiones y datos exportados resultantes.
Nota:
-
Se recomienda utilizar comillas simples (') en lugar de comillas dobles (") al proporcionar un literal de cadena en el predicado de consulta. Si desea utilizar una comilla doble ("), debe omitirla.
Por ejemplo: utilice el predicado de consulta
"name='John'"para seleccionar filas de la tabla determinada donde el valor del camponamees la cadena 'Juan'. -
Debe incluir el alias de tabla
$rowen las expresiones cuando:-
Uso de funciones de fila como
modification_time(), expiration_time(), creation_time(), etc. Para obtener más información, consulte Functions on Rows. -
Acceso a campos específicos dentro de una columna JSON.
-
Tabla - Predicados de consulta de muestra
| Consulta/predicado | Datos exportados |
|---|---|
| "id=10" | Filas de la tabla indicada con id=10. |
| "name='John'" | Filas de la tabla indicada con el nombre = 'Juan'. |
| "edad>30 y género='masculino'" | Filas de la tabla especificada con age mayor que 30 y gender = 'masculino'. |
| "$row.address.state = 'CA'" | Filas de la tabla especificada con el campo state en la columna JSON address = 'CA'. Aquí, puede utilizar una expresión de paso de campo en el predicado para acceder al valor de campo necesario desde un campo JSON. |
| "$row.expenses.keys($value > 1000) = 'alimento'" | Filas del cuadro especificado donde la categoría expenses = 'alimento' y el importe expenses son mayores que 1000. Aquí, puede utilizar una expresión de paso de filtro de mapa para seleccionar los nombres de campo (claves) o los valores de campo de los campos de mapa/registro. |
| "$row.expenses.keys($value > $.clothes) = 'comida' | Filas del cuadro indicado en las que la categoría expenses = "alimento" y el importe de expenses son superiores a los gastos de clothes. |
| "[$row.address.phones[$element.area = 650].kind] = 'trabajo'" | Filas de la tabla indicada donde el código de área del teléfono en la matriz = 650 y tipo = 'trabajo'. Aquí, puede utilizar la expresión de paso de filtro de matriz, ya que el campo address es una matriz JSON. |
| "[conexiones[$element > 100 y $pos < 10]] > 100" | Filas de la tabla especificada con un máximo de 10 conexiones y un número de conexiones > 100. Aquí, se utiliza una expresión de paso de filtro de matriz, ya que el campo connections es una matriz. |
| "$row.income IS NULL" | Filas de la tabla dada que no tienen un ingreso conocido. Para obtener más información, consulte IS NULL and IS NOT NULL Operators. |
| "a in (1, 5, 4)" | Filas de la tabla determinada, donde a es 1, 5 o 4. Para obtener más información, consulte Operador IN. |
| "(a, b) en (1, 'a'), (5, 'g'), (4, 't'))" | Filas de la tabla indicada donde (a es 1 y b es 'a') OR (a es 5 y b es 'g') OR (a es 4 y b es 't'). |
| "regex_like(nombre, 'j.*')" | Filas de la tabla proporcionada cuyo nombre empiece por j. Para obtener más información, consulte Expresiones regulares. |
| "EXISTE $row.person.address.zipcode" | Filas de la tabla especificada donde la columna json person tiene zipcode en la dirección. Para obtener más información, consulte Existe el operador. |
| "$row.address es de tipo (cadena)" | Filas de la tabla especificada donde la columna address es del tipo cadena. Para obtener más información, consulte Is-Of-Type Operator. |
| "lastLogin > CAST('2022-10-01' COMO TIMESTAMP)" | Filas de la tabla indicada con la última conexión después del 1 de octubre de 2022. Para obtener más información, consulte Expresiones de Fundición. |
| "$row.connections[ ]=cualquier 1" | Filas de la tabla determinada cuya columna de matriz connections tiene el elemento 1. Para obtener más información, consulte Operadores de comparación de secuencias. |
| "modification_time($row) >= 2022-10-01'' | Filas de la tabla determinada que se modifican a partir del 1 de octubre de 2022. Para obtener más información, consulte Functions on Rows. |
| "expiration_time_millis($row) > 0" | Filas de la tabla indicada que no han caducado. Para obtener más información, consulte Functions on Rows. |
Oracle NoSQL Database Cloud Service
A continuación, se muestra el formato de archivo de configuración de Oracle NoSQL Database Cloud Service como origen de NoSQL Database Migrator.
Puede migrar una tabla desde Oracle NoSQL Database Cloud Service especificando el nombre o el OCID del compartimento en el que reside la tabla en la plantilla de configuración de origen.
A continuación se muestra una tabla de ejemplo de 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}
Plantilla de configuración de origen
"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>
}
Parámetros de origen
Parámetros de configuración comunes
-
Utilice
"type" : "nosqldb_cloud" -
Por ejemplo:
-
ID de región:
"endpoint" : "us-ashburn-1" -
Formato de URL:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Por ejemplo:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Por ejemplo:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Ejemplo:
"useInstancePrincipal" : true -
Ejemplo:
"useDelegationToken" : trueNota: La autenticación con token de delegación solo está soportada cuando el migrador de base de datos NoSQL se está ejecutando desde Cloud Shell.
-
Ejemplo:
"useOKEWorkloadIdentity" : true -
Ejemplo:
"useSessionToken" : true -
Ejemplo:
"requestTimeoutMs" : 5000
Parámetros de configuración únicos
-
Propósito: nombre de la tabla desde la que se van a migrar los datos.
-
Tipo de datos: cadena
-
Obligatorio (Y/N): Y
-
Ejemplo:
-
Para especificar una tabla
"table" : "myTable" -
Para especificar una tabla secundaria
"table" : "mytable.child"
-
-
Propósito: especifica el nombre u OCID del compartimento en el que reside la tabla.
Si no proporciona ningún valor, se define por defecto en el compartimento root.
Puede encontrar el OCID de su compartimento en la ventana del explorador de compartimentos en Governance en la consola de OCI Cloud.
-
Tipo de datos: cadena
-
Obligatorio (Y/N): S, si la tabla no está en el compartimento raíz del arrendamiento O si el parámetro useInstancePrincipal está definido en true.
Nota: Si el parámetro useInstancePrincipal está definido en true, el compartimento debe especificar el OCID del compartimento y no el nombre.
-
Ejemplo:
-
Nombre de compartimento
"compartment" : "mycompartment" -
Nombre de compartimento cualificado con su compartimento principal
"compartment" : "parent.childcompartment" -
No se ha indicado ningún valor. El valor por defecto es el compartimento raíz.
"compartment": "" -
OCID de compartimento
"compartment" : "ocid 1.tenancy.oc1...4ksd"
-
readUnitsPercent (Unidades de lectura por porcentaje)
-
Propósito: porcentaje de unidades de lectura de tabla que se van a utilizar al migrar la tabla NoSQL.
El valor por defecto es 90. El rango válido es cualquier entero entre 1 y 100. La cantidad de tiempo necesaria para migrar datos es directamente proporcional a este atributo. Es mejor aumentar el rendimiento de lectura de la tabla para la actividad de migración. Puede reducir el rendimiento de lectura una vez finalizado el proceso de migración.
Para conocer los límites diarios de los cambios en el rendimiento, consulte la sección sobre límites de la nube en el documento Oracle NoSQL Database Cloud Service.
Para obtener más información sobre cómo utilizar este atributo para mejorar la velocidad de migración de datos, consulte Solución de Problemas del Migrador de Oracle NoSQL Database
-
Tipo de datos: número entero
-
Obligatorio (Y/N): N
-
Ejemplo:
"readUnitsPercent" : 90
-
Propósito: especifica si se deben incluir o no los metadatos de TTL para las filas de tabla al exportar tablas de Oracle NoSQL Database Cloud Service. Si se define en true, los datos de TTL de las filas también se incluyen en los datos proporcionados por el origen. TTL está presente en el objeto JSON
_metadataasociado a cada fila. El tiempo de caducidad de cada fila se exporta como el número de milisegundos desde la época de UNIX (1 de enero de 1970).Si no se especifica este parámetro, el valor por defecto es
false.Solo las filas que tienen un valor de caducidad positivo para TTL se incluyen como parte de las filas exportadas. Si una fila no caduca, lo que significa TTL=0, los metadatos de TTL no se incluyen explícitamente. Por ejemplo, si ROW1 caduca a las 2021-10-19 00:00:00 y ROW2 no caduca, los datos exportados tienen el siguiente aspecto:
//ROW1 { "id" : 1, "name" : "abc", "_metadata" : { "expiration" : 1634601600000 } } //ROW2 { "id" : 2, "name" : "xyz" } -
Tipo de datos: booleano
-
Obligatorio (Y/N): N
-
Ejemplo:
"includeTTL" : true
queryFilter (Filtro de consulta)
-
Propósito: especifica el predicado de consulta que la utilidad Migrator utiliza para exportar solo las filas que coinciden con la condición proporcionada.
La utilidad Migrator incorpora este predicado en la cláusula WHERE de la consulta SQL. Esta consulta se aplica en la tabla de origen para filtrar los datos según la condición especificada. Para especificar la tabla de origen, utilice el parámetro
tableen la plantilla de configuración de origen.Por ejemplo, para exportar solo las filas con el valor 10 de
id, defina el parámetroqueryFilteren"id=10". La utilidad Migrator genera la siguiente consulta:select $row from <table> $row where id=10En la consulta anterior, la utilidad Migrator utiliza el alias de tabla
$rowpara procesar filas individuales.Tenga en cuenta lo siguiente:
-
No puede utilizar
queryFilterpara seleccionar una columna concreta. Puede proporcionar transformaciones para filtrar las columnas. -
Si no proporciona un valor para el parámetro
queryFilter, la utilidad Migrator exporta todas las filas de la tabla mediante la siguiente consulta:select $row from $row`
-
-
Tipo de datos: cadena JSON
-
Obligatorio (Y/N): N
-
Ejemplo:
"queryFilter" : "$row.address.city='Houston'"Consulte la tabla Predicados de consulta de ejemplo a continuación para obtener ejemplos adicionales.
Expresiones soportadas:
La utilidad Migrator soporta las siguientes expresiones en el predicado de consulta. Para obtener sintaxis detallada y ejemplos, consulte la Guía de referencia de SQL.
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
En la siguiente tabla se proporcionan ejemplos de predicados de consulta válidos para diferentes expresiones y datos exportados resultantes.
Nota:
-
Se recomienda utilizar comillas simples (') en lugar de comillas dobles (") al proporcionar un literal de cadena en el predicado de consulta. Si desea utilizar una comilla doble ("), debe omitirla.
Por ejemplo: utilice el predicado de consulta
"name='John'"para seleccionar filas de la tabla determinada donde el valor del camponamees la cadena 'Juan'. -
Debe incluir el alias de tabla
$rowen las expresiones cuando:- Uso de funciones de fila como
modification_time(), expiration_time(), creation_time(), etc. Para obtener más información, consulte Functions on Rows. - Acceso a campos específicos dentro de una columna JSON.
- Uso de funciones de fila como
Tabla - Predicados de consulta de muestra
| Consulta/predicado | Datos exportados |
|---|---|
| "id=10" | Filas de la tabla indicada con el ID = 10. |
| "name='John'" | Filas de la tabla indicada con el nombre = 'Juan'. |
| "edad>30 y género='masculino'" | Filas de la tabla especificada con age mayor que 30 y gender = 'masculino'. |
| "$row.address.state = 'CA'" | Filas de la tabla especificada con el campo state en la columna JSON address = 'CA'. Aquí, puede utilizar una expresión de paso de campo en el predicado para acceder al valor de campo necesario desde un campo JSON. |
| "$row.expenses.keys($value > 1000) = 'alimento'" | Filas del cuadro especificado donde la categoría expenses = 'alimento' y el importe expenses son mayores que 1000. Aquí, puede utilizar una expresión de paso de filtro de mapa para seleccionar los nombres de campo (claves) o los valores de campo de los campos de mapa/registro. |
| "$row.expenses.keys($value > $.clothes) = 'comida' | Filas del cuadro indicado en las que la categoría expenses = "alimento" y el importe de expenses son superiores a los gastos de clothes. |
| "[$row.address.phones[$element.area = 650].kind] = 'trabajo'" | Filas de la tabla indicada donde el código de área del teléfono en la matriz = 650 y tipo = 'trabajo'. Aquí, puede utilizar la expresión de paso de filtro de matriz, ya que el campo address es una matriz JSON. |
| "[conexiones[$element > 100 y $pos < 10]] > 100" | Filas de la tabla especificada con un máximo de 10 conexiones y un número de conexiones > 100. Aquí, se utiliza una expresión de paso de filtro de matriz, ya que el campo connections es una matriz. |
| "$row.income IS NULL" | Filas de la tabla dada que no tienen un ingreso conocido. Para obtener más información, consulte IS NULL and IS NOT NULL Operators. |
| "a in (1, 5, 4)" | Filas de la tabla determinada, donde a es 1, 5 o 4. Para obtener más información, consulte Operador IN. |
| "(a, b) en (1, 'a'), (5, 'g'), (4, 't'))" | Filas de la tabla indicada donde (a es 1 y b es 'a') OR (a es 5 y b es 'g') OR (a es 4 y b es 't'). |
| "regex_like(nombre, 'j.*')" | Filas de la tabla proporcionada cuyo nombre empiece por j. Para obtener más información, consulte Expresiones regulares. |
| "EXISTE $row.person.address.zipcode" | Filas de la tabla especificada donde la columna json person tiene zipcode en la dirección. Para obtener más información, consulte Existe el operador. |
| "$row.address es de tipo (cadena)" | Filas de la tabla especificada donde la columna address es del tipo cadena. Para obtener más información, consulte Is-Of-Type Operator. |
| "lastLogin > CAST('2022-10-01' COMO TIMESTAMP)" | Filas de la tabla indicada con la última conexión después del 1 de octubre de 2022. Para obtener más información, consulte Expresiones de Fundición. |
| "$row.connections[ ]=cualquier 1" | Filas de la tabla determinada cuya columna de matriz connections tiene el elemento 1. Para obtener más información, consulte Operadores de comparación de secuencias. |
| "modification_time($row) >= 2022-10-01'' | Filas de la tabla determinada que se modifican a partir del 1 de octubre de 2022. Para obtener más información, consulte Functions on Rows. |
| "expiration_time_millis($row) > 0" | Filas de la tabla indicada que no han caducado. Para obtener más información, consulte Functions on Rows. |
Origen de archivo CSV
El formato de archivo de configuración para el archivo CSV como origen de NoSQL Database Migrator se muestra a continuación. El archivo CSV debe cumplir con el formato RFC4180.
Puede migrar un archivo CSV o un directorio que contenga los datos CSV especificando el nombre de archivo o el directorio en la plantilla de configuración de origen.
Un archivo CSV de ejemplo es el siguiente:
1,"Computer Science","San Francisco","2500"
2,"Bio-Technology","Los Angeles","1200"
3,"Journalism","Las Vegas","1500"
4,"Telecommunication","San Francisco","2500"
Plantilla de configuración de origen
"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>"
}
}
Parámetros de origen
Parámetros de configuración comunes
Parámetros de configuración únicos
-
Propósito: especifica la ruta absoluta a un archivo o directorio que contiene los datos CSV para la migración. Si especifica un directorio, NoSQL Database Migrator importa todos los archivos con la extensión
.csvo.CSVen ese directorio. Todos los archivos CSV se copian en una sola tabla, pero no en ningún orden en particular.Los archivos CSV deben cumplir con el estándar
RFC4180. Debe asegurarse de que los datos de cada archivo CSV coincidan con el esquema de tabla de la base de datos NoSQL definido en la tabla de receptor. No se admiten subdirectorios. -
Tipo de datos: cadena
-
Obligatorio (Y/N): Y
-
Ejemplo:
-
Especificación de un archivo CSV
"dataPath" : "/home/user/sample.csv" -
Especificación de un directorio
"dataPath" : "/home/user"
-
Nota: Los archivos CSV solo deben contener valores escalares. La importación de archivos CSV que contienen tipos complejos como MAP, RECORD, ARRAY y JSON no está soportada. La herramienta NoSQL Database Migrator no comprueba si los datos están correctos en el archivo CSV de entrada. La herramienta NoSQL Database Migrator soporta la importación de datos CSV que cumplen con el formato RFC4180. Es posible que los archivos CSV que contienen datos que no cumplen con el estándar RFC4180 no se copien correctamente o que generen un error. Si los datos de entrada están dañados, la herramienta NoSQL Database Migrator no analizará los registros CSV. Si se produce algún error durante la migración, la herramienta NoSQL Database Migrator registra la información sobre los registros de entrada fallidos con fines de depuración e informativos. Para obtener más información, consulte Logging Migrator Progress en Using Oracle NoSQL Data Migrator.
-
Propósito: especifica si el archivo CSV tiene un encabezado o no. Si se define en
true, se ignora la primera línea. Si se establece enfalse, la primera línea se considera un registro CSV. El valor por defecto esfalse. -
Tipo de datos: booleano
-
Obligatorio (Y/N): N
-
Ejemplo:
"hasHeader" : "false"
-
Propósito: especifica la lista de nombres de columna de tabla de la base de datos NoSQL. El orden de los nombres de columna indica la asignación de los campos del archivo CSV con las columnas correspondientes de la tabla NoSQL Database. Si el orden de las columnas del archivo CSV de entrada no coincide con las columnas de la tabla de la base de datos NoSQL existentes o recién creadas, puede asignar el orden mediante este parámetro. Además, al importar a una tabla que tenga una columna de identidad, puede omitir el nombre de columna de identidad en el parámetro
columns.Nota:
-
Si la tabla NoSQL Database tiene columnas adicionales que no están disponibles en el archivo CSV, los valores de las columnas que faltan se actualizan con el valor por defecto definido en la tabla NoSQL Database. Si no se proporciona un valor predeterminado, se inserta un valor nulo durante la migración. Para obtener más información sobre los valores por defecto, consulte la sección Definiciones de tipo de datos en la Guía de referencia de SQL.
-
Si el archivo CSV tiene columnas adicionales que no están definidas en la tabla NoSQL Database, se ignora la información de columna adicional.
-
Si algún valor del registro CSV está vacío, se define en el valor por defecto de las columnas correspondientes de la tabla NoSQL Database. Si no se proporciona un valor predeterminado, se inserta un valor nulo durante la migración.
-
-
Tipo de datos: matriz de cadenas
-
Obligatorio (Y/N): N
-
Ejemplo:
"columns" : ["table_column_1", "table_column_2"]
-
Propósito: especifica las opciones de formato para un archivo CSV. Proporcione el formato de codificación del juego de caracteres del archivo CSV y elija si desea recortar o no los espacios en blanco.
-
Tipo de datos: objeto
-
Obligatorio (Y/N): N
codificacióncsvOptions.encoding
-
Propósito: especifica el juego de caracteres para descodificar el archivo CSV. El valor por defecto es
UTF-8. Los juegos de caracteres soportados sonUS-ASCII, ISO-8859-1, UTF-8,yUTF-16. -
Tipo de datos: cadena
-
Obligatorio (Y/N): N
-
Ejemplo:
"encoding" : "UTF-8"
-
Propósito: especifica si se deben recortar los espacios en blanco iniciales y finales de un valor de campo CSV. El valor por defecto es
false. -
Tipo de datos: booleano
-
Obligatorio (Y/N): N
-
Ejemplo:
"trim" : "true"
Archivo CSV en el cubo de OCI Object Storage
A continuación, se muestra el formato de archivo de configuración del archivo CSV en el cubo de OCI Object Storage como origen de NoSQL Database Migrator. El archivo CSV debe cumplir con el formato RFC4180.
Puede migrar un archivo CSV en el cubo de OCI Object Storage especificando el nombre del cubo en la plantilla de configuración de origen.
Un archivo CSV de ejemplo en el cubo de OCI Object Storage es el siguiente:
1,"Computer Science","San Francisco","2500"
2,"Bio-Technology","Los Angeles","1200"
3,"Journalism","Las Vegas","1500"
4,"Telecommunication","San Francisco","2500"
Nota: Los tipos de receptor válidos para el tipo de origen de OCI Object Storage son nosqldb y nosqldb_cloud.
Plantilla de configuración de origen
"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>
}
}
Parámetros de origen
Parámetros de configuración comunes
-
Utilice
"type" : "object_storage_oci" -
Utilice
"format" : "csv" -
Ejemplo de endpoint:
-
ID de región:
"endpoint" : "us-ashburn-1" -
Formato de URL:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Ejemplo:
"namespace" : "my-namespace" -
Ejemplo:
"bucket" : "my-bucket"Nota:
-
NoSQL Database Migrator importa todos los archivos con los objetos de extensión .
csvo.CSVy los copia en una única tabla en el mismo orden. -
Los archivos CSV solo deben contener valores escalares. La importación de archivos CSV que contienen tipos complejos como MAP, RECORD, ARRAY y JSON no está soportada. La herramienta NoSQL Database Migrator no comprueba si los datos están correctos en el archivo CSV de entrada. La herramienta NoSQL Database Migrator soporta la importación de datos CSV que cumplen con el formato
RFC4180. Es posible que los archivos CSV que contienen datos que no cumplen con el estándarRFC4180no se copien correctamente o que generen un error. Si los datos de entrada están dañados, la herramienta NoSQL Database Migrator no analizará los registros CSV. Si se produce algún error durante la migración, la herramienta NoSQL Database Migrator registra la información sobre los registros de entrada fallidos con fines de depuración e informativos. Para obtener más información, consulte Logging Migrator Progress en Using Oracle NoSQL Data Migrator.
-
-
Por ejemplo:
-
"prefix" : "my_table/Data/000000.csv"(solo migra000000.csv) -
"prefix" : "my_table/Data"(migra todos los objetos con el prefijomy_table/Data)
-
-
Por ejemplo:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Por ejemplo:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Ejemplo:
"useInstancePrincipal" : true -
Ejemplo:
"useDelegationToken" : trueNota: La autenticación con token de delegación solo está soportada cuando el migrador de base de datos NoSQL se está ejecutando desde Cloud Shell.
-
Ejemplo:
"useOKEWorkloadIdentity" : true -
Ejemplo:
"useSessionToken" : true
Parámetros de configuración únicos
-
Propósito: especifica si el archivo CSV tiene un encabezado o no. Si se define en
true, se ignora la primera línea. Si se establece enfalse, la primera línea se considera un registro CSV. El valor por defecto esfalse. -
Tipo de datos: booleano
-
Obligatorio (Y/N): N
-
Ejemplo:
"hasHeader" : "false"
-
Propósito: especifica la lista de nombres de columna de tabla de la base de datos NoSQL. El orden de los nombres de columna indica la asignación de los campos del archivo CSV con las columnas correspondientes de la tabla NoSQL Database. Si el orden de las columnas del archivo CSV de entrada no coincide con las columnas de la tabla de la base de datos NoSQL existentes o recién creadas, puede asignar el orden mediante este parámetro. Además, al importar a una tabla que tenga una columna de identidad, puede omitir el nombre de columna de identidad en el parámetro
columns.Nota:
-
Si la tabla NoSQL Database tiene columnas adicionales que no están disponibles en el archivo CSV, los valores de las columnas que faltan se actualizan con el valor por defecto definido en la tabla NoSQL Database. Si no se proporciona un valor predeterminado, se inserta un valor nulo durante la migración. Para obtener más información sobre los valores por defecto, consulte la sección Definiciones de tipo de datos en la Guía de referencia de SQL.
-
Si el archivo CSV tiene columnas adicionales que no están definidas en la tabla NoSQL Database, se ignora la información de columna adicional.
-
Si algún valor del registro CSV está vacío, se define en el valor por defecto de las columnas correspondientes de la tabla NoSQL Database. Si no se proporciona un valor predeterminado, se inserta un valor nulo durante la migración.
-
-
Tipo de datos: matriz de cadenas
-
Obligatorio (Y/N): N
-
Ejemplo:
"columns" : ["table_column_1", "table_column_2"]
-
Propósito: especifica las opciones de formato para un archivo CSV. Proporcione el formato de codificación del juego de caracteres del archivo CSV y elija si desea recortar o no los espacios en blanco.
-
Tipo de datos: objeto
-
Obligatorio (Y/N): N
codificacióncsvOptions.encoding
-
Propósito: especifica el juego de caracteres para descodificar el archivo CSV. El valor por defecto es
UTF-8. Los juegos de caracteres soportados sonUS-ASCII, ISO-8859-1, UTF-8,yUTF-16. -
Tipo de datos: cadena
-
Obligatorio (Y/N): N
-
Ejemplo:
"encoding" : "UTF-8"
-
Propósito: especifica si se deben recortar los espacios en blanco iniciales y finales de un valor de campo CSV. El valor por defecto es
false. -
Tipo de datos: booleano
-
Obligatorio (Y/N): N
-
Ejemplo:
"trim" : "true"
Plantillas de configuración de receptor
Obtenga información sobre los formatos de archivo de configuración de fregadero para cada fregadero válido y la finalidad de cada parámetro de configuración.
Para obtener información sobre la plantilla de archivo de configuración, consulte Archivo de configuración en Terminología utilizada con NoSQL Data Migrator.
Para obtener detalles sobre los formatos de origen válidos para cada uno de los sumideros, consulte Source Configuration Templates.
Temas
En los siguientes temas se describen las plantillas de configuración de fregadero a las que hace referencia el migrador de Oracle NoSQL Database para copiar los datos de un origen válido en el fregadero especificado.
-
Archivo JSON especificado.
-
Archivo Parquet en el directorio especificado.
-
Archivo JSON en el cubo de OCI Object Storage
Archivo JSON en el cubo de OCI Object Storage especificado.
-
Archivo Parquet en cubo de OCI Object Storage
Archivo Parquet en el cubo de OCI Object Storage especificado.
-
Tabla especificada en Oracle NoSQL Database.
-
Oracle NoSQL Database Cloud Service
La tabla especificada en Oracle NoSQL Database Cloud Service.
Fregadero de archivo JSON
El formato de archivo de configuración para el archivo JSON como contenedor de NoSQL Database Migrator se muestra a continuación.
Plantilla de configuración de fregadero
"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>
}
Parámetros de fregadero
Parámetros de configuración comunes
-
Utilice
"type" : "file" -
Utilice
"format" : "json" -
Ejemplo:
"chunkSize" : 40Nota: Este parámetro se aplica SOLO cuando el parámetro useMultiFiles se define en true.
Parámetros de configuración únicos
-
Propósito: especifica la ruta de acceso a un directorio en el que NoSQL Database Migrator copia los datos de origen en formato JSON.
NoSQL Database Migrator crea archivos JSON en el directorio especificado. Si los archivos existen, NoSQL Database Migrator sobrescribe su contenido con los datos de origen.
Asegúrese de que el directorio ya existe y de que tiene permisos de lectura y escritura.
-
Tipo de datos: cadena
-
Obligatorio (Y/N): Y
-
Ejemplo:
"dataPath" : "/home/user/data"Después de una migración correcta, el directorio especificado en el parámetro dataPath incluirá los archivos exportados como se muestra en el siguiente ejemplo:
|--<Table_name>_1_5.json |--<Table_name>_6_10.json ...
schemaPath (Ruta de acceso de esquema)
-
Propósito: especifica la ruta absoluta a un archivo para escribir la información de esquema de tabla proporcionada por el origen.
Si no se define este valor, la información del esquema de origen no se migrará al fregadero. Si se especifica este valor, la utilidad del migrador escribe el esquema de la tabla de origen en el archivo especificado aquí.
La información del esquema se escribe como un comando DDL por línea en este archivo. Si el archivo no existe en la ruta de datos especificada, NoSQL Database Migrator lo crea. Si ya existe, NoSQL Database Migrator sobrescribirá su contenido con los datos de origen. Debe asegurarse de que el directorio principal de la ruta de datos sea válido para el archivo especificado.
-
Tipo de datos: cadena
-
Obligatorio (Y/N): N
-
Ejemplo:
"schemaPath" : "/home/user/schema_file"
-
Propósito: especifica si embellecer o no la salida de JSON para aumentar la legibilidad.
Si no se especifican, se usan por defecto las credenciales false.
-
Tipo de datos: booleano
-
Obligatorio (Y/N): N
-
Ejemplo:
"pretty" : true
-
Propósito: especifica si se deben dividir o no los archivos exportados (creados en el directorio especificado en el parámetro dataPath) en varios subarchivos de un tamaño específico al migrar los datos de la tabla de la base de datos NoSQL a un directorio. El parámetro useMultiFiles se define por defecto en true.
NoSQL Database Migrator divide los datos de la tabla de NoSQL Database en varios archivos al exportar los datos. Si el parámetro useMultiFiles se define en true, cada archivo exportado se divide aún más en subarchivos de tamaño especificados en el parámetro chunkSize.
Ejemplo: Después de una migración correcta, el directorio especificado en el parámetro dataPath incluirá los archivos exportados como se muestra en el siguiente ejemplo:
|--<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 de datos: booleano
-
Obligatorio (Y/N): N
-
Ejemplo:
"useMultiFiles" : true
Archivo de PARQUET
A continuación, se muestra el formato de archivo de configuración para Parquet File como fregadero de NoSQL Database Migrator.
Plantilla de configuración de fregadero
"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>
}
}
Parámetros de fregadero
Parámetros de configuración comunes
-
Utilice
"type" : "file" -
Utilice
"format" : "parquet" -
Ejemplo:
"chunkSize" : 40
Parámetros de configuración únicos
-
Propósito: especifica la ruta de acceso a un directorio para almacenar los datos de la tabla NoSQL migrada. Asegúrese de que el directorio ya existe y de que tiene permisos de lectura y escritura.
-
Tipo de datos: cadena
-
Obligatorio (Y/N): Y
-
Ejemplo:
"dataPath" : "/home/user/migrator/my_table"
-
Propósito: especifica el tipo de compresión que se utilizará para comprimir los datos de Parquet. Los valores válidos son SNAPPY, GZIP y NONE.
Si no se especifica, se usa por defecto SNAPPY.
-
Tipo de datos: cadena
-
Obligatorio (Y/N): N
-
Ejemplo:
"compression" : "GZIP"
parquetOptions (Opciones de parquet)
-
Propósito: especifica las opciones para seleccionar tipos lógicos de Parquet para las columnas NoSQL ENUM, JSON y UUID.
Si no especifica este parámetro, NoSQL Database Migrator escribe los datos de las columnas ENUM, JSON y UUID como String.
-
Tipo de datos: objeto
-
Obligatorio (Y/N): N
-
Propósito: especifica si se deben escribir o no datos de columna JSON de NoSQL como tipo JSON lógico Parquet. Para obtener más información, consulte Parquet Logical Type Definitions.
Si no se especifica ni se define en false, NoSQL Database Migrator escribe los datos de la columna JSON de NoSQL como String.
-
Tipo de datos: booleano
-
Obligatorio (Y/N): N
-
Ejemplo:
"useLogicalJson" : true
-
Propósito: especifica si se deben escribir o no datos de columna NoSQL ENUM como tipo de ENUM lógico de Parquet. Para obtener más información, consulte Parquet Logical Type Definitions.
Si no se especifica ni se define en false, NoSQL Database Migrator escribe los datos de la columna NoSQL ENUM como String.
-
Tipo de datos: booleano
-
Obligatorio (Y/N): N
-
Ejemplo:
"useLogicalEnum" : true
-
Propósito: especifica si se escribirán o no datos de columna NoSQL UUID como tipo de UUID lógico de Parquet. Para obtener más información, consulte Parquet Logical Type Definitions.
Si no se especifica ni se define en false, NoSQL Database Migrator escribe los datos de la columna NoSQL UUID como String.
-
Tipo de datos: booleano
-
Obligatorio (Y/N): N
-
Ejemplo:
"useLogicalUUID" : true
parquetOptions.truncateDoubleSpecials
-
Propósito: especifica si se deben truncar o no los valores dobles +Infinity, -Infinity y NaN.
De forma predeterminada, se establece en
false. Si se define entrue,-
Positive_Infinity se trunca en Double.MAX_VALUE.
-
NEGATIVE_INFINITY está truncado en -Double.MAX_VALUE.
-
NaN se trunca a 9.99999999999999990E307.
-
-
Tipo de datos: booleano
-
Obligatorio (Y/N): N
-
Ejemplo:
"truncateDoubleSpecials" : true
Archivo JSON en el cubo de OCI Object Storage
El formato de archivo de configuración para el archivo JSON en el cubo de OCI Object Storage como fregadero de NoSQL Database Migrator se muestra a continuación.
Nota: Los tipos de origen válidos para OCI Object Storage como fregadero son nosqldb y nosqldb_cloud.
Plantilla de configuración de fregadero
"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>
}
Parámetros de fregadero
Parámetros de configuración comunes
-
Utilice
"type" : "object_storage_oci" -
Utilice
"format" : "json" -
Por ejemplo:
-
ID de región:
"endpoint" : "us-ashburn-1" -
Formato de URL:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Ejemplo:
"namespace" : "my-namespace" -
Ejemplo:
"bucket" : "my-bucket" -
El esquema se migra al archivo
<prefix>/Schema/schema.ddly los datos de origen se migran a los archivos<prefix>/Data/<chunk>.json, donde chunk=000000.json, 000001.json, etc.Por ejemplo:
-
"prefix" : "my_export" -
"prefix" : "my_export/2021-04-05/"
-
-
Ejemplo:
"chunkSize" : 40 -
Por ejemplo:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
- Ejemplo de credentialsProfile:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Ejemplo:
"useInstancePrincipal" : true -
Ejemplo:
"useDelegationToken" : trueNota: La autenticación con token de delegación solo está soportada cuando el migrador de base de datos NoSQL se está ejecutando desde Cloud Shell.
-
Ejemplo:
"useOKEWorkloadIdentity" : true -
Ejemplo:
"useSessionToken" : true
Parámetro de configuración único
descriptivo
-
Propósito: especifica si embellecer o no la salida de JSON para aumentar la legibilidad.
Si no se especifican, se usan por defecto las credenciales false.
-
Tipo de datos: booleano
-
Obligatorio (Y/N): N
-
Ejemplo:
"pretty" : true
Archivo Parquet en cubo de OCI Object Storage
A continuación, se muestra el formato de archivo de configuración para el archivo Parquet en el cubo de OCI Object Storage como receptor de NoSQL Database Migrator.
Nota: Los tipos de origen válidos para el tipo de origen de OCI Object Storage son nosqldb y nosqldb_cloud.
Plantilla de configuración de fregadero
"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>
}
Parámetros de fregadero
Parámetros de configuración comunes
-
Utilice
"type" : "object_storage_oci" -
Utilice
"format" : "parquet" -
Por ejemplo:
-
ID de región:
"endpoint" : "us-ashburn-1" -
Formato de URL:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Ejemplo:
"namespace" : "my-namespace" -
Ejemplo:
"bucket" : "my-bucket" -
Los datos de origen se migran a los archivos
<prefix>/Data/<chunk>.parquet, donde chunk=000000.parquet, 000001.parquet, etc.Por ejemplo:
-
"prefix" : "my_export" -
"prefix" : "my_export/2021-04-05/"
-
-
Ejemplo:
"chunkSize" : 40 -
Por ejemplo:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Por ejemplo:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Ejemplo:
"useInstancePrincipal" : true -
Ejemplo:
"useDelegationToken" : trueNota: La autenticación con token de delegación solo está soportada cuando el migrador de base de datos NoSQL se está ejecutando desde Cloud Shell.
-
Ejemplo:
"useOKEWorkloadIdentity" : true -
Ejemplo:
"useSessionToken" : true
Parámetro de configuración único
-
Propósito: especifica el tipo de compresión que se utilizará para comprimir los datos de Parquet. Los valores válidos son SNAPPY, GZIP y NONE.
Si no se especifica, se usa por defecto SNAPPY.
-
Tipo de datos: cadena
-
Obligatorio (Y/N): N
-
Ejemplo:
"compression" : "GZIP"
parquetOptions (Opciones de parquet)
-
Propósito: especifica las opciones para seleccionar tipos lógicos de Parquet para las columnas NoSQL ENUM, JSON y UUID.
Si no especifica este parámetro, NoSQL Database Migrator escribe los datos de las columnas ENUM, JSON y UUID como String.
-
Tipo de datos: objeto
-
Obligatorio (Y/N): N
-
Propósito: especifica si se deben escribir o no datos de columna JSON de NoSQL como tipo JSON lógico Parquet. Para obtener más información, consulte Parquet Logical Type Definitions.
Si no se especifica ni se define en false, NoSQL Database Migrator escribe los datos de la columna JSON de NoSQL como String.
-
Tipo de datos: booleano
-
Obligatorio (Y/N): N
-
Ejemplo:
"useLogicalJson" : true
-
Propósito: especifica si se deben escribir o no datos de columna NoSQL ENUM como tipo de ENUM lógico de Parquet. Para obtener más información, consulte Parquet Logical Type Definitions.
Si no se especifica ni se define en false, NoSQL Database Migrator escribe los datos de la columna NoSQL ENUM como String.
-
Tipo de datos: booleano
-
Obligatorio (Y/N): N
-
Ejemplo:
"useLogicalEnum" : true
-
Propósito: especifica si se escribirán o no datos de columna NoSQL UUID como tipo de UUID lógico de Parquet. Para obtener más información, consulte Parquet Logical Type Definitions.
Si no se especifica ni se define en false, NoSQL Database Migrator escribe los datos de la columna NoSQL UUID como String.
-
Tipo de datos: booleano
-
Obligatorio (Y/N): N
-
Ejemplo:
"useLogicalUUID" : true
parquetOptions.truncateDoubleSpecials
-
Propósito: especifica si se deben truncar o no los valores dobles +Infinity, -Infinity y NaN.
De forma predeterminada, se establece en
false. Si se define entrue,-
Positive_Infinity se trunca en Double.MAX_VALUE.
-
NEGATIVE_INFINITY está truncado en -Double.MAX_VALUE.
-
NaN se trunca a 9.99999999999999990E307.
-
-
Tipo de datos: booleano
-
Obligatorio (Y/N): N
-
Ejemplo:
"truncateDoubleSpecials" : true
Oracle NoSQL Database
A continuación, se muestra el formato de archivo de configuración de Oracle NoSQL Database como receptor de NoSQL Database Migrator.
Plantilla de configuración de fregadero
"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>
}
Parámetros de fregadero
Parámetro de configuración común
-
Utilice
"type" : "nosqldb" -
Por ejemplo:
"security" : "/home/user/client.credentials"Ejemplo de contenido de archivo de seguridad para autenticación basada en archivo de contraseñas:
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)Ejemplo de contenido de archivo de seguridad para la autenticación basada en cartera:
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) -
Ejemplo:
"requestTimeoutMs" : 5000
Parámetro de configuración único
-
Propósito: nombre del almacén de Oracle NoSQL Database.
-
Tipo de datos: cadena
-
Obligatorio (Y/N): Y
-
Ejemplo:
"storeName" : "kvstore"
-
Propósito: lista de pares de host y puerto de registro en formato
hostname:port. Delimite cada elemento de la lista con una coma. Debe especificar al menos un host auxiliar. -
Tipo de datos: matriz de cadenas
-
Obligatorio (Y/N): Y
-
Ejemplo:
"helperHosts" : ["localhost:5000","localhost:6000"]
-
Propósito: especifica el nombre de la tabla para almacenar los datos migrados.
Formato:
[namespace_name:]<table_name>Si la tabla está en el espacio de nombres DEFAULT, puede omitir
namespace_name. La tabla debe existir en el almacén durante la migración y su esquema debe coincidir con los datos de origen.Si la tabla no está disponible en el receptor, puede utilizar el parámetro
schemaInfopara indicar al Migrador de Base de Datos NoSQL que cree la tabla en el receptor. -
Tipo de datos: cadena
-
Obligatorio (Y/N): Y
-
Ejemplo:
-
Con el espacio de nombres DEFAULT
"table" :"mytable" -
Con un espacio de nombres no por defecto
"table" : "mynamespace:mytable" -
Para especificar una tabla secundaria
"table" : "mytable.child"
Nota: Puede migrar las tablas secundarias de un origen de datos válido a Oracle NoSQL Database. NoSQL Database Migrator solo copia una tabla en cada ejecución. Asegúrese de que la tabla principal se migra antes que la tabla secundaria.
-
-
Propósito: especifica si se deben incluir o no metadatos de TTL para las filas de tabla proporcionadas por el origen al importar tablas de Oracle NoSQL Database.
Si no se especifica este parámetro, el valor por defecto es
false. En ese caso, NoSQL Database Migrator no incluye metadatos TTL para las filas de tabla proporcionadas por el origen al importar tablas de Oracle NoSQL Database.Si se define en true, la herramienta NoSQL Database Migrator realiza las siguientes comprobaciones en los metadatos de TTL al importar una fila de tabla:
-
Si importa una fila que no tiene la definición
_metadata, la herramienta NoSQL Database Migrator define el TTL en 0, lo que significa que la fila nunca caduca. -
Si importa una fila que tiene la definición
_metadata, la herramienta NoSQL Database Migrator compara el valor de TTL con una hora de referencia cuando se importa una fila. Si la fila ya ha caducado en relación con la hora de referencia, se omite. Si la fila no ha caducado, se importa junto con el valor TTL. Por defecto, el tiempo de referencia de la operación de importación es el tiempo actual en milisegundos, obtenido de System.currentTimeMillis(), de la máquina en la que se ejecuta la herramienta NoSQL Database Migrator. Sin embargo, también puede definir un tiempo de referencia personalizado mediante el parámetro de configuraciónttlRelativeDatesi desea ampliar el tiempo de caducidad e importar filas que, de lo contrario, caducarían inmediatamente.La fórmula para calcular el tiempo de caducidad de una fila es la siguiente:
expiration = (TTL value of source row in milliseconds - Reference Time in milliseconds) if (expiration <= 0) then it indicates that row has expired.
Nota: Dado que los límites de TTL de Oracle NoSQL se encuentran en horas y días, en algunos casos, el TTL de la fila importada se puede ajustar a la hora o día más cercanos. Por ejemplo, considere una fila que tenga el valor de caducidad
1629709200000 (2021-08-23 09:00:00)y el valor de tiempo de referencia sea1629707962582 (2021-08-23 08:39:22). Aquí, aunque la fila no haya caducado en relación con la hora de referencia cuando se importan estos datos, el nuevo TTL de la fila es1629712800000 (2021-08-23 10:00:00). -
-
Tipo de datos: booleano
-
Obligatorio (Y/N): N
-
Ejemplo:
"includeTTL" : true
ttlRelativeDate (Fecha relativa ttl)
-
Propósito: especifique una fecha UTC en el formato AAAA-MM-DD hh:mm:ss utilizado para definir la caducidad de TTL de las filas de la tabla durante la importación en Oracle NoSQL Database.
Si una fila de la tabla de los datos que está exportando ha caducado, puede definir el parámetro ttlRelativeDate en una fecha anterior a la hora de caducidad de la fila de la tabla de los datos exportados.
Si no especifica este parámetro, el valor predeterminado es la hora actual en milisegundos, obtenida de System.currentTimeMillis(), de la máquina en la que se ejecuta la herramienta NoSQL Database Migrator.
-
Tipo de datos: fecha
-
Obligatorio (Y/N): N
-
Ejemplo:
"ttlRelativeDate" : "2021-01-03 04:31:17"Consideremos un escenario en el que las filas de la tabla caducan después de siete días a partir del 1 de enero de 2021. Después de exportar esta tabla, el 7 de enero de 2021, tendrá un problema con la tabla y decidirá importar los datos. Las filas de la tabla caducarán en un día (la fecha de caducidad de los datos menos el valor por defecto del parámetro de configuración
ttlRelativedate, que es la fecha actual). Sin embargo, si desea ampliar la fecha de caducidad de las filas de la tabla a cinco días en lugar de un día, utilice el parámetrottlRelativeDatey seleccione una fecha anterior. Por lo tanto, en este caso, si desea ampliar el tiempo de caducidad de las filas de la tabla en cinco días, defina el valor de los parámetros de configuraciónttlRelativeDateen 3-enero-2021, que se utiliza como tiempo de referencia cuando se importan las filas de la tabla.
-
Finalidad: especifica el esquema para los datos que se van a migrar. Si no se especifica, NoSQL Database Migrator asume que la tabla ya existe en el almacén del fregadero.
-
Tipo de datos: objeto
-
Obligatorio (Y/N): N
-
Propósito: especifica la ruta de acceso absoluta a un archivo que contiene sentencias DDL para la tabla NoSQL.
NoSQL Database Migrator ejecuta los comandos DDL mostrados en este archivo antes de migrar los datos.
NoSQL Database Migrator no soporta más de una sentencia DDL por línea en el archivo
schemaPath. -
Tipo de datos: cadena
-
Obligatorio (Y/N): N
Nota:
defaultSchemayschemaPathse excluyen mutuamente. -
Ejemplo:
"schemaPath" : "/home/user/schema_file"
-
Propósito: si se define este parámetro en true, se indica al Migrador de Base de Datos NoSQL que cree una tabla con el esquema por defecto. El esquema por defecto lo define el propio migrador. Para obtener más información sobre las definiciones de esquema por defecto, consulte Esquema por defecto en Uso de Oracle NoSQL Data Migrator.
-
Tipo de datos: booleano
-
Obligatorio (Y/N): N
Nota:
defaultSchemayschemaPathse excluyen mutuamente.
-
Propósito: especifica si el receptor utiliza o no la definición de esquema de tabla proporcionada por el origen al migrar tablas NoSQL.
-
Tipo de datos: booleano
-
Obligatorio (Y/N): N
Nota: los parámetros defaultSchema, schemaPath y useSourceSchema se excluyen mutuamente. Especifique solo uno de estos parámetros.
-
Ejemplo:
-
Con esquema por defecto:
"schemaInfo" : { "defaultSchema" : true } -
Con un esquema predefinido:
"schemaInfo" : { "schemaPath" : "<complete/path/to/the/schema/definition/file>" } -
Con esquema de origen:
"schemaInfo" : { "useSourceSchema" : true }
-
-
Propósito: especifica la clave de partición de DynamoDB y el tipo de Oracle NoSQL Database correspondiente que se utilizará en la tabla de Oracle NoSQL Database de receptor. Esta clave se utilizará como clave de partición horizontal de tabla de base de datos NoSQL. Esto solo se aplica cuando
defaultSchemase define en true y el formato de origen esdynamodb_json. Consulte Asignación de tipos DynamoDB a tipos de Oracle NoSQL para obtener más información. -
Obligatorio (Y/N): Y, si
defaultSchemaes true y el origen esdynamodb_json. -
Ejemplo:
"DDBPartitionKey" : "PersonID:INTEGER"Nota: Si la clave de partición contiene guiones (-) o puntos (-), el migrador la sustituirá por guiones bajos (_), ya que el nombre de columna NoSQL no soporta los guiones ni los puntos.
-
Propósito: especifica la clave de ordenación de DynamoDB y su tipo de Oracle NoSQL Database correspondiente que se utilizará en la tabla de Oracle NoSQL Database de destino. Si la tabla de DynamoDB importadora no tiene una clave de ordenación, no se debe definir este atributo. Esta clave se utilizará como parte no fragmentaria de la clave primaria en la tabla de base de datos NoSQL. Esto solo se aplica cuando
defaultSchemase define en true y el origen esdynamodb_json. Consulte Asignación de tipos DynamoDB a tipos de Oracle NoSQL para obtener más información. -
Obligatorio (Y/N): N
-
Ejemplo:
"DDBSortKey" : "Skey:STRING"Nota: Si la clave de ordenación contiene guiones (-) o puntos (-), el migrador la sustituirá por guiones bajos (_), ya que el nombre de columna NoSQL no soporta puntos ni guiones.
-
Propósito: indica el comportamiento de NoSQL Database Migrator cuando el registro que se está migrando desde el origen ya está presente en el fregadero.
Si el valor se define en false, al migrar tablas, NoSQL Database Migrator omite los registros para los que ya existe la misma clave primaria en el fregadero.
Si el valor se define en true, al migrar tablas, NoSQL Database Migrator sobrescribe aquellos registros para los que ya existe la misma clave primaria en el receptor.
Si no se especifica, se usa por defecto el valor true.
-
Tipo de datos: booleano
-
Obligatorio (Y/N): N
-
Ejemplo:
"overwrite" : false
Oracle NoSQL Database Cloud Service
A continuación, se muestra el formato de archivo de configuración de Oracle NoSQL Database Cloud Service como fregadero de NoSQL Database Migrator.
Plantilla de configuración de fregadero
"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>
}
Parámetros de fregadero
Parámetros de configuración comunes
-
Utilice
"type" : "nosqldb_cloud" -
Por ejemplo:
-
ID de región:
"endpoint" : "us-ashburn-1" -
Formato de URL:
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Por ejemplo:
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Por ejemplo:
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Ejemplo:
"useInstancePrincipal" : true -
Ejemplo:
"useDelegationToken" : trueNota: La autenticación con token de delegación solo está soportada cuando el migrador de base de datos NoSQL se está ejecutando desde Cloud Shell.
-
Ejemplo:
"useOKEWorkloadIdentity" : true -
Ejemplo:
"useSessionToken" : true -
Ejemplo:
"requestTimeoutMs" : 5000
Parámetro de configuración único
-
Propósito: especifica el nombre de la tabla para almacenar los datos migrados.
Debe asegurarse de que esta tabla existe en Oracle NoSQL Database Cloud Service. De lo contrario, debe utilizar el objeto
schemaInfoen la configuración del receptor para indicar al Migrador de Base de Datos NoSQL que cree la tabla.El esquema de esta tabla debe coincidir con los datos de origen.
-
Tipo de datos: cadena
-
Obligatorio (Y/N): Y
-
Ejemplo:
-
Para especificar una tabla
"table" : "mytable" -
Para especificar una tabla secundaria
"table" : "mytable.child"
Nota: Puede migrar las tablas secundarias de un origen de datos válido a Oracle NoSQL Database Cloud Service. NoSQL Database Migrator solo copia una tabla en cada ejecución. Asegúrese de que la tabla principal se migra antes que la tabla secundaria.
-
-
Propósito: especifica el nombre u OCID del compartimento en el que reside la tabla.
Si no proporciona ningún valor, se define por defecto en el compartimento root.
Puede encontrar el OCID de su compartimento en la ventana del explorador de compartimentos en Governance en la consola de OCI Cloud.
-
Tipo de datos: cadena
-
Obligatorio (Y/N): S, si la tabla no está en el compartimento raíz del arrendamiento O si el parámetro useInstancePrincipal está definido en true.
Nota: Si el parámetro useInstancePrincipal está definido en true, el compartimento debe especificar el OCID del compartimento y no el nombre.
-
Ejemplo:
-
Nombre de compartimento
"compartment" : "mycompartment" -
Nombre de compartimento cualificado con su compartimento principal
"compartment" : "parent.childcompartment" -
No se ha indicado ningún valor. El valor por defecto es el compartimento raíz.
"compartment": "" -
OCID de compartimento
"compartment" : "ocid1.tenancy.oc1...4ksd"
-
-
Propósito: especifica si se deben incluir o no metadatos de TTL para las filas de tabla proporcionadas por el origen al importar tablas de Oracle NoSQL Database.
Si no se especifica este parámetro, el valor por defecto es
false. En ese caso, NoSQL Database Migrator no incluye metadatos TTL para las filas de tabla proporcionadas por el origen al importar tablas de Oracle NoSQL Database.Si se define en true, la herramienta NoSQL Database Migrator realiza las siguientes comprobaciones en los metadatos de TTL al importar una fila de tabla:
-
Si importa una fila que no tiene la definición
_metadata, la herramienta NoSQL Database Migrator define el TTL en 0, lo que significa que la fila nunca caduca. -
Si importa una fila que tiene la definición
_metadata, la herramienta NoSQL Database Migrator compara el valor de TTL con una hora de referencia cuando se importa una fila. Si la fila ya ha caducado en relación con la hora de referencia, se omite. Si la fila no ha caducado, se importa junto con el valor TTL. Por defecto, el tiempo de referencia de la operación de importación es el tiempo actual en milisegundos, obtenido de System.currentTimeMillis(), de la máquina en la que se ejecuta la herramienta NoSQL Database Migrator. Sin embargo, también puede definir un tiempo de referencia personalizado mediante el parámetro de configuraciónttlRelativeDatesi desea ampliar el tiempo de caducidad e importar filas que, de lo contrario, caducarían inmediatamente.La fórmula para calcular el tiempo de caducidad de una fila es la siguiente:
expiration = (TTL value of source row in milliseconds - Reference Time in milliseconds) if (expiration <= 0) then it indicates that row has expired.
Nota: Dado que los límites de TTL de Oracle NoSQL se encuentran en horas y días, en algunos casos, el TTL de la fila importada se puede ajustar a la hora o día más cercanos. Por ejemplo, considere una fila que tenga el valor de caducidad
1629709200000 (2021-08-23 09:00:00)y el valor de tiempo de referencia sea1629707962582 (2021-08-23 08:39:22). Aquí, aunque la fila no haya caducado en relación con la hora de referencia cuando se importan estos datos, el nuevo TTL de la fila es1629712800000 (2021-08-23 10:00:00). -
-
Tipo de datos: booleano
-
Obligatorio (Y/N): N
-
Ejemplo:
"includeTTL" : true
ttlRelativeDate (Fecha relativa ttl)
-
Propósito: especifique una fecha UTC en el formato AAAA-MM-DD hh:mm:ss utilizado para definir la caducidad de TTL de las filas de la tabla durante la importación en Oracle NoSQL Database.
Si una fila de tabla de los datos que está exportando ha caducado, puede definir el parámetro
ttlRelativeDateen una fecha anterior a la hora de caducidad de la fila de tabla de los datos exportados.Si no especifica este parámetro, el valor predeterminado es la hora actual en milisegundos, obtenida de System.currentTimeMillis(), de la máquina en la que se ejecuta la herramienta NoSQL Database Migrator.
-
Tipo de datos: fecha
-
Obligatorio (Y/N): N
-
Ejemplo:
"ttlRelativeDate" : "2021-01-03 04:31:17"Consideremos un escenario en el que las filas de la tabla caducan después de siete días a partir del 1 de enero de 2021. Después de exportar esta tabla, el 7 de enero de 2021, tendrá un problema con la tabla y decidirá importar los datos. Las filas de la tabla caducarán en un día (la fecha de caducidad de los datos menos el valor por defecto del parámetro de configuración
ttlRelativedate, que es la fecha actual). Sin embargo, si desea ampliar la fecha de caducidad de las filas de la tabla a cinco días en lugar de un día, utilice el parámetrottlRelativeDatey seleccione una fecha anterior. Por lo tanto, en este caso, si desea ampliar el tiempo de caducidad de las filas de la tabla en cinco días, defina el valor de los parámetros de configuraciónttlRelativeDateen 3-enero-2021, que se utiliza como tiempo de referencia cuando se importan las filas de la tabla.
-
Finalidad: especifica el esquema para los datos que se van a migrar.
Si no especifica este parámetro, NoSQL Database Migrator asume que la tabla ya existe en Oracle NoSQL Database Cloud Service.
Si no se especifica este parámetro y la tabla no existe en el fregadero, la migración falla.
-
Tipo de datos: objeto
-
Obligatorio (Y/N): N
-
Propósito: especifica la ruta de acceso absoluta a un archivo que contiene sentencias DDL para la tabla NoSQL.
NoSQL Database Migrator ejecuta los comandos DDL mostrados en este archivo antes de migrar los datos.
NoSQL Database Migrator no soporta más de una sentencia DDL por línea en el archivo
schemaPath. -
Tipo de datos: cadena
-
Obligatorio (Y/N): N
Nota: defaultSchema y schemaPath se excluyen mutuamente.
- Ejemplo:
"schemaPath" : "/home/user/schema_file"
-
Propósito: si se define este parámetro en Sí, se indica al Migrador de Base de Datos NoSQL que cree una tabla con el esquema por defecto. El esquema por defecto lo define el propio migrador. Para obtener más información sobre las definiciones de esquema por defecto, consulte Esquema por defecto en Uso de Oracle NoSQL Data Migrator.
-
Tipo de datos: booleano
-
Obligatorio (Y/N): N
Nota:
defaultSchemayschemaPathse excluyen mutuamente.
-
Propósito: especifica si el receptor utiliza o no la definición de esquema de tabla proporcionada por el origen al migrar tablas NoSQL.
-
Tipo de datos: booleano
-
Obligatorio (Y/N): N
Nota: los parámetros defaultSchema, schemaPath y useSourceSchema se excluyen mutuamente. Especifique solo uno de estos parámetros.
-
Ejemplo:
-
Con esquema por defecto:
"schemaInfo": { "defaultSchema": true, "readUnits": 100, "writeUnits": 60, "storageSize": 1 } -
Con un esquema predefinido:
"schemaInfo": { "schemaPath": "<complete/path/to/the/schema/definition/file>", "readUnits": 100, "writeUnits": 100, "storageSize": 1 } -
Con esquema de origen:
"schemaInfo": { "useSourceSchema": true, "readUnits": 100, "writeUnits": 60, "storageSize": 1 }
-
-
Propósito: especifica la clave de partición de DynamoDB y el tipo de Oracle NoSQL Database correspondiente que se utilizará en la tabla de Oracle NoSQL Database de receptor. Esta clave se utilizará como clave de partición horizontal de tabla de base de datos NoSQL. Esto solo se aplica cuando
defaultSchemase define en true y el formato de origen esdynamodb_json. Consulte Asignación de tipos DynamoDB a tipos de Oracle NoSQL para obtener más información. -
Obligatorio (Y/N): Y, si
defaultSchemaes true y el origen esdynamodb_json. -
Ejemplo:
"DDBPartitionKey" : "PersonID:INTEGER"Nota: Si la clave de partición contiene guiones (-) o puntos (-), el migrador la sustituirá por guiones bajos (_), ya que el nombre de columna NoSQL no soporta los guiones ni los puntos.
-
Propósito: especifica la clave de ordenación de DynamoDB y su tipo de Oracle NoSQL Database correspondiente que se utilizará en la tabla de Oracle NoSQL Database de destino. Si la tabla de DynamoDB importadora no tiene una clave de ordenación, no se debe definir este atributo. Esta clave se utilizará como parte no fragmentaria de la clave primaria en la tabla de base de datos NoSQL. Esto solo se aplica cuando
defaultSchemase define en true y el origen esdynamodb_json. Consulte Asignación de tipos DynamoDB a tipos de Oracle NoSQL para obtener más información. -
Obligatorio (Y/N): N
-
Ejemplo:
"DDBSortKey" : "Skey:STRING"Nota: Si la clave de ordenación contiene guiones (-) o puntos (-), el migrador la sustituirá por guiones bajos (_), ya que el nombre de columna NoSQL no soporta puntos ni guiones.
Rendimiento global de la demanda de SchemaInfo.on
-
Propósito: especifica que se cree la tabla con el rendimiento de lectura y escritura bajo demanda. Si no se define este parámetro, la tabla se crea con capacidad aprovisionada.
El valor por defecto es
false.
Nota: Este parámetro no se aplica a las tablas secundarias, ya que comparten el rendimiento global de la tabla principal de nivel superior.
-
Tipo de datos: booleano
-
Obligatorio (Y/N): N
-
Ejemplo:
"onDemandThroughput" : "true"
-
Propósito: especifica el rendimiento de lectura de la nueva tabla.
div class="infoboxnote" markdown="1">
Nota:
-
Este parámetro no se aplica a las tablas aprovisionadas con capacidad bajo demanda.
-
Este parámetro no se aplica a las tablas secundarias, ya que comparten el rendimiento de lectura de la tabla principal de nivel superior.
</div>
-
-
Tipo de datos: Entero
-
Obligatorio (Y/N): S, si la tabla no es una tabla secundaria o si el parámetro schemaInfo.onDemandThroughput está definido en
false, de lo contrario, N. -
Ejemplo:
"readUnits" : 100
-
Propósito: especifica el rendimiento de escritura de la nueva tabla.
Nota:
- Este parámetro no se aplica a las tablas aprovisionadas con capacidad bajo demanda.
- Este parámetro no se aplica a las tablas secundarias, ya que comparten el rendimiento de escritura de la tabla principal de nivel superior.
-
Tipo de datos: Entero
-
Obligatorio (Y/N): S, si la tabla no es una tabla secundaria o si el parámetro schemaInfo.onDemandThroughput está definido en
false, de lo contrario, N. -
Ejemplo:
"writeUnits" : 100
-
Propósito: especifica el tamaño de almacenamiento de la nueva tabla en GB.
Nota: Este parámetro no se aplica a las tablas secundarias, ya que comparten el tamaño de almacenamiento de la tabla principal de nivel superior.
-
Tipo de datos: número entero
-
Obligatorio (Y/N): S, si la tabla no es una tabla secundaria, de lo contrario, N.
-
Ejemplo:
-
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 }
-
writeUnitsPercent (Unidades de escritura por ciento)
-
Propósito: especifica el porcentaje de unidades de escritura de tabla que se van a utilizar durante la actividad de migración. La cantidad de tiempo necesaria para migrar datos es directamente proporcional a este atributo.
El valor por defecto es 90. El rango válido es cualquier entero entre 1 y 100.
Para obtener más información sobre cómo utilizar este atributo para mejorar la velocidad de migración de datos, consulte Solución de Problemas del Migrador de Oracle NoSQL Database
-
Tipo de datos: número entero
-
Obligatorio (Y/N): N
-
Ejemplo:
"writeUnitsPercent" : 90
-
Propósito: indica el comportamiento de NoSQL Database Migrator cuando el registro que se está migrando desde el origen ya está presente en el fregadero.
Si el valor se define en false, al migrar tablas, NoSQL Database Migrator omite los registros para los que ya existe la misma clave primaria en el fregadero.
Si el valor se define en true, al migrar tablas, NoSQL Database Migrator sobrescribe aquellos registros para los que ya existe la misma clave primaria en el receptor.
Si no se especifica, se usa por defecto el valor true.
-
Tipo de datos: booleano
-
Obligatorio (Y/N): N
-
Ejemplo:
"overwrite" : false
Plantillas de configuración de transformación
En este tema se explican los parámetros de configuración de las distintas transformaciones soportadas por el migrador de Oracle NoSQL Database. Para obtener la plantilla de archivo de configuración completa, consulte Archivo de configuración en Terminología utilizada con NoSQL Data Migrator.
Oracle NoSQL Database Migrator permite modificar los datos, es decir, agregar transformaciones de datos como parte de la actividad de migración. Puede definir varias transformaciones en una única migración. En tal caso, el orden de las transformaciones es vital porque los datos de origen se someten a cada transformación en el orden dado. La salida de una transformación se convierte en la entrada de la siguiente en el pipeline del migrador.
Las distintas transformaciones soportadas por NoSQL Data Migrator son:
Tabla - Transformaciones
| Atributo de configuración de transformación | Puede utilizar esta transformación para... |
|---|---|
ignoreFields |
Ignore las columnas identificadas de la fila de origen antes de escribir en el fregadero. |
includeFields |
Incluya las columnas identificadas de la fila de origen antes de escribir en el fregadero. |
renameFields |
Cambie el nombre de las columnas identificadas de la fila de origen antes de escribir en el fregadero. |
aggregateFields |
Agregue varias columnas del origen en una sola columna en el fregadero. Como parte de esta transformación, también puede identificar las columnas que desea excluir en la agregación. Estos campos se omitirán de la columna agregada. |
Puede encontrar la plantilla de configuración para cada transformación soportada a continuación.
ignorar campos
El formato del archivo de configuración para la transformación ignoreFields se muestra a continuación.
Plantilla de configuración de transformación
"transforms" : {
"ignoreFields" : ["<field1>","<field2>",...]
}
Parámetro de transformación
ignorar campos
-
Propósito: matriz de los nombres de columna que se ignorarán en los registros de origen.
Nota: Solo puede proporcionar campos de nivel superior. Las transformaciones no se pueden aplicar a los datos de los campos anidados.
-
Tipo de datos: matriz de cadenas
-
Obligatorio (Y/N): Y
-
Ejemplo: para ignorar las columnas denominadas "nombre" y "dirección" del registro de origen:
"ignoreFields" : ["name","address"]
incluir campos
El formato del archivo de configuración para la transformación includeFields se muestra a continuación.
Plantilla de configuración de transformación
"transforms" : {
"includeFields" : ["<field1>","<field2>",...]
}
Parámetro de transformación
incluir campos
-
Propósito: matriz de los nombres de columna que se van a incluir desde los registros de origen. Solo incluye los campos especificados en la matriz; el resto de los campos se ignoran.
Nota: La herramienta NoSQL Database Migrator devuelve un error si especifica una matriz vacía. Además, solo puede especificar los campos de nivel superior. La herramienta NoSQL Database Migrator no aplica transformaciones a los datos de los campos anidados.
-
Tipo de datos: matriz de cadenas
-
Obligatorio (Y/N): Y
-
Ejemplo: para incluir las columnas denominadas "edad" y "género" del registro de origen:
"includeFields" : ["age","gender"]
renameFields
El formato del archivo de configuración para la transformación renameFields se muestra a continuación.
Plantilla de configuración de transformación
"transforms" : {
"renameFields" : {
"<old_name>" : "<new_name>",
"<old_name>" : "<new_name>,"
.....
}
}
Parámetro de transformación
renameFields
-
Propósito: pares clave-valor de los nombres antiguos y nuevos de las columnas a las que se va a cambiar el nombre.
Nota: Solo puede proporcionar campos de nivel superior. Las transformaciones no se pueden aplicar a los datos de los campos anidados.
-
Tipo de datos: objeto JSON
-
Obligatorio (Y/N): Y
-
Ejemplo: para cambiar el nombre de la columna denominada "residencia" a "dirección" y la columna denominada "_id" a "id":
"renameFields" : { "residence" : "address", "_id" : "id" }
campos agregados
El formato del archivo de configuración para la transformación aggregateFields se muestra a continuación.
Plantilla de configuración de transformación
"transforms" : {
"aggregateFields" : {
"fieldName" : "name of the new aggregate field",
"skipFields" : ["<field1>","<field2">,...]
}
}
Parámetro de transformación
campos agregados
-
Propósito: nombre del campo agregado en el fregadero.
-
Tipo de datos: cadena
-
Obligatorio (Y/N): Y
-
Ejemplo: si el registro proporcionado es:
{ "id" : 100, "name" : "john", "address" : "USA", "age" : 20 }Si la transformación agregada es:
"aggregateFields" : { "fieldName" : "document", "skipFields" : ["id"] }La columna agregada en el fregadero tiene el siguiente aspecto:
{ "id": 100, "document": { "name": "john", "address": "USA", "age": 20 } }
Asignación de tipos DynamoDB a tipos Oracle NoSQL
En la siguiente tabla se muestra la asignación de tipos DynamoDB a tipos Oracle NoSQL.
Tabla: Asignación del tipo DynamoDB al tipo Oracle NoSQL
| # | Tipo DynamoDB | Tipo de JSON para columna JSON de NoSQL | Tipo NoSQL de Oracle |
|---|---|---|---|
| 1 | Cadena (S) | Cadena JSON | STRING |
| 2 | Tipo de número (N) | Número JSON | ENTERO/LARGO/FLOTANTE/DOBLE/NÚMERO |
| 3 | Booleano (BOOL) | Booleano JSON | BOOLEAN |
| 4 | Tipo binario (B): buffer de bytes | Cadena JSON codificada BASE-64 | BINARY |
| 5 | NULL | JSON nulo | NULL |
| 6 | Conjunto de cadenas (SS) | Matriz de Cadenas JSON | MATRIZ (CADENA) |
| 7 | Juego de números (NS) | Matriz de Números de JSON | MATRIZ (ENTERO/LARGO/FLOTANTE/DOBLE/NÚMERO) |
| 8 | Juego binario (BS) | Matriz JSON de cadenas codificadas con base 64 | MATRIZ (BINARIA) |
| 9 | LISTA (L) | Matriz de JSON | MATRIZ (JSON) |
| 10 | MAPA (M) | Objeto JSON | JSON |
| 11 | CLAVE DE PARTICIÓN | NA | PRIMARY KEY y SHARD KEY |
| 12 | CLAVE DE ORDENACIÓN | NA | PRIMARY KEY |
| 13 | Nombres de atributos con guion y punto | Nombres de campos JSON con un guion bajo | Nombres de columna con guion bajo |
Pocos puntos adicionales que se deben tener en cuenta al asignar tipos DynamoDB a tipos Oracle NoSQL:
-
DynamoDB solo admite un tipo de dato para números y puede tener hasta 38 dígitos de precisión, en contraste, Oracle NoSQL soporta muchos tipos para elegir según el rango y la precisión de los datos. Puede seleccionar el tipo de número adecuado que se ajuste al rango de los datos de entrada. Si no está seguro de la naturaleza de los datos, se puede utilizar el tipo NoSQL NUMBER.
-
DynamoDB solo admite un tipo de dato para números y puede tener hasta 38 dígitos de precisión, en contraste, Oracle NoSQL soporta muchos tipos para elegir según el rango y la precisión de los datos. Puede seleccionar el tipo de número adecuado que se ajuste al rango de los datos de entrada. Si no está seguro de la naturaleza de los datos, se puede utilizar el tipo NoSQL NUMBER.
-
La clave de partición de DynamoDB tiene un límite de 2048 bytes, pero Oracle NoSQL Cloud Service tiene un límite de 64 bytes para la clave primaria/clave de partición horizontal.
-
La clave de ordenación de DynamoDB tiene un límite de 1024 bytes, pero Oracle NoSQL Cloud Service tiene un límite de 64 bytes para la clave primaria.
-
Los nombres de atributo de DynamoDB pueden tener 64 KB de longitud, pero los nombres de columna del servicio Oracle NoSQL Cloud tienen un límite de 64 caracteres.
Asignación de Tipo de Dato Oracle NoSQL a Parquet
Describe la asignación de tipos de dato de Oracle NoSQL a tipos de dato Parquet.
| Tipo NoSQL | Tipo de parquet |
|---|---|
| BOOLEAN | BOOLEAN |
| INTEGER | INT32 |
| LONG | INT64 |
| FLOAT | DOUBLE |
| DOUBLE | DOUBLE |
| BINARY | BINARY |
| FIJO_BINARIO | BINARY |
| STRING | BINARIO (CADENA) |
| ENUM | BINARIO (CADENA) o bien, BINARY(ENUM), si está configurado el ENUM lógico |
| UUID | BINARIO (CADENA) o bien, FIXED_BINARY(16), si el UUID lógico está configurado |
| TIMESTAMP(p) | INT64(TIMESTAMP(p)) |
| NUMBER | DOUBLE |
| nombre_campo ARRAY(T) | |
| field_name MAP(T) | |
| nombre_campo REGISTRO(K1 T1 N1, K ⁇ 2 T2 N2, ....) donde: K = Nombre de clave T = Tipo N = nulo o no |
|
| JSON | BINARIO (CADENA) o bien, BINARY(JSON), si se ha configurado un JSON lógico |
Nota: Cuando el tipo de número NoSQL se convierte al tipo Parquet Double, puede que se produzca alguna pérdida de precisión en caso de que el valor no se pueda representar en Double. Si el número es demasiado grande para representarlo como Doble, se convierte a Double.NEGATIVE_INFINITY o Double.POSITIVE_INFINITY.
Asignación de la tabla DynamoDB a la tabla Oracle NoSQL
En DynamoDB, una tabla es una recopilación de elementos y cada elemento es una recopilación de atributos. Cada elemento de la tabla tiene un identificador único o una clave primaria. Aparte de la clave primaria, la tabla no tiene esquema. Cada elemento puede tener sus propios atributos distintos.
DynamoDB soporta dos tipos diferentes de claves primarias:
-
Clave de partición: clave primaria simple, compuesta por un atributo conocido como clave de partición. DynamoDB utiliza el valor de la clave de partición como entrada para una función hash interna. La salida de la función hash determina la partición en la que se almacenará el elemento.
-
Clave de partición y clave de ordenación: como clave primaria compuesta, este tipo de clave se compone de dos atributos. El primer atributo es la clave de partición y el segundo atributo es la clave de ordenación. DynamoDB utiliza el valor de clave de partición como entrada para una función hash interna. La salida de la función hash determina la partición en la que se almacenará el elemento. Todos los elementos con el mismo valor de clave de partición se almacenan juntos, en orden ordenado por valor de clave de ordenación.
En cambio, las tablas NoSQL de Oracle admiten modelos de datos flexibles con diseño sin esquema y sin esquema.
Hay dos formas diferentes de modelar una tabla DynamoDB:
-
Modelado de la tabla DynamoDB como documento JSON (recomendado): en este modelado, se asignan todos los atributos de las tablas de base de datos Dynamo a una columna JSON de la tabla NoSQL, excepto la clave de partición y la clave de ordenación. Modelará la clave de partición y la ordenará como columnas de clave primaria de la tabla NoSQL. Utilizará la transformación
AggregateFieldspara agregar datos de clave no primaria en una columna JSON.Nota: El migrador proporciona una configuración fácil de recordar
defaultSchemapara crear automáticamente una tabla DDL sin esquema que también agrega atributos en una columna JSON. -
Modelado de la tabla DynamoDB como columnas fijas en la tabla NoSQL: en este modelado, para cada atributo de la tabla DynamoDB, creará una columna en la tabla NoSQL como se especifica en la asignación de tipos DynamoDB a tipos NoSQL de Oracle. Modelará la clave de partición y ordenará los atributos de clave como claves primarias. Esto solo se debe utilizar cuando esté seguro de que la importación del esquema de tabla DynamoDB es fija y cada elemento tiene valores para la mayoría de los atributos. Si los elementos de DynamoDB no tienen atributos comunes, esto puede dar como resultado muchas columnas NoSQL con valores vacíos.
Nota: Se recomienda utilizar tablas sin esquema al migrar datos de DynamoDB a Oracle NoSQL Database, ya que las tablas DynamoDB no tienen esquema. Esto es especialmente para tablas grandes en las que el contenido de cada registro puede no ser uniforme en toda la tabla.
Solución de problemas de Oracle NoSQL Database Migrator
Conozca los desafíos generales a los que puede enfrentarse mientras usa el , y cómo resolverlos.
Fallo de migración. ¿Cómo puedo resolver esto?
Un fallo de la migración de datos puede deberse a varios motivos subyacentes. Las causas importantes se enumeran a continuación:
Tabla - Causas de fallo de migración
| Mensaje de error | Significado | Resolución |
|---|---|---|
Failed to connect to Oracle NoSQL Database |
El migrador no ha podido establecer una conexión con la base de datos NoSQL. |
|
Failed to connect to Oracle NoSQL Database Cloud Service |
El migrador no ha podido establecer una conexión con Oracle NoSQL Database Cloud Service. |
|
Table not found |
NoSQL Database Migrator ha podido localizar la tabla identificada para la migración. | Para la fuente:
Para el fregadero:
|
DDL Execution failed |
Los comandos DDL proporcionados en el archivo de definición de esquema de entrada no son válidos. |
|
failed to write record to the sink table with java.lang.IllegalArgumentException |
El registro de entrada no coincide con el esquema de tabla del fregadero. |
|
Request timeout |
La operación de la fuente o del fregadero no se completó en el tiempo esperado. |
|
¿Qué debo tener en cuenta antes de reiniciar una migración fallida?
Cuando una tarea de migración de datos falla, el fregadero se encuentra en un estado intermedio que contiene los datos importados hasta el punto de fallo. Puede identificar los detalles de error y fallo de los logs y reiniciar la migración después de diagnosticar y corregir el error. Una migración reiniciada se inicia de nuevo, procesando todos los datos desde el principio. No hay forma de establecer un punto de control y reiniciar la migración desde el punto de fallo. Por lo tanto, NoSQL Database Migrator sobrescribe cualquier registro que ya se haya migrado al fregadero.
El tiempo que se tarda en migrar los datos depende de varios factores, como el volumen de datos que se van a migrar, la velocidad de red y la carga actual en la base de datos. En el caso de un servicio en la nube, la velocidad de migración también depende del rendimiento de lectura y de escritura aprovisionado. Por lo tanto, para mejorar la velocidad de migración, puede:
-
Considere la posibilidad de ejecutar la migración fuera del horario laboral cuando la carga en la base de datos sea menor.
-
Considere la posibilidad de asignar la máquina virtual en la que se ejecutará NoSQL Database Migrator, definir el origen de datos y definir el receptor de datos en la misma región de OCI para garantizar latencias de red mínimas.
-
En el caso de Oracle NoSQL Database Cloud Service, verifique si el almacenamiento asignado para la tabla es suficiente. Si NoSQL Database Migrator no está creando la tabla, puede aumentar el rendimiento de escritura. Si el migrador está creando la tabla, considere la posibilidad de especificar un valor superior para el parámetro
schemaInfo.writeUnitsen la configuración del receptor. Una vez finalizada la migración de datos, puede reducir este valor.Nota: No hay limitación en el número de veces que puede aumentar el rendimiento o los límites de almacenamiento. Puede reducir los límites de rendimiento o almacenamiento solo hasta 4 veces en un período de 24 horas. Consulte Límites de la nube y Plantillas de configuración de disipadores.
La utilidad Migrator está diseñada de manera inherente para lograr una mayor velocidad de migración mediante el procesamiento de varios flujos en paralelo. Los siguientes puntos sugieren cómo aprovechar esta capacidad para diversos escenarios de migración:
-
Migración de tablas locales/de Oracle NoSQL Database Cloud Service al sistema de archivos/dispositivo de almacenamiento de objetos:
Defina los parámetros useMultiFiles y chunkSize en la configuración del migrador. El parámetro
useMultiFilescrea varios archivos/objetos en el fregadero. El parámetrochunkSizedetermina el tamaño de cada archivo durante la exportación de datos.Por ejemplo: para exportar datos de 2 GB, si se define el parámetro
useMultiFilesen true y el parámetrochunkSizeen 40 MB, la utilidad Migrator escribirá 50 archivos de 40 MB cada uno.Nota: Actualmente, la utilidad Migrator puede procesar 100 flujos en paralelo. Por lo tanto, defina el parámetro
chunkSizeen un valor de tamaño de archivo óptimo para que la utilidad Migrator cree un máximo de 100 archivos durante la exportación de datos. -
Migración de un sistema de archivos/almacenamiento de objetos a Oracle NoSQL Database Cloud Service/dispositivo local:
-
Si el sistema de archivos/almacenamiento de objetos ha exportado datos que contienen varios archivos/objetos de una migración anterior, la utilidad Migrator procesa automáticamente los archivos en paralelo para lograr una mayor velocidad de migración al importar los datos.
-
Si va a migrar datos de otros sistemas de archivos/almacenamiento de objetos externos, considere la posibilidad de dividir los datos en varios archivos/varios objetos en el origen de datos.
Nota:
-
En el caso del receptor de Oracle NoSQL Database Cloud Service, debe configurar un rendimiento de escritura y un porcentaje de unidades de escritura de tabla suficientes para procesar hasta 100 flujos durante la operación de migración.
-
Si tiene más de 100 archivos de origen, la utilidad Migrator crea un máximo de 100 flujos y los distribuye entre ellos durante la importación de datos. Los archivos de cada flujo se migrarán secuencialmente.
-
-
Tengo una migración de larga ejecución que implica grandes conjuntos de datos. ¿Cómo puedo realizar un seguimiento del progreso de la migración?
Puede activar registros adicionales para realizar un seguimiento del progreso de una migración de larga ejecución. Para controlar el comportamiento de registro de Oracle NoSQL Database Migrator, debe definir el nivel deseado de registro en el archivo logging.properties. Este archivo se proporciona con el paquete NoSQL Database Migrator y está disponible en el directorio donde se ha desempaquetado Oracle NoSQL Database Migrator. Los diferentes niveles de registro en el orden de aumento del nivel de detalle son OFF, SEVERE, WARNING, INFO, FINE, y ALL.
Al definir el nivel de log en OFF, se desactiva toda la información de registro, mientras que al definir el nivel de log en ALL se proporciona la información de log completa.
El nivel de log por defecto es WARNING. Toda la salida de registro está configurada para ir a la consola por defecto.
Puede ver comentarios en el archivo logging.properties para conocer cada nivel de log.