Todos los productos
Search
Centro de documentos

Data Transmission Service:Sincronizar datos de ApsaraDB for MongoDB a Lindorm

Última actualización: Oct 09, 2026

Data Transmission Service (DTS) sincroniza datos desde ApsaraDB for MongoDB (conjunto de réplicas o clúster particionado) hacia Lindorm (motor de tabla ancha). Este servicio es estable, rentable y fácil de usar. Además, ofrece alta concurrencia y baja latencia, por lo que resulta ideal para casos de uso como metadatos, pedidos, facturas, perfiles y redes sociales.

Requisitos previos

  • La instancia de origen de ApsaraDB for MongoDB debe ubicarse en la región Germany (Frankfurt).

  • La instancia de origen de ApsaraDB for MongoDB debe tener una arquitectura de conjunto de réplicas o de clúster particionado.

    Importante

    Si la instancia de origen de ApsaraDB for MongoDB tiene una arquitectura de clúster particionado, debe obtener un endpoint para cada nodo shard y comprobar que todos los nodos shard usen la misma cuenta y contraseña. Para más información, consulte Apply for a shard endpoint.

  • Cree una instancia de destino en Lindorm que utilice el motor de tabla ancha y tenga más espacio de almacenamiento que la instancia de origen de ApsaraDB for MongoDB. Para más información, consulte Create an instance.

    Nota

    La capacidad de almacenamiento de la instancia de destino debe ser como mínimo un 10 % mayor que el espacio utilizado por la base de datos de origen.

  • Cree una tabla ancha en su instancia de Lindorm según sus necesidades de negocio. Para ver las instrucciones, consulte Connect to and use LindormTable with Lindorm-cli o Connect to LindormTable with Lindorm Shell.

    Nota

Precauciones

Tipo

Descripción

Límites de la base de datos de origen

  • Requisito de ancho de banda: el servidor donde reside la base de datos de origen debe contar con suficiente ancho de banda de salida. De lo contrario, la velocidad de sincronización podría verse afectada.

  • Las colecciones que se van a sincronizar deben tener una clave primaria o una restricción UNIQUE, y los valores de los campos deben ser únicos. En caso contrario, podrían aparecer datos duplicados en la base de datos de destino.

  • Si su instancia de MongoDB de origen es un clúster particionado, el campo _id de las colecciones a sincronizar debe contener valores únicos. De lo contrario, podría producirse una inconsistencia de datos.

  • Si su instancia de MongoDB de origen es un clúster particionado, la cantidad de nodos Mongos no puede superar los 10.

  • Si la instancia de origen es un clúster particionado de MongoDB administrado por usted:

    • Access Method solo admite Express Connect, VPN Gateway, or Smart Access Gateway y Cloud Enterprise Network (CEN).

    • Si su versión de MongoDB es 8.0 o posterior y Migration Method es Oplog, asegúrese de que la cuenta Shard utilizada por la tarea de sincronización tenga el permiso directShardOperations. Agregue este permiso con el comando db.adminCommand({ grantRolesToUser: "username", roles: [{ role: "directShardOperations", db: "admin"}]}).

      Nota

      Reemplace username en el comando por la cuenta Shard que utiliza la tarea de sincronización.

    • Si Migration Method es Oplog y la tarea incluye sincronización completa de datos, asegúrese de que la cuenta Mongos del clúster particionado de MongoDB de origen tenga permiso para ejecutar el comando db.runCommand({"balancerStatus":1}). DTS comprueba si el balanceador está deshabilitado mediante este comando durante la verificación previa.

  • Si sincroniza a nivel de colección y necesita editar objetos (por ejemplo, cambiar el nombre de las colecciones), una sola tarea de sincronización admite hasta 1,000 colecciones. Si supera este límite, la tarea terminará con errores después de enviarla. Para resolverlo, divida las colecciones en lotes y configure varias tareas, o bien configure una tarea de sincronización de toda la base de datos.

  • Un solo documento de la base de datos de origen no puede superar los 16 MB. De lo contrario, la tarea fallará.

  • La base de datos de origen no puede ser Azure Cosmos DB for MongoDB ni Amazon DocumentDB (clúster elástico).

  • La base de datos de origen debe tener habilitado Oplog y conservarlo durante como mínimo siete días. También puede habilitar Change Streams y asegurarse de que DTS pueda suscribirse a los cambios de datos de los últimos siete días mediante esta función. De lo contrario, DTS podría no capturar los cambios de datos y provocar un fallo en la tarea. En casos extremos, esto genera inconsistencia o pérdida de datos. Estos problemas no están cubiertos por el acuerdo de nivel de servicio (SLA) de DTS.

    Importante
    • Se recomienda utilizar Oplog para capturar los cambios de datos.

    • Solo MongoDB 4.0 y versiones posteriores son compatibles con Change Streams. Esta función no admite la sincronización bidireccional.

    • Si la base de datos de origen es Amazon DocumentDB (clúster no elástico), habilite Change Streams manualmente. Al configurar la tarea, establezca Migration Method en ChangeStream y Architecture en Sharded Cluster.

  • Límites de operación en la base de datos de origen:

    • Durante la sincronización completa de datos, no modifique el esquema de las bases de datos ni de las colecciones (incluidas las actualizaciones de datos de tipo arreglo). De lo contrario, la tarea de migración de datos podría fallar o generar inconsistencias entre la base de datos de origen y la de destino.

    • Si solo ejecuta la sincronización completa de datos, no escriba información nueva en la instancia de origen. En caso contrario, podría producirse una inconsistencia de datos entre la base de datos de origen y la de destino.

    • Si su instancia de MongoDB de origen es un clúster particionado, mientras la instancia de sincronización esté en ejecución no ejecute comandos que cambien la distribución de datos en los objetos a sincronizar (por ejemplo, shardCollection, reshardCollection, unshardCollection, moveCollection o movePrimary). De lo contrario, podría producirse una inconsistencia de datos.

  • Si las colecciones a sincronizar contienen índices TTL, podría producirse una inconsistencia de datos o latencia.

  • Asegúrese de que no existan documentos huérfanos en su instancia de clúster particionado de MongoDB. De lo contrario, podría presentarse una inconsistencia de datos o un fallo en la tarea. Para más información, consulte orphaned documents y How to clean orphaned documents in MongoDB (sharded cluster architecture).

  • Si su instancia de MongoDB de origen es un clúster particionado y el balanceador distribuye datos, podría presentarse latencia.

  • DTS no admite la conexión a bases de datos de MongoDB mediante direcciones SRV.

