La función de envío de datos de Data Transmission Service (DTS) permite utilizar un SDK para enviar datos desde diversos orígenes hacia DTS. Posteriormente, DTS sincroniza los datos con una base de datos de destino. Esto amplía la variedad de orígenes de datos compatibles.
Casos de uso
La función de envío de datos es adecuada para los siguientes escenarios:
El origen es un tipo de base de datos que DTS no admite de forma nativa para la sincronización de datos.
El origen consiste en datos de registro o datos de tipos especiales.
La base de datos de origen no puede conectarse directamente a DTS por motivos de seguridad, como la necesidad de mantener la confidencialidad de las credenciales de la base de datos.
Requisitos previos
Cree una instancia de destino para recibir los datos. Actualmente, solo se admite AnalyticDB for PostgreSQL. Para obtener instrucciones, consulte Create an instance.
En la instancia de destino de AnalyticDB for PostgreSQL, cree una base de datos y un esquema para recibir los datos. En este tema, el esquema se denomina dts_deliver_test. Para obtener instrucciones, consulte Import data.
Si necesita establecer el Access Method de la base de datos de origen en Express Connect, VPN Gateway, or Smart Access Gateway, permita que DTS acceda a su base de datos a través de una puerta de enlace VPN. Para obtener instrucciones, consulte Connect a data center to DTS through VPN Gateway.
Notas de uso
Se requieren habilidades de programación para usar el SDK y enviar los datos de origen a DTS.
El nombre del esquema en su instancia de AnalyticDB for PostgreSQL, el nombre de la base de datos introducido durante el paso de Drop data object configuration y el valor dbName especificado en el SDK deben ser idénticos. De lo contrario, es posible que el destino no reciba los datos.
No es posible modificar el número de shards después de crear la instancia.
Después de crear una instancia de envío de datos, inicie el envío de datos mediante el SDK lo antes posible. De lo contrario, la instancia fallará porque no podrá recopilar datos incrementales.
-
Si una tarea falla, el personal de soporte de DTS intentará restaurarla en un plazo de ocho horas. Durante la restauración, pueden reiniciar la tarea o ajustar sus parámetros.
NotaSolo se modifican los parámetros de la tarea de DTS, no los parámetros de la base de datos. Los parámetros que pueden ajustarse incluyen los listados en Modify instance parameters.
Facturación
Para obtener más información, consulte Billing overview.
Crear una instancia de envío de datos
-
Vaya a la página Data Synchronization Tasks.
Inicie sesión en la consola de Data Management (DMS).
En la barra de navegación superior, haga clic en Data + AI.
En el panel de navegación izquierdo, seleccione .
NotaLas operaciones pueden variar según el modo y el diseño de la consola de DMS. Para obtener más información, consulte Simple mode console y Customize DMS console layout and style.
También puede ir a la página Data Synchronization Tasks de la nueva consola de DTS.
Haga clic en Create Task para abrir la página de configuración de tareas.
-
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 facilitar su identificación. El nombre no tiene que ser único.
Source Database
Select Existing Connection
No seleccione una instancia de base de datos. Para una tarea de envío de datos, debe introducir manualmente la información de la base de datos a continuación.
Database Type
Seleccione Data Shipping.
Access Method
Seleccione un método de acceso según sus necesidades. En este tema, se selecciona Public IP Address.
NotaSi selecciona Express Connect, VPN Gateway, or Smart Access Gateway, también debe seleccionar la VPC y el vSwitch a los que pertenece la puerta de enlace VPN.
Instance Region
Seleccione la región donde se encuentra su cliente.
NotaSi la región donde se encuentra su base de datos no aparece en la lista, seleccione la región geográficamente más cercana.
Destination Database
Select Existing Connection
-
Para usar una instancia de base de datos que esté added to the system (recién creada o guardada), seleccione la instancia de base de datos en la lista desplegable. La información de la base de datos se configura automáticamente.
NotaEn 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 AnalyticDB for PostgreSQL.
Access Method
Seleccione Alibaba Cloud Instance.
Instance Region
Seleccione la región donde se encuentra la instancia de destino de AnalyticDB for PostgreSQL.
Instance ID
Seleccione el ID de la instancia de destino de AnalyticDB for PostgreSQL.
Database Name
Introduzca el nombre de la base de datos en la instancia de destino de AnalyticDB for PostgreSQL para recibir datos.
Database Account
Introduzca la cuenta de la instancia de destino de AnalyticDB for PostgreSQL. La cuenta debe tener permisos de lectura y escritura. Para crear una cuenta, consulte Create and manage users.
Database Password
Introduzca la contraseña correspondiente a la cuenta de la base de datos.
-
-
Una vez completada la configuración, haga clic en Test Connectivity and Proceed en la parte inferior de la página.
NotaAsegú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 puede hacerse 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 una base de datos 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.
-
Configure los objetos de la tarea.
-
En la página Configure Objects, configure los objetos que desea sincronizar.
Parámetro
Descripción
Processing Mode of Conflicting Tables
-
Precheck and Report Errors: Comprueba si existe una tabla con el mismo nombre en la base de datos de destino. Si no existe ninguna tabla con el mismo nombre, la comprobación previa se supera correctamente. Si existe una tabla con el mismo nombre, la comprobación previa falla y la tarea de sincronización de datos no se inicia.
NotaSi no puede eliminar ni cambiar el nombre de la tabla con el mismo nombre en la base de datos de destino, puede asignarle un nombre de tabla diferente. Para obtener más información, consulte Map table and column names.
-
Ignore Errors and Proceed: Omite la comprobación de nombres de tabla duplicados en la base de datos de destino.
AvisoSeleccionar Ignore Errors and Proceed puede provocar inconsistencia en los datos y poner en riesgo su negocio. Por ejemplo:
-
Si los esquemas de las tablas son iguales y un registro en la base de datos de destino tiene el mismo valor de clave principal o clave única que un registro en la base de datos de origen:
-
Durante la sincronización completa, DTS conserva el registro en el clúster de destino. El registro correspondiente de la base de datos de origen no se sincroniza.
-
Durante la sincronización incremental, el registro de la base de datos de origen sobrescribe el registro en la base de datos de destino.
-
-
Si los esquemas de las tablas son diferentes, la sincronización inicial de datos puede fallar. Esto puede dar lugar a que solo se sincronicen parcialmente los datos de las columnas o a un fallo completo de la sincronización. Proceda con precaución.
-
Capitalization of Object Names in Destination Instance
Puede configurar la directiva de distinción entre mayúsculas y minúsculas para los nombres de objetos de base de datos, tablas y columnas que se sincronizan con la instancia de destino. De forma predeterminada, se selecciona la DTS default policy. También puede optar por utilizar las directivas predeterminadas de las bases de datos de origen y de destino. Para obtener más información, consulte Case sensitivity policy for destination object names.
Drop data object configuration
-
Haga clic en Add Library. En el cuadro de diálogo New Database, introduzca el nombre de la base de datos de origen.
Importante-
El nombre de la base de datos de origen debe coincidir con el nombre del esquema en la instancia de AnalyticDB for PostgreSQL. Este ejemplo utiliza dts_deliver_test.
-
Si ya hay una base de datos en la lista y necesita agregar otra, haga clic en el botón Add junto a la base de datos existente.
-
-
Haga clic en OK.
-
Haga clic en
junto a la base de datos que acaba de agregar para expandir la lista de bases de datos. -
Haga clic en Add Table junto a Table. En el cuadro de diálogo Add Table, introduzca el nombre de la tabla de origen.
ImportanteEl nombre de la tabla de origen debe coincidir con el valor tableName configurado en el SDK. Este ejemplo utiliza tab1,tab2,tab3. Para obtener más información, consulte Parameters.
-
Haga clic en OK.
-
(Opcional) Configure las asignaciones de nombres de tablas y columnas.
-
Haga clic en Edit junto a la tabla que acaba de crear.
-
Configure la asignación de nombres de tabla.
Modifique el Table Name.
-
Configure la asignación de nombres de columna.
Desactive la casilla Sync All Columns y luego modifique el Column Name y el Map column name.
Importante-
Los parámetros Column Name y Map column name corresponden a configuraciones en el SDK. Column Name es el nombre de la columna de origen del SDK (específicamente, el parámetro name de createField en el archivo FakeSource.java), y Map column name es el nombre de la columna en la instancia de destino de AnalyticDB for PostgreSQL.
-
Haga clic en el icono
para agregar más columnas.
-
-
Una vez completada la configuración, haga clic en OK.
NotaPuede repetir las operaciones para agregar, editar, editar en lote o eliminar bases de datos o tablas según sea necesario.
-
-
-
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 la tarea en un clúster compartido, por lo que no es necesario seleccionarlo. Puede adquirir un clúster dedicado de una clase de instancia específica para ejecutar tareas de DTS. Para obtener más detalles, consulte What is a DTS dedicated cluster?
Retry Time for Failed Connections
Después de iniciar una tarea de sincronización, si falla la conexión a la base de datos de origen o de destino, DTS reporta un error e inicia inmediatamente un nuevo intento de conexión. La duración predeterminada de reintentos es de 720 minutos. También puede especificar una duración personalizada de entre 10 y 1,440 minutos. Se recomienda establecer la duración en 30 minutos o más. Si DTS logra reconectarse a la base de datos dentro de la duración especificada, la tarea de sincronización se reanudará automáticamente. De lo contrario, la tarea fallará.
Nota-
Si tiene varias instancias de DTS (por ejemplo, Instancia A e Instancia B) que comparten el mismo origen o destino, y establece el tiempo de reintento de red en 30 minutos para la Instancia A y en 60 minutos para la Instancia B, se utilizará 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 período de reintento de conexión, se recomienda personalizar la duración de los reintentos según las necesidades de su negocio o liberar la instancia de DTS lo antes posible después de liberar las instancias de base de datos de origen y de destino.
Retry Time for Other Issues
Después de iniciar 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 en la ejecución de DDL o DML), DTS reporta un error e inicia inmediatamente operaciones de reintento continuas. La duración predeterminada de reintentos es de 10 minutos. También puede personalizar la duración de los reintentos dentro de un rango de 1 a 1,440 minutos. Se recomienda establecerla en 10 minutos o más. Si las operaciones relevantes se completan correctamente dentro de la duración de reintentos establecida, la tarea de sincronización se reanudará automáticamente. De lo contrario, la tarea fallará.
ImportanteEl valor de Retry Time for Other Issues debe ser menor que el de Retry Time for Failed Connections.
Enable Throttling for Incremental Data Synchronization
Puede decidir si desea establecer un límite de velocidad para la tarea de sincronización incremental configurando los valores de RPS of Incremental Data Migration y BPS of Incremental Data Migration para reducir la carga en la base de datos de destino.
Environment Tag
Seleccione una etiqueta de entorno para identificar la instancia según sus necesidades.
Configure ETL
Elija 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:
-
Yes: Habilita la función ETL. Introduzca las instrucciones de procesamiento de datos en el editor de código. Para obtener más información, consulte Configure ETL in a data migration or data synchronization task.
-
No: Deshabilita la función ETL.
Monitoring and Alerting
Seleccione si desea configurar alertas y recibir notificaciones de alerta según las necesidades de su negocio.
No: No configura ninguna alerta.
Yes: Configure las alertas estableciendo un alert threshold y notificaciones de alerta. Si una migración falla o la latencia supera el umbral, el sistema envía una notificación de alerta.
-
-
-
Guarde la tarea y ejecute una comprobación previa.
Para ver los parámetros de la API 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 la burbuja emergente.
Si ha terminado de ver los parámetros de la API, haga clic en Next: Save Task Settings and Precheck en la parte inferior de la página.
NotaAntes de que comience el trabajo de sincronización, DTS ejecuta una comprobación previa. El trabajo solo puede iniciarse después de superar todos los elementos de la comprobación previa.
Si la comprobación previa falla, haga clic en View Details para el elemento fallido. Solucione el problema según 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 puede ignorarse, haga clic en View Details junto al elemento. Siga las instrucciones para solucionar el problema y vuelva a ejecutar la comprobación previa.
Para los elementos de comprobación que pueden ignorarse, puede hacer clic en Confirm Alert Details, Ignore, OK y Precheck Again en secuencia para omitir la advertencia y volver a ejecutar la comprobación previa. Si decide ignorar el elemento de advertencia, esto podría causar problemas como inconsistencia de datos y poner en riesgo su negocio.
-
Adquiera la instancia.
Cuando la Success Rate sea del 100 %, haga clic en Next: Purchase Instance.
-
En la página Purchase, seleccione el método de facturación y la clase de instancia para la instancia de sincronización de datos. La siguiente tabla describe los parámetros.
Categoría
Parámetro
Descripción
New Instance Class
Método de facturación
-
Subscription: Se le cobra al crear la instancia. Este método es adecuado para necesidades a largo plazo y es más rentable que pay-as-you-go. Cuanto mayor sea el período de suscripción, mayor será el descuento.
-
Pay-as-you-go: Se le cobra por hora. Este método es adecuado para necesidades a corto plazo. Puede liberar la instancia en cualquier momento para ahorrar costos.
Número de shards
El número de particiones para el topic de destino.
ImportanteEl número de shards no se puede modificar después de crear la instancia. Seleccione el valor con precaución.
Resource group
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?
Clase de instancia
DTS ofrece diversas clases de instancia con distintos niveles de rendimiento. La clase de instancia afecta la velocidad de sincronización. Seleccione una clase de instancia según su escenario de negocio. Para obtener más información, consulte Specifications of data synchronization instances.
Duración de la suscripción
Para el método de facturación de suscripción, seleccione la duración de la instancia. Puede seleccionar una suscripción mensual de 1 a 9 meses, o una suscripción anual de 1, 2, 3 o 5 años.
NotaEsta opción solo está disponible cuando el método de facturación es Subscription.
-
Una vez completada la configuración, lea y seleccione Data Transmission Service (Pay-as-you-go) Service Terms.
-
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.
Envío de datos con el SDK
-
Configure el SDK de envío de datos de DTS.
Abra un IDE como IntelliJ IDEA y cree un proyecto.
En el nuevo proyecto, localice el archivo Project Object Model (POM): pom.xml.
-
Agregue la siguiente dependencia al archivo pom.xml:
<dependency> <groupId>com.aliyun.dts.deliver</groupId> <artifactId>dts-deliver-client</artifactId> <version>1.0.0</version> </dependency>NotaPuede encontrar la dependencia Maven más reciente en la página de dts-deliver-client.
-
Descargue el código de ejemplo y consulte el archivo DtsDeliverTest.java en la carpeta dts-deliver-test para enviar datos. Para obtener el código de ejemplo, consulte Uso del código de ejemplo.
NotaEn el archivo FakeSource.java, el método read es un ejemplo de origen de datos, y name en createField corresponde al nombre de la columna de origen. Debe modificar el código según sus necesidades.
En la lista de Data Synchronization Tasks, haga clic en el ID de la instancia de envío de datos deseada. A continuación, en el panel de navegación izquierdo, haga clic en Basic Information para obtener los parámetros que se utilizan en el código de ejemplo del SDK.
Parámetro
Descripción
Cómo obtenerlo
ip:port
El endpoint del canal de envío de datos.
En la sección Shipping Channel Information, haga clic en Copy junto a Public Endpoint o VPC Endpoint.
ImportanteSolo puede usar el VPC Endpoint si la red del cliente se encuentra dentro de la misma Virtual Private Cloud (VPC) que la instancia actual.
ak
El AccessKey ID y el AccessKey secret de la cuenta propietaria de la instancia de envío de datos de DTS.
Para más información, consulte Create an AccessKey pair y View the AccessKey information of a RAM user.
secret
dts_job_id
NotaEl valor que debe introducirse para DTS_JOB_ID.getKey().
El ID de tarea de la instancia de envío de datos de DTS.
ImportanteNo utilice el ID de la instancia.
Puede llamar a la operación de API DescribeDtsJobs para consultar el ID.
NotaEn el Shipped Topic, el dts_job_id es la cadena situada entre _vpc_ y _data_delivery_. Por ejemplo, si el Shipped Topic es cn_hangzhou_vpc_cxti86dc11z_data_delivery_version2, entonces el dts_job_id es cxti86dc11z.
Topic
El topic de destino del envío.
En la sección Shipping Channel Information, haga clic en Copy junto a Shipped Topic.
partition
El número de particiones del topic de destino.
En la sección Shipping Channel Information, consulte el valor de Shards.
region
La región de la instancia de envío de datos de DTS.
En la sección Shipping Channel Information, consulte el valor de Instance Region.
dbName
El nombre de la base de datos de origen. Debe coincidir con el nombre del esquema en la instancia de AnalyticDB for PostgreSQL.
Introduzca el nombre según sus necesidades. Este ejemplo utiliza dts_deliver_test.
tableName
El nombre de la tabla de origen. Debe coincidir con el nombre de tabla introducido en el paso Drop data object configuration.
Introduzca los nombres según sus necesidades. Este ejemplo utiliza tab1, tab2 y tab3.
Una vez configurados los parámetros, registre la hora actual e inicie el SDK.
-
Modifique el desplazamiento actual de la instancia de envío de datos. Para más información, consulte Change the checkpoint of a data synchronization or migration instance.
NotaDe forma predeterminada, el Current Offset de una instancia de envío de datos corresponde a la hora en que se inicia el módulo de Incremental Write. Debe cambiar el desplazamiento a la hora en que inició el SDK.
Consulte los datos en la base de datos de destino.