El origen de datos MariaDB conecta DataWorks con MariaDB para realizar una sincronización bidireccional sin conexión, lo que permite leer y escribir en bases de datos y vistas de MariaDB. Este tema describe las versiones compatibles, los tipos de campo, la configuración de cuentas y los parámetros de script para tareas de sincronización sin conexión.
Antes de empezar
Para conectar DataWorks a una base de datos MariaDB, complete los siguientes pasos en orden:
Versiones de MariaDB compatibles
Versiones compatibles: 5.5.x, 10.0.x, 10.1.x, 10.2.x y 10.3.x.
La sincronización sin conexión también admite la lectura desde vistas.
Tipos de campo compatibles
La siguiente tabla enumera los tipos de campo compatibles para MariaDB 10.3.x. Para otras versiones, consulte la documentación oficial de MariaDB.
|
Tipo de campo |
Lectura sin conexión (MariaDB Reader) |
Escritura sin conexión (MariaDB Writer) |
|
TINYINT |
Compatible |
Compatible |
|
SMALLINT |
Compatible |
Compatible |
|
INTEGER |
Compatible |
Compatible |
|
BIGINT |
Compatible |
Compatible |
|
FLOAT |
Compatible |
Compatible |
|
DOUBLE |
Compatible |
Compatible |
|
DECIMAL/NUMERIC |
Compatible |
Compatible |
|
REAL |
No compatible |
No compatible |
|
VARCHAR |
Compatible |
Compatible |
|
JSON |
Compatible |
Compatible |
|
TEXT |
Compatible |
Compatible |
|
MEDIUMTEXT |
Compatible |
Compatible |
|
LONGTEXT |
Compatible |
Compatible |
|
VARBINARY |
Compatible |
Compatible |
|
BINARY |
Compatible |
Compatible |
|
TINYBLOB |
Compatible |
Compatible |
|
MEDIUMBLOB |
Compatible |
Compatible |
|
LONGBLOB |
Compatible |
Compatible |
|
ENUM |
Compatible |
Compatible |
|
SET |
Compatible |
Compatible |
|
BOOLEAN |
Compatible |
Compatible |
|
BIT |
Compatible |
Compatible |
|
DATE |
Compatible |
Compatible |
|
DATETIME |
Compatible |
Compatible |
|
TIMESTAMP |
Compatible |
Compatible |
|
TIME |
Compatible |
Compatible |
|
YEAR |
Compatible |
Compatible |
|
LINESTRING |
No compatible |
No compatible |
|
POLYGON |
No compatible |
No compatible |
|
MULTIPOINT |
No compatible |
No compatible |
|
MULTILINESTRING |
No compatible |
No compatible |
|
MULTIPOLYGON |
No compatible |
No compatible |
|
GEOMETRYCOLLECTION |
No compatible |
No compatible |
Configuración de permisos de cuenta
Cree una cuenta dedicada de MariaDB para que DataWorks acceda al origen de datos.
-
Ejecute la siguiente instrucción para comprobar la versión de MariaDB:
SELECT VERSION(); (Opcional) Cree una cuenta de sincronización. Consulte Crear un usuario de MariaDB.
-
Otorgue los permisos necesarios según la dirección de sincronización:
Lectura sin conexión: La cuenta requiere el permiso SELECT sobre las tablas que se van a sincronizar.
Escritura sin conexión: La cuenta requiere los permisos INSERT, DELETE y UPDATE sobre las tablas que se van a sincronizar.
-
Ejecute el siguiente comando para otorgar permisos. Reemplace
sync_accountcon el nombre de su cuenta.-- CREATE USER 'sync_account'@'%' IDENTIFIED BY 'password'; GRANT SELECT, INSERT, DELETE, UPDATE ON *.* TO 'sync_account'@'%';Como alternativa, otorgue directamente el permiso SUPER.
Agregar un origen de datos
Agregue el origen de datos MariaDB en DataWorks antes de desarrollar una tarea de sincronización. 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 al agregar el origen de datos.
Desarrollo de una tarea de sincronización de datos
Sincronización sin conexión para una sola tabla
Para configurar la tarea en el editor de código, consulte Configure a task in the code editor. Para ver todos los parámetros del script y ejemplos, consulte la sección Parámetros y ejemplos de script.
Parámetros y ejemplos de script
Todos los ejemplos utilizan el formato del editor de código con "version": "2.0". Configure el script según los requisitos de formato unificado descritos en Configure a task in the code editor.
Reader
Ejemplo de script
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "mariadb",
"parameter": {
"column": [
"id"
],
"connection": [
{
"querySql": ["select a,b from join1 c join join2 d on c.id = d.id;"],
"datasource": "",
"table": [
"xxx"
]
}
],
"where": "",
"splitPk": "",
"encoding": "UTF-8"
},
"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 de Reader
|
Parámetro |
Descripción |
Obligatorio |
Predeterminado |
|
|
Nombre del origen de datos. Debe coincidir con el nombre del origen de datos agregado en DataWorks. |
Sí |
Ninguna |
|
|
Tabla desde la cual leer. Admite sintaxis de rango para tablas fragmentadas; por ejemplo, |
Sí |
Ninguna |
|
|
Columnas para sincronizar, como un arreglo JSON. El valor predeterminado incluye todas las columnas ( |
Sí |
Ninguna |
|
|
Columna utilizada para particionar los datos en lecturas simultáneas. Utilice la clave principal para lograr una distribución uniforme. Solo se admiten tipos enteros; los tipos no compatibles recurren a la sincronización por canal único. Déjelo en blanco para usar un solo canal. |
No |
Ninguna |
|
|
Condición de filtro WHERE de SQL; por ejemplo, |
No |
Ninguna |
|
|
Consulta SQL personalizada que anula |
No |
Ninguna |
Writer
Ejemplo de script
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "stream",
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"stepType": "mariadb",
"parameter": {
"postSql": [],
"datasource": "",
"column": [
"id",
"value"
],
"writeMode": "insert",
"batchSize": 1024,
"table": "",
"preSql": [
"delete from XXX;"
]
},
"name": "Writer",
"category": "writer"
}
],
"setting": {
"errorLimit": {
"record": "0"
},
"speed": {
"throttle": true,
"concurrent": 1,
"mbps": "12"
}
},
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
}
}
Parámetros de Writer
|
Parámetro |
Descripción |
Obligatorio |
Predeterminado |
|
|
Nombre del origen de datos. Debe coincidir con el nombre del origen de datos agregado en DataWorks. |
Sí |
Ninguna |
|
|
Tabla de destino donde se escribirán los datos. |
Sí |
Ninguna |
|
|
Columnas de destino para la escritura, como un arreglo JSON; por ejemplo, |
Sí |
Ninguna |
|
|
Modo de escritura. Se admiten tres modos: |
No |
|
|
|
Columnas que se actualizarán cuando ocurra un conflicto de clave principal o índice único. Este parámetro se utiliza cuando |
No |
Ninguna |
|
|
Instrucción SQL que se ejecuta antes de la tarea de sincronización. La interfaz visual sin código admite una instrucción; el editor de código admite varias. Ejemplo: |
No |
Ninguna |
|
|
Instrucción SQL que se ejecuta después de la tarea de sincronización. La interfaz visual sin código admite una instrucción; el editor de código admite varias. Ejemplo: |
No |
Ninguna |
|
|
Número de registros enviados por lote. Valores más altos reducen los ciclos de red y mejoran el throughput, pero valores excesivamente grandes pueden provocar errores de memoria insuficiente (OOM). |
No |
256 |