Otros límites

  • Solo se admiten tareas de sincronización dentro de la región Germany (Frankfurt).

  • DTS no admite la sincronización de datos de las bases de datos admin, config y local.

  • La colección de destino en Lindorm no puede tener campos llamados _id ni _value. De lo contrario, la sincronización fallará.

  • Si necesita sincronización incremental para operaciones UPDATE o DELETE, aplique los siguientes límites:

    • Si la tabla ancha se creó con Lindorm SQL, agregue una columna que no sea clave primaria llamada _mongo_id_ al crear la tabla. Su tipo de dato debe coincidir con el tipo del campo _id en MongoDB. Además, cree un índice secundario en esta columna.

    • Si la tabla ancha se creó con la API de HBase, agregue una columna que no sea clave primaria llamada _mongo_id_ en la familia de columnas f al crear la tabla. Su tipo de dato debe coincidir con el tipo del campo _id en MongoDB. Además, cree un índice secundario en esta columna. Si utiliza esta nueva columna junto con ETL, asegúrese de que no haya datos duplicados en Lindorm.

  • La información de transacciones no se conserva. Las transacciones de la base de datos de origen se convierten en registros individuales en la base de datos de destino.

  • Los datos que se van a sincronizar en la instancia de Lindorm deben cumplir los requisitos especificados en Request limits. De lo contrario, la tarea fallará.

  • Evalúe el rendimiento de las bases de datos de origen y de destino antes de la sincronización. Ejecute la sincronización fuera del horario de mayor actividad. De lo contrario, la sincronización completa de datos consumirá recursos de lectura y escritura, lo que aumentará la carga de la base de datos.

  • La sincronización completa de datos ejecuta operaciones INSERT de forma concurrente. Esto genera fragmentación en la colección de la base de datos de destino. Después de la sincronización completa, el espacio de almacenamiento de la colección en la base de datos de destino será mayor que en la instancia de origen.

  • Confirme que la precisión de sincronización de DTS para columnas FLOAT o DOUBLE cumple con sus expectativas de negocio. DTS lee estas columnas mediante ROUND(COLUMN,PRECISION). Si no se define la precisión, DTS usa 38 dígitos para FLOAT y 308 dígitos para DOUBLE.

  • DTS intenta recuperar las tareas de sincronización con errores durante siete días. Antes de redirigir el tráfico a la instancia de destino, finalice o libere la tarea. También puede usar el comando revoke para revocar los permisos de escritura de la cuenta de DTS en la instancia de destino. Esto evita que la recuperación automática sobrescriba los datos de destino con los datos de origen.

  • DTS calcula la latencia de la sincronización incremental al comparar la marca de tiempo del último documento sincronizado con la marca de tiempo actual. Si la base de datos de origen no recibe actualizaciones durante mucho tiempo, la información de latencia podría ser inexacta. Si la latencia parece demasiado alta, ejecute una operación de actualización en la base de datos de origen para refrescar dicha información.

  • DTS no admite la sincronización de colecciones de series temporales introducidas en MongoDB 5.0 y versiones posteriores.

  • Si una tarea falla, el personal de soporte de DTS intentará restaurarla en un plazo de ocho horas. Durante la restauración, podrían reiniciar la tarea o ajustar sus parámetros.

    Nota

    Solo se modifican los parámetros de la tarea de DTS, no los de la base de datos. Los parámetros que podrían ajustarse incluyen los que se enumeran en Modify instance parameters.

  • No se admite la sincronización de datos con codificación distinta de UTF-8, lo que podría generar inconsistencia de datos.

