Todos los productos
Search
Centro de documentos

DataWorks:DRDS (PolarDB-X 1.0)

Última actualización: Sep 04, 2026

Un origen de datos DRDS (PolarDB-X 1.0) permite leer y escribir datos en DRDS (PolarDB-X 1.0). Este tema describe las capacidades de sincronización de datos de DataWorks para este origen de datos.

Primeros pasos

Para comenzar a sincronizar datos con DRDS (PolarDB-X 1.0), complete estos pasos en orden:

  1. Cree una cuenta de base de datos con el permiso replace into. Consulte Requisitos previos.

  2. Agregue DRDS (PolarDB-X 1.0) como origen de datos en DataWorks. Consulte Agregar un origen de datos.

  3. Configure y ejecute una tarea de sincronización. Consulte Desarrollar una tarea de sincronización de datos.

Requisitos previos

Antes de empezar, asegúrese de contar con lo siguiente:

  • Una cuenta de base de datos DRDS (PolarDB-X 1.0) con el permiso replace into. Para obtener instrucciones de configuración, consulte Create an account.

Limitaciones

Lectura y escritura sin conexión

  • El plugin de DRDS (PolarDB-X 1.0) solo es compatible con el motor MySQL. DRDS (PolarDB-X 1.0) es una base de datos MySQL distribuida y la mayoría de sus protocolos de comunicación siguen los estándares de MySQL.

  • MySQL 8.0 en DRDS (PolarDB-X 1.0) admite Serverless resource groups (recommended) y exclusive resource groups for Data Integration.

  • DRDS (PolarDB-X 1.0) Writer se conecta al proxy de una base de datos DRDS (PolarDB-X 1.0) remota mediante Java Database Connectivity (JDBC) y ejecuta sentencias replace into para escribir datos. La tabla de destino debe tener una clave primaria o un índice único para evitar escrituras duplicadas.

  • DRDS (PolarDB-X 1.0) Writer recupera datos de un Reader a través del framework de sincronización de datos y luego los escribe mediante sentencias replace into: El Writer acumula datos y los confirma en el proxy de DRDS (PolarDB-X 1.0), que determina si debe enrutar los datos a una o varias tablas.

    • Si no hay conflicto de clave primaria o índice único, el comportamiento equivale a insert into.

    • Si ocurre un conflicto, la nueva fila reemplaza todos los campos de la fila existente.

    Nota

    La tarea requiere como mínimo el permiso replace into. Los permisos adicionales dependen de las sentencias SQL especificadas en preSql y postSql.

  • Se admite la lectura desde vistas.

Tipos de campo compatibles

DRDS (PolarDB-X 1.0) Reader y Writer admiten la mayoría de los tipos de datos. Compruebe que sus tipos de datos se encuentren en la siguiente lista antes de configurar una tarea de sincronización.

Categoría de tipo

Tipos de datos de DRDS (PolarDB-X 1.0)

Tipos enteros

INT, TINYINT, SMALLINT, MEDIUMINT, BIGINT

Tipos de punto flotante

FLOAT, DOUBLE, DECIMAL

Tipos de cadena

VARCHAR, CHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT

Tipos de fecha y hora

DATE, DATETIME, TIMESTAMP, TIME, YEAR

Tipos booleanos

BIT, BOOL

Tipos binarios

TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB, VARBINARY

Agregar un origen de datos

Antes de desarrollar una tarea de sincronización en DataWorks, agregue DRDS (PolarDB-X 1.0) como origen de datos. Siga las instrucciones en Gestión de orígenes de datos. Las descripciones de los parámetros están disponibles en la consola de DataWorks cuando agrega el origen de datos.

Desarrollar una tarea de sincronización de datos

Configurar una tarea de sincronización sin conexión para una sola tabla

Configurar una tarea de sincronización sin conexión para una base de datos completa

Consulte Configure an offline sync task for an entire database.

Preguntas frecuentes

¿Por qué DRDS (PolarDB-X 1.0) Reader no puede garantizar la consistencia de datos entre particiones?

DRDS (PolarDB-X 1.0) es una base de datos distribuida. Cuando el Reader extrae datos de diferentes tablas particionadas subyacentes, captura instantáneas en distintos puntos temporales, no desde un único intervalo de tiempo consistente. No se puede garantizar una consistencia estricta entre bases de datos y tablas particionadas.

¿Cómo afecta la codificación a la sincronización de datos?

DRDS (PolarDB-X 1.0) admite configuraciones de codificación a nivel de campo, tabla, base de datos e instancia. La prioridad de la configuración de codificación, de mayor a menor, es: campo, tabla, base de datos e instancia. Establezca la codificación en UTF-8 a nivel de base de datos para evitar problemas.

