DataWorks ofrece HybridDB for MySQL Reader y HybridDB for MySQL Writer para sincronizar datos entre HybridDB for MySQL y otros orígenes de datos.
Límites
HybridDB for MySQL Reader puede leer tablas y vistas. Al leer una tabla, usted puede seleccionar todas las columnas o un subconjunto de ellas, reordenarlas, agregar campos constantes y utilizar funciones de HybridDB for MySQL como
now().Las vistas son compatibles con la sincronización por lotes.
Mapeo de tipos de datos
HybridDB for MySQL Reader y Writer mapean los tipos de datos de la siguiente manera.
|
Categoría |
Tipos de datos de HybridDB for MySQL |
Notas |
|
Entero |
INT, TINYINT, SMALLINT, MEDIUMINT, BIGINT, YEAR |
TINYINT(1) se trata como un tipo de dato entero |
|
Punto flotante |
FLOAT, DOUBLE, DECIMAL |
|
|
Cadena |
VARCHAR, CHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT |
|
|
Fecha y hora |
DATE, DATETIME, TIMESTAMP, TIME |
|
|
Booleano |
BOOL |
|
|
Binario |
TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB, VARBINARY |
Los tipos de datos no listados anteriormente no son compatibles.
Agregar un origen de datos
Agregue el origen de datos HybridDB for MySQL a DataWorks antes de crear una tarea de sincronización. Para obtener instrucciones, consulte 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
Sincronizar datos de una sola tabla
Utilice cualquiera de los siguientes métodos:
Para consultar la lista completa de parámetros y el código de ejemplo del editor de código, vea Appendix: Code and parameters.
Sincronizar todos los datos de una base de datos
Consulte Configure a real-time full-database synchronization task.
Apéndice: Código y parámetros
HybridDB for MySQL Reader
Código de ejemplo
{
"type": "job",
"steps": [
{
"parameter": {
"datasource": "px_aliyun_hymysql",
"column": [
"id",
"name",
"sex",
"salary",
"age",
"pt"
],
"where": "id=10001",
"splitPk": "id",
"table": "person"
},
"name": "Reader",
"category": "reader"
},
{
"parameter": {}
}
],
"version": "2.0",
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {
"record": ""
},
"speed": {
"concurrent": 7,
"throttle": true,
"mbps": 1
}
}
}
Parámetros
|
Parámetro |
Descripción |
Obligatorio |
Predeterminado |
|
|
Nombre del origen de datos. Debe coincidir con el nombre configurado en DataWorks. |
Sí |
Ninguna |
|
|
Nombre de la tabla de origen. Cada tarea de sincronización lee desde una sola tabla. |
Sí |
Ninguna |
|
|
Columnas que se van a leer, especificadas como un arreglo JSON. Use |
Sí |
Ninguna |
|
|
Columna utilizada para fragmentar los datos en lecturas paralelas. Establézcala en una columna de clave primaria para lograr la distribución más uniforme. Solo se admiten columnas de tipo entero; las columnas de cadena, punto flotante y fecha se ignoran, y el lector recurre a un solo hilo. |
No |
Ninguna |
|
|
Cláusula WHERE para filtrar filas; por ejemplo, |
No |
Ninguna |
|
|
SQL personalizada para filtrado avanzado o uniones de varias tablas. Anula |
No |
Ninguna |
|
|
Obligatorio para tablas fragmentadas. Establézcalo en |
Sí (solo tablas fragmentadas) |
|
Al configurar una tabla fragmentada directamente en el editor de código (sin cambiar desde la interfaz sin código), "singleOrMulti": "multi" no se genera automáticamente. Agréguelo manualmente. Sin este parámetro, el lector solo leerá datos de la primera fragmentación.
CuandoquerySqlestá configurado, el lector ignoratable,column,whereysplitPk. Las credenciales de conexión aún se leen desdedatasource.
HybridDB for MySQL Writer
Código de ejemplo
{
"type": "job",
"steps": [
{
"parameter": {}
},
{
"parameter": {
"postSql": [],
"datasource": "px_aliyun_hy***",
"column": [
"id",
"name",
"sex",
"salary",
"age",
"pt"
],
"writeMode": "insert",
"batchSize": 256,
"encoding": "UTF-8",
"table": "person_copy",
"preSql": []
},
"name": "Writer",
"category": "writer"
}
],
"version": "2.0",
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {
"record": ""
},
"speed": {
"concurrent": 7,
"throttle": true,
"mbps": 1
}
}
}
Modos de escritura
|
Modo |
Comportamiento cuando no hay conflicto |
Comportamiento cuando ocurre un conflicto de clave primaria o índice único |
|
|
Escribe los datos directamente |
No puede escribir en filas conflictivas; los datos en conflicto se tratan como datos erróneos |
|
|
Escribe los datos directamente |
Actualiza los campos especificados en las filas conflictivas |
Parámetros
|
Parámetro |
Descripción |
Obligatorio |
Predeterminado |
|
|
Nombre del origen de datos. Debe coincidir con el nombre configurado en DataWorks. |
Sí |
Ninguna |
|
|
Nombre de la tabla de destino. |
Sí |
Ninguna |
|
|
Modo de escritura. Consulte Modos de escritura arriba. |
No |
|
|
|
Columnas que se van a escribir, especificadas como un arreglo JSON; por ejemplo, |
Sí |
Ninguna |
|
|
Sentencia SQL que se ejecuta antes de la tarea de sincronización; por ejemplo, para eliminar datos obsoletos. La interfaz sin código admite una sola sentencia; el editor de código admite varias. |
No |
Ninguna |
|
|
Sentencia SQL que se ejecuta después de la tarea de sincronización; por ejemplo, para agregar una marca de tiempo. La interfaz sin código admite una sola sentencia; el editor de código admite varias. |
No |
Ninguna |
|
|
Número de registros que se escriben por lote. Ajústelo según su carga de trabajo. Un valor demasiado grande puede provocar errores de memoria insuficiente (OOM). |
No |
1,024 |