Facturación

Tipo de sincronización

Tarifa de configuración de la tarea

Sincronización completa de datos

Gratuita.

Sincronización incremental de datos

Aplica tarifa. Para más información, consulte billing overview.

Tipos de sincronización

Tipo

Descripción

Sincronización completa de datos

Traslada todos los datos existentes de los objetos seleccionados desde la instancia de origen de ApsaraDB for MongoDB hacia la instancia de destino en Lindorm.

Nota

La sincronización completa de datos es compatible con bases de datos y colecciones.

Sincronización incremental de datos

Sincroniza los cambios continuos de datos desde la instancia de origen de ApsaraDB for MongoDB hacia la instancia de destino en Lindorm, después de una sincronización inicial completa de datos.

Nota
  • Solo se admiten las operaciones insert, update y delete sobre documentos de una colección.

  • Para las actualizaciones de documentos, solo replica las operaciones que utilizan el comando $set.

Permisos de cuentas de base de datos

Base de datos

Permisos

Acciones

Instancia de origen de ApsaraDB for MongoDB

Permiso de lectura en las bases de datos de origen, admin y local.

Permission management for MongoDB database users

Instancia de destino en Lindorm

Permiso de lectura y escritura en el namespace de destino.

Managing access control

Nota

Si utiliza ChangeStream como método de sincronización incremental, la cuenta de la base de datos de origen requiere permisos de lectura de Change Streams en toda la instancia (como readAnyDatabase). Si el origen es una instancia de ApsaraDB for MongoDB con una cuenta personalizada, también debe otorgarle a la cuenta permiso de lectura en la base de datos admin. Para más detalles, consulte Permissions of the root account specified during instance creation.