DRDS (PolarDB-X 1.0) Reader utiliza JDBC para la extracción de datos, lo cual gestiona automáticamente la conversión de codificación. Sin embargo, si la codificación utilizada al escribir datos en la capa subyacente difiere de la codificación declarada, el Reader no detectará la discrepancia y el resultado de la sincronización podría contener caracteres ilegibles.

¿Cómo configuro la sincronización incremental de datos?

DRDS (PolarDB-X 1.0) Reader utiliza sentencias JDBC SELECT para la extracción de datos. Utilice una cláusula WHERE para filtrar únicamente los registros agregados o modificados desde la última sincronización:

  • Basado en marca de tiempo: Si su aplicación escribe un campo modify con una marca de tiempo de cambio para cada registro (que cubra adiciones, actualizaciones o eliminaciones lógicas), agregue una cláusula WHERE que utilice la marca de tiempo de la última ejecución de sincronización.

  • Basado en ID autoincremental: Para flujos de datos de solo anexión, agregue una cláusula WHERE que utilice el ID autoincremental máximo de la sincronización anterior.

Si sus datos no tienen ningún campo que distinga los registros nuevos o modificados de los existentes, el Reader no podrá realizar la extracción incremental; solo estará disponible la sincronización completa de datos.

Nota

No se admiten condiciones de filtro basadas en nombres de tablas físicas en la cláusula WHERE.

Apéndice: Demostración de script y parámetros

Para configurar una tarea de sincronización por lotes mediante el editor de código, siga el formato de script unificado descrito en Configure a task in the code editor. Las siguientes secciones describen los parámetros y proporcionan ejemplos de scripts.

Demostración de script de Reader

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "drds",
            "parameter": {
                "datasource": "",
                "column": [
                    "id",
                    "name"
                ],
                "where": "",
                "table": "",
                "splitPk": ""
            },
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": "0"
        },
        "speed": {
            "throttle": true,
            "concurrent": 1,
            "mbps": "12"
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Parámetros del script de Reader

Parámetro

Descripción

Obligatorio

Valor predeterminado

datasource

El nombre del origen de datos. El valor debe coincidir con el nombre del origen de datos agregado en DataWorks.

Sí

Ninguna

table

La tabla desde la cual sincronizar datos.

Sí

Ninguna

column

Las columnas a sincronizar, especificadas como un arreglo JSON. Utilice ["*"] para seleccionar todas las columnas. Admite poda de columnas, reordenamiento, constantes y expresiones de funciones MySQL. Por ejemplo: ["id", " table ", "1", "'bazhen.csy'", "null", "to_char(a + 1)", "2.3", "true"].

Sí

Ninguna

where

La condición de filtro utilizada para construir la sentencia SELECT. Si se deja en blanco, se sincroniza toda la tabla. Admite sincronización incremental mediante condiciones de fecha o ID. Por ejemplo: STRTODATE('${bdp.system.bizdate}','%Y%m%d') <= today AND today < DATEADD(STRTODATE('${bdp.system.bizdate}', '%Y%m%d'), interval 1 day).

No

Ninguna

splitPk

La clave de partición utilizada para lecturas paralelas.

No

Ninguna

Demostración de script de Writer

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "drds",
            "parameter": {
                "postSql": [],
                "datasource": "",
                "column": [
                    "id"
                ],
                "writeMode": "insert ignore",
                "batchSize": "1024",
                "table": "test",
                "preSql": []
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": "0"
        },
        "speed": {
            "throttle": true,
            "concurrent": 1,
            "mbps": "12"
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Parámetros del script de Writer

Parámetro

Descripción

Obligatorio

Valor predeterminado

datasource

El nombre del origen de datos. El valor debe coincidir con el nombre del origen de datos agregado en DataWorks.

Sí

Ninguna

table

La tabla de destino en la que se escriben los datos.

Sí

Ninguna

writeMode

El modo de escritura. Valores válidos: insert ignore (ignorar filas que infrinjan reglas de clave primaria o restricciones) y replace into (reemplazar filas existentes en caso de conflicto).

No

insert ignore

column

Las columnas de destino donde escribir datos, especificadas como una lista separada por comas. Ejemplo: ["id", "name", "age"]. Utilice ["*"] para escribir en todas las columnas en orden.

Sí

Ninguna

preSql

Sentencias SQL a ejecutar antes de que inicie la tarea de sincronización. En la interfaz gráfica sin código, solo se admite una sentencia. En el editor de código, se admiten varias sentencias. Ejemplo: delete * from table xxx;.

No

Ninguna

postSql

Sentencias SQL a ejecutar después de que finalice la tarea de sincronización. En la interfaz gráfica sin código, solo se admite una sentencia. En el editor de código, se admiten varias sentencias. Ejemplo: delete * from table xxx where xx=xx;.

No

Ninguna

batchSize

El número de registros a confirmar por lote. Valores más grandes reducen los ciclos de red y mejoran el rendimiento, pero valores muy grandes pueden causar errores de memoria insuficiente (OOM).

No

1024