Procedimiento

  1. Vaya a la página de lista de tareas de sincronización de la región de destino. Para ello, utilice uno de los dos métodos a continuación:

    Desde la consola de DTS

    1. Inicie sesión en la consola de Data Transmission Service (DTS).

    2. En el panel de navegación izquierdo, haga clic en Data Synchronization.

    3. En la esquina superior izquierda de la página, seleccione la región donde se encuentra la instancia de sincronización.

    Desde la consola de DMS

    Nota

    Las operaciones reales pueden variar según el modo y el diseño de la consola de DMS. Para obtener más información, consulte Simple mode y Customize the layout and style of the DMS interface.

    1. Inicie sesión en Data Management (DMS).

    2. En la barra de menús superior, elija Data + AI > Data Transmission (DTS) > Data Synchronization.

    3. A la derecha de Data Synchronization Tasks, seleccione la región donde se encuentra la instancia de sincronización.

  2. Haga clic en Create Task para abrir la página de configuración de la tarea.

  3. Configure las bases de datos de origen y de destino.

    Categoría

    Parámetro

    Descripción

    N/A

    Task Name

    DTS genera automáticamente un nombre de tarea. Se recomienda especificar un nombre descriptivo para identificarla con facilidad. El nombre no tiene que ser único.

    Source Database

    Select Existing Connection

    • Para usar una instancia de base de datos que sea added to the system (recién creada o guardada), selecciónela en la lista desplegable. La información de la base de datos se configura automáticamente.

      Nota

      En la consola de DMS, este elemento de configuración se denomina Select a DMS database instance..

    • Si no ha agregado la instancia de base de datos al sistema, o si no necesita usar una instancia ya agregada, configure manualmente la siguiente información de la base de datos.

    Database Type

    Seleccione MongoDB.

    Access Method

    Seleccione Alibaba Cloud Instance.

    Instance Region

    Seleccione la región donde se encuentra la instancia de origen de ApsaraDB for MongoDB.

    Replicate Data Across Alibaba Cloud Accounts

    Este ejemplo muestra cómo sincronizar datos dentro de la misma cuenta de Alibaba Cloud. Seleccione No.

    Architecture

    En este ejemplo, seleccione Replica Set.

    Nota

    Si la instancia de origen de ApsaraDB for MongoDB es un Sharded Cluster, también debe especificar la Shard account y la Shard password.

    Migration Method

    Seleccione un método para la sincronización incremental de datos según sus necesidades.

    • Oplog (recomendado):

      Esta opción está disponible si Oplog está habilitado en la base de datos de origen.

      Nota

      Oplog se habilita de forma predeterminada en las bases de datos MongoDB autogestionadas y en las instancias de ApsaraDB for MongoDB. Este método ofrece menor latencia en las tareas de sincronización incremental porque los registros se recuperan más rápido. Se recomienda seleccionar Oplog.

    • ChangeStream:

      Esta opción está disponible si Change Streams están habilitados en la base de datos de origen.

      Nota
      • Si la base de datos de origen es una instancia de Amazon DocumentDB (clúster no elástico), solo puede seleccionar ChangeStream.

      • Si establece la Architecture de la base de datos de origen como Sharded Cluster, no necesita especificar la Shard account ni la Shard password.

    Instance ID

    Seleccione el ID de la instancia de origen de ApsaraDB for MongoDB.

    Authentication Database

    Introduzca el nombre de la base de datos de autenticación de la instancia de origen de ApsaraDB for MongoDB. El valor predeterminado es admin.

    Database Account

    Introduzca la cuenta de la base de datos de su instancia de origen de ApsaraDB for MongoDB. Para obtener información sobre los permisos obligatorios, consulte Permissions required for database accounts.

    Database Password

    Introduzca la contraseña correspondiente a la cuenta de la base de datos.

    Encryption

    DTS admite tres métodos de conexión: Non-encrypted, SSL-encrypted y Mongo Atlas SSL. Las opciones de Encryption varían según el Access Method y la Architecture seleccionados. Prevalecen las opciones que se muestran en la consola.

    Nota
    • Una base de datos MongoDB cuya Architecture es Sharded Cluster y cuyo Migration Method es Oplog no es compatible con SSL-encrypted.

    • Si el origen es una base de datos MongoDB autogestionada (el Access Method no es Alibaba Cloud Instance) con arquitectura de Replica Set, y usted selecciona SSL-encrypted, DTS también le permite cargar un certificado de CA para verificar la conexión.

    Destination Database

    Select Existing Connection

    • Para usar una instancia de base de datos que sea added to the system (recién creada o guardada), selecciónela en la lista desplegable. La información de la base de datos se configura automáticamente.

      Nota

      En la consola de DMS, este elemento de configuración se denomina Select a DMS database instance..

    • Si no ha agregado la instancia de base de datos al sistema, o si no necesita usar una instancia ya agregada, configure manualmente la siguiente información de la base de datos.

    Database Type

    Seleccione Lindorm.

    Access Method

    Seleccione Alibaba Cloud Instance.

    Instance Region

    Seleccione la región donde se encuentra la instancia de destino de Lindorm.

    Instance ID

    Seleccione el ID de la instancia de destino de Lindorm.

    Database Account

    Introduzca la cuenta de la base de datos de la instancia de destino de Lindorm. Para obtener información sobre los permisos obligatorios, consulte Permissions required for database accounts.

    Database Password

    Introduzca la contraseña correspondiente a la cuenta de la base de datos.

  4. Una vez completada la configuración, haga clic en Test Connectivity and Proceed en la parte inferior de la página.

    Nota
    • Asegúrese de que los bloques CIDR de direcciones IP de los servidores de DTS estén agregados a la configuración de seguridad de las bases de datos de origen y de destino para permitir el acceso desde dichos servidores. Esto se puede hacer de forma automática o manual. Para obtener más información, consulte Add the IP address CIDR blocks of DTS servers to a whitelist.

    • Si la base de datos de origen o de destino es autogestionada (donde el Access Method no es Alibaba Cloud Instance), también debe hacer clic en Test Connectivity en el cuadro de diálogo CIDR Blocks of DTS Servers.

  5. Configure los objetos de la tarea.

    1. En la página Configure Objects, configure los objetos que desea sincronizar.

      Parámetro

      Descripción

      Synchronization Types

      Incremental Data Synchronization está seleccionado. Solo puede elegir Full Data Synchronization. No se admite Schema Synchronization. Después de completar la comprobación previa, DTS sincroniza los datos de los objetos seleccionados desde la instancia de origen hacia el clúster de destino. Esta información sirve como línea base para la sincronización incremental posterior.

      Processing Mode of Conflicting Tables

      No se requiere ninguna configuración. Puede conservar el valor predeterminado.

      Capitalization of Object Names in Destination Instance

      Puede configurar la política de distinción entre mayúsculas y minúsculas para los nombres en inglés de los objetos de base de datos y colección que se sincronizan con la instancia de destino. Tiene la opción de elegir la DTS default policy, que es la opción predeterminada, o bien utilizar las políticas predeterminadas de la base de datos de origen o de destino. Para obtener más información, consulte Case sensitivity policy for destination object names.

      Source Objects

      En el cuadro Source Objects, haga clic en el objeto que desea sincronizar y luego haga clic en 向右 para moverlo al cuadro Selected Objects.

      Nota

      Puede seleccionar objetos a nivel de colección.

      Selected Objects

      Si utilizó Lindorm SQL para crear la tabla ancha en la base de datos de destino, debe configurar columnas adicionales para la sincronización. Las columnas que no se configuren no se sincronizarán.

      1. Edite la asignación de nombres de base de datos.

        1. En el cuadro Selected Objects, haga clic con el botón secundario en la base de datos que contiene la colección que desea sincronizar.

        2. Cambie Schema Name por el nombre de la base de datos de destino en Lindorm.

          En el cuadro de diálogo que aparece, seleccione las operaciones DML que desea sincronizar (insert, update y delete). En la sección Additional Columns, haga clic en + New Column para agregar columnas. Luego, haga clic en OK.

        3. Opcional: En la sección Select DML Operations to Be Synchronized, seleccione las operaciones incrementales que desea sincronizar.

        4. Haga clic en OK.

      2. Edite la asignación de nombres de tabla.

        1. En el cuadro Selected Objects, haga clic con el botón secundario en la colección que desea sincronizar.

        2. Cambie Table Name por el nombre de la tabla de destino en Lindorm.

          En el cuadro de diálogo Edit Table, también puede establecer Filter Conditions. La sintaxis de las condiciones de filtro de ApsaraDB for MongoDB difiere de la cláusula WHERE estándar de SQL. En la sección Select DML Operations to Be Synchronized, seleccione insert, update y delete. En la sección Additional Columns, haga clic en + New Column para agregar columnas a la tabla de destino con fines como gestión de metadatos, ordenamiento o deduplicación. Una vez completada la configuración, haga clic en OK.

        3. Opcional: Establezca las condiciones de filtro. Para obtener más información, consulte Filter task data with an SQL condition.

        4. Opcional: En la sección Select DML Operations to Be Synchronized, seleccione las operaciones incrementales que desea sincronizar.

      3. Configure los campos de MongoDB que desea sincronizar.

        De forma predeterminada, DTS asigna los datos de la colección que se va a sincronizar y configura una expresión en la columna Parameter Value. Debe comprobar si la expresión cumple con sus requisitos y especificar información como Column Name, Type, Length y Precision.

        1. En la columna Parameter Value, consulte el nombre del campo de MongoDB dentro de la expresión bson_value().

          El contenido encerrado entre "" es el nombre del campo en MongoDB. Por ejemplo, si la expresión es bson_value("age"), esta fila corresponde al campo age en MongoDB.

        2. Opcional: Elimine los campos que no desea sincronizar.

          Nota

          Para quitar un campo que no desea sincronizar, haga clic en el ícono image de la fila correspondiente.

        3. Configure los campos que desea sincronizar.

          Siga estos pasos según si la expresión bson_value() cumple o no con sus requisitos.

          Expresiones coincidentes

          1. Introduzca un Column Name.

            Nota

            Este es el nombre de la columna de destino en la tabla de Lindorm.

            • Si la tabla de destino se creó mediante SQL, introduzca el nombre de la columna de la tabla de Lindorm en el parámetro Column Name.

            • Si la tabla de destino se creó con HBase y necesita usar la función para agregar columnas, debe añadir las asignaciones de columnas antes de cambiar el nombre de la columna. Para obtener más información, consulte Example of adding column mappings for an HBase table. Configure el Column Name de la siguiente manera:

              • Si la columna es una clave principal, introduzca ROW.

              • Si la columna no es una clave principal, use el formato column_family:column_name, como person:name.

          2. Seleccione un Type de datos para la columna.

            Importante

            Asegúrese de que el tipo de datos de la tabla de destino sea compatible con los datos de la base de datos MongoDB de origen.

          3. Opcional: Configure el Length y la Precision de los datos de la columna.

          4. Repita estos pasos para asignar todos los campos relevantes.

          Expresiones no coincidentes

          Nota

          Por ejemplo, campos que tienen estructuras jerárquicas (padre-hijo).

          1. En la columna Actions, haga clic en el ícono image de la fila correspondiente.

          2. Haga clic en + New Column. En la sección Additional Columns, haga clic en el botón + New Column ubicado en la esquina superior derecha.

          3. Configure el Column Name, el Type, el Length y la Precision.

          4. En el cuadro de texto bajo Parameter Value, introduzca la expresión bson_value(). Para obtener más información, consulte Value assignment examples.

            Importante
            • El valor bson_value("_id") debe asignarse a la columna de clave principal de la tabla de destino.

            • Cuando configure la expresión bson_value(), debe especificar la ruta hasta el subcampo de nivel más bajo de la jerarquía. De lo contrario, podrían perderse datos o la tarea podría fallar.

          5. Repita estos pasos para asignar todos los campos relevantes.

      4. Haga clic en OK.

    2. Haga clic en Next: Advanced Settings para configurar los parámetros avanzados.

      Parámetro

      Descripción

      Dedicated Cluster for Task Scheduling

      De forma predeterminada, DTS programa las tareas en un clúster compartido, por lo que no necesita seleccionar ninguno. Si busca un rendimiento más estable, puede adquirir un clúster dedicado para ejecutar las tareas de sincronización de DTS. Para obtener más información, consulte What is a DTS dedicated cluster?.

      Retry Time for Failed Connections

      Una vez iniciada la tarea de sincronización, si la conexión con la base de datos de origen o de destino falla, DTS reporta un error y comienza inmediatamente a reintentar la conexión. La duración predeterminada de reintento es de 720 minutos. También puede especificar una duración personalizada de entre 10 y 1440 minutos. Se recomienda establecerla en 30 minutos o más. Si DTS logra reconectarse a la base de datos dentro del tiempo indicado, la tarea de sincronización se reanuda automáticamente; de lo contrario, la tarea termina con errores.

      Nota
      • Si tiene varias instancias de DTS (por ejemplo, la Instancia A y la Instancia B) que comparten el mismo origen o destino, y configura el tiempo de reintento de red en 30 minutos para la Instancia A y en 60 minutos para la Instancia B, se aplicará la duración más corta de 30 minutos para ambas.

      • Dado que DTS cobra por el tiempo de ejecución de la tarea durante el periodo de reintento de conexión, se recomienda personalizar la duración de reintento según sus necesidades de negocio o liberar la instancia de DTS tan pronto como se liberen las instancias de las bases de datos de origen y de destino.

      Retry Time for Other Issues

      Después de que inicia la tarea de sincronización, si ocurren otros problemas no relacionados con la conectividad en la base de datos de origen o de destino (como excepciones al ejecutar DDL o DML), DTS reporta un error y comienza de inmediato a reintentar las operaciones de forma continua. La duración predeterminada de reintento es de 10 minutos. También puede personalizar este valor en un rango de 1 a 1440 minutos. Se recomienda configurarlo en 10 minutos o más. Si las operaciones correspondientes se ejecutan correctamente dentro del tiempo de reintento establecido, la tarea de sincronización se reanuda automáticamente; de lo contrario, la tarea termina con errores.

      Importante

      El valor de Retry Time for Other Issues debe ser menor que el de Retry Time for Failed Connections.

      Enable Throttling for Full Data Synchronization

      Durante la fase de sincronización completa, DTS consume recursos de lectura y escritura de las bases de datos de origen y de destino, lo cual puede aumentar la carga de estas. Para reducir dicha carga, puede establecer un límite de velocidad en la tarea de sincronización completa mediante la configuración de los parámetros Queries per second (QPS) to the source database, RPS of Full Data Migration y Data migration speed for full migration (MB/s).

      Nota
      • Este elemento de configuración solo está disponible cuando Synchronization Types se establece en Full Data Synchronization.

      • También puede adjust the full synchronization rate después de que la instancia de sincronización esté en ejecución.

      Only one data type for primary key _id in a table of the data to be synchronized

      Especifique si los tipos de datos de la clave principal _id son únicos dentro de cada colección que se va a sincronizar.

      Importante
      • Seleccione una opción según sus datos reales. Una elección incorrecta puede provocar la pérdida de datos.

      • Este parámetro solo está disponible si Synchronization Types incluye Full Data Synchronization.

      • Yes: Los tipos de datos son únicos. Durante la fase de sincronización completa, DTS no analiza los tipos de datos de las claves principales en los datos de origen. Para cada colección, DTS sincroniza únicamente los datos correspondientes a un solo tipo de dato de clave principal.

      • No: Los tipos de datos no son únicos. Durante la fase de sincronización completa, DTS analiza los tipos de datos de las claves principales en los datos de origen y sincroniza toda la información.

      Enable Throttling for Incremental Data Synchronization

      También puede establecer un límite de velocidad para la tarea de sincronización incremental. Para aliviar la presión sobre la base de datos de destino, configure los parámetros RPS of Incremental Data Synchronization y Data synchronization speed for incremental synchronization (MB/s).

      Environment Tag

      Según sus necesidades, puede seleccionar una etiqueta de entorno para identificar la instancia. En este ejemplo, no es necesario elegir ninguna.

      Configure ETL

      Decida si desea habilitar la función de extracción, transformación y carga (ETL). Para obtener más información, consulte What is ETL? Valores válidos:

      Nota

      Si la tabla de destino se creó mediante HBase, tenga en cuenta lo siguiente:

      • La sintaxis de ETL incluye columnas que se deben configurar y columnas que se deben excluir. Durante la sincronización, todos los campos de nivel superior de los documentos de MongoDB para los que se configuró ETL se almacenan en la familia de columnas predeterminada f de la tabla de HBase. En el siguiente ejemplo se muestra cómo escribir todos los elementos, excepto los dos de nivel superior _id y name, como columnas dinámicas en la tabla de destino. Para obtener más información, consulte HBase table synchronization example (ETL).

        script:e_expand_bson_value("*", "_id,name")
      • Si necesita usar tanto la función de nueva columna como la función ETL, asegúrese de que los datos en Lindorm no estén duplicados.

      • Las columnas para las que no se configuró ni la función de nueva columna ni la función ETL no se sincronizan con la base de datos de destino.

      Monitoring and Alerting

      Especifique si desea configurar alertas. Si la sincronización falla o la latencia supera el umbral indicado, se envía una notificación a un contacto de alerta.

  6. Guarde la tarea y ejecute una comprobación previa.

    • Para consultar los parámetros de la API necesarios para configurar esta instancia, pase el cursor sobre el botón Next: Save Task Settings and Precheck y haga clic en Preview OpenAPI parameters en el globo emergente.

    • Si ya terminó de revisar los parámetros de la API, haga clic en Next: Save Task Settings and Precheck en la parte inferior de la página.

    Nota
    • Antes de iniciar el trabajo de sincronización, DTS ejecuta una comprobación previa. El trabajo solo puede comenzar si se aprueban todos los elementos de dicha comprobación.

    • Si la comprobación previa termina con errores, haga clic en View Details junto al elemento que falló. Corrija el problema siguiendo las indicaciones y vuelva a ejecutar la comprobación previa.

    • Si la comprobación previa devuelve una advertencia:

      • Si un elemento de comprobación falla y no se puede ignorar, haga clic en View Details junto a dicho elemento. Siga las instrucciones para corregir el problema y vuelva a ejecutar la comprobación previa.

      • Para los elementos de comprobación que se pueden omitir, haga clic sucesivamente en Confirm Alert Details, Ignore, OK y Precheck Again para saltar la advertencia y volver a ejecutar la comprobación previa. Si decide ocultar el elemento de advertencia, podrían surgir problemas como inconsistencias en los datos, lo cual representa un riesgo para su negocio.

  7. Adquiera la instancia.

    1. Cuando el Success Rate sea del 100 %, haga clic en Next: Purchase Instance.

    2. En la página Purchase, seleccione el método de facturación y la especificación de enlace para la instancia de sincronización de datos. En la siguiente tabla se describen estos parámetros en detalle.

      Categoría

      Parámetro

      Descripción

      New Instance Class

      Billing Method

      • Subscription: Usted paga al crear la instancia. Es adecuado para necesidades a largo plazo y resulta más rentable que pay-as-you-go. Entre mayor sea la duración de la suscripción, mayor será el descuento.

      • Pay-as-you-go: Se le cobra por hora. Resulta conveniente para necesidades a corto plazo. Puede liberar la instancia inmediatamente después de usarla para ahorrar costos.

      Resource Group Configuration

      El resource group al que pertenece la instancia. El valor predeterminado es default resource group. Para obtener más información, consulte What is Resource Management?.

      Link Specification

      DTS ofrece especificaciones de sincronización con distintos niveles de rendimiento. La especificación del enlace de sincronización afecta la velocidad de sincronización. Puede elegir una especificación según su escenario de negocio. Para obtener más información, consulte Data synchronization link specifications.

      Subscription Duration

      En el modo de suscripción, seleccione la duración y la cantidad para la instancia de suscripción. Puede elegir una suscripción mensual de 1 a 9 meses, o una suscripción anual de 1, 2, 3 o 5 años.

      Nota

      Esta opción solo está disponible cuando el método de facturación es Subscription.

    3. Una vez completada la configuración, lea y seleccione Data Transmission Service (Pay-as-you-go) Service Terms.

    4. Haga clic en Buy and Start. En el cuadro de diálogo OK, haga clic en OK.

      Puede consultar el progreso de la tarea en la página Data Synchronization.

Agregar asignaciones de columnas a una tabla de HBase

Este ejemplo muestra los comandos que se deben ejecutar en el SQL Shell.

Nota

Esta función requiere Lindorm 2.4.0 o una versión posterior.

  1. Agregue una asignación de columnas a la tabla de HBase.

    ALTER TABLE test MAP DYNAMIC COLUMN f:_mongo_id_ HSTRING/HINT/..., person:name HSTRING, person:age HINT;
  2. Cree un índice secundario en la tabla de HBase.

    CREATE INDEX idx ON test(f:_mongo_id_);

Ejemplo: ETL para tablas de HBase

Documento de MongoDB

{
  "_id" : 0,
  "person" : {
    "name" : "cindy0",
    "age" : 0,
    "student" : true
  }
}

Instrucción de procesamiento ETL

script:e_expand_bson_value("*", "_id")

Resultado de la sincronización

0: jdbc:lindorm:xxx> select * from mongo_test_dynamic_column limit 3;
+------+------+-------------+----------------------------------------------------------+
| ROW  | COL  | _mongo_id_  |                         person                           |
+------+------+-------------+----------------------------------------------------------+
|      | 0    |             | { "name" : "cindy0", "age" : 0, "student" : true }      |
|      | 1    |             | { "name" : "cindy1", "age" : 1, "student" : false }     |
|      | 2    |             | { "name" : "cindy2", "age" : 2, "student" : true }      |
+------+------+-------------+----------------------------------------------------------+
3 rows selected (0.009 seconds)

Ejemplo de asignación de valores

Estructura de datos de origen en ApsaraDB for MongoDB

{
  "_id":"62cd344c85c1ea6a2a9f****",
  "person":{
    "name":"neo",
    "age":"26",
    "sex":"male"
  }
}

Esquema de la tabla de destino en Lindorm

Parámetro

Tipo

id

STRING

person_name

STRING

person_age

BIGINT

Configuración de asignación de valores

Importante

Debe especificar la ruta jerárquica completa en la expresión bson_value() para evitar la pérdida de datos o el fallo de la tarea. Por ejemplo, si establece la expresión como bson_value("person"), DTS no podrá sincronizar los datos incrementales de los subcampos del objeto person (como name, age y sex) hacia el destino.

Parámetro

Tipo

Valor

id

STRING

bson_value("_id")

person_name

STRING

bson_value("person","name")

person_age

BIGINT

bson_value("person","age")