Todos los productos
Search
Centro de documentos

DataWorks:GBase8a

Última actualización: Sep 04, 2026

El origen de datos GBase8a permite leer y escribir datos en GBase8a. Este tema describe las capacidades de sincronización de datos de GBase8a en DataWorks.

GBase8a Reader y GBase8a Writer admiten:

  • Lectura desde varias tablas en una sola tarea de sincronización

  • Filtrado de filas con condiciones WHERE para sincronización incremental

  • Particionamiento de tablas grandes por clave primaria para lecturas paralelas

  • Escritura de datos con hooks SQL de pre-ejecución y post-ejecución

Limitaciones

  • GBase8a Reader y GBase8a Writer son compatibles con Serverless resource groups (recommended) y exclusive resource groups for Data Integration.

  • Cuando una sentencia INSERT INTO encuentra un conflicto de clave primaria o índice único, las filas en conflicto no se escriben.

  • Los datos solo pueden escribirse en una tabla de destino dentro de la base de datos principal.

  • La tarea requiere como mínimo el permiso INSERT INTO. Es posible que se necesiten permisos adicionales para las sentencias especificadas en preSql y postSql.

  • GBase8a Writer no admite el parámetro writeMode.

Requisitos previos

Agregue un origen de datos GBase8a a 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.

Configurar una tarea de sincronización

Configure una tarea de sincronización sin conexión para una sola tabla mediante la interfaz visual o el editor de código:

Para consultar descripciones de parámetros del editor de código y ejemplos de scripts, consulte Appendix: Script examples and parameter descriptions.

Apéndice: Ejemplos de scripts y descripciones de parámetros

A continuación se presentan scripts y tablas de parámetros que cubren la configuración específica de GBase8a Reader y GBase8a Writer. Para conocer el formato de script unificado que requiere el editor de código, consulte Configure a task in the code editor.

Ejemplo de script de Reader

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

Parámetros de Reader

Parámetro Descripción Obligatorio Predeterminado
table Tablas desde las cuales se sincronizan los datos. Especifíquelas como un arreglo JSON. Se pueden leer varias tablas en paralelo, pero todas deben tener el mismo esquema. GBase8a Reader no verifica la consistencia del esquema entre tablas. El parámetro table debe anidarse dentro del bloque de configuración connection. Sí Ninguna
column Columnas por sincronizar. Especifíquelas como un arreglo JSON. Use ["*"] para seleccionar todas las columnas. Admite selección de columnas específicas, reordenamiento de columnas (exportar en un orden distinto al del esquema), valores constantes (por ejemplo, '123') y columnas de función (por ejemplo, date('now')). No puede dejarse en blanco. Sí Ninguna
datasource Nombre del origen de datos GBase8a agregado en DataWorks. No Ninguna
splitPk Columna utilizada para particionar los datos en lecturas paralelas. Utilice una clave primaria de tipo entero para lograr una distribución uniforme de los datos y evitar puntos críticos de acceso. Solo admite tipos enteros; las cadenas, números de punto flotante y fechas no son compatibles y provocan que se ignore esta configuración, volviendo a la lectura por canal único. Déjelo en blanco para deshabilitar el particionamiento. No En blanco
where Condición de filtro que se agrega a la consulta SQL. GBase8a Reader construye una consulta a partir de column, table y where para extraer los datos. Utilice where para la sincronización incremental; por ejemplo, establézcalo en gmt_create>$bizdate para sincronizar los datos del día actual. Si se deja en blanco, se realiza una sincronización completa de datos. No Ninguna
querySql Consulta SQL personalizada que anula table, column, where y splitPk. Utilícela cuando where por sí solo no pueda expresar la lógica de filtrado requerida. Cuando se establece querySql, GBase8a Reader ignora los parámetros table, column, where y splitPk. No Ninguna
fetchSize Número de registros obtenidos de la base de datos por lote. Un valor mayor reduce los ciclos de ida y vuelta de red y mejora el rendimiento de lectura.
Nota

Valores superiores a 2048 pueden causar un error de memoria insuficiente (OOM) durante la sincronización.

No 1,024

Ejemplo de script de Writer

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "gbase8a",
            "parameter": {
                "datasource": "Data source name",
                "username": "",
                "password": "",
                "column": [
                    "id",
                    "name"
                ],
                "connection": [
                    {
                        "table": [
                            "Gbase8a_table"
                        ],
                        "datasource": ""
                    }
                ],
                "preSql": [
                    "delete from @table where db_id = -1"
                ],
                "postSql": [
                    "update @table set db_modify_time = now() where db_id = 1"
                ]
            },
            "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

datasource

Nombre del origen de datos agregado en DataWorks. Debe coincidir exactamente con el nombre del origen de datos agregado.

Sí

Ninguna

table

Tabla de destino para la escritura de datos. Especifíquela como un arreglo JSON. El parámetro table debe anidarse dentro del bloque de configuración connection.

Sí

Ninguna

column

Columnas de destino donde se escribirán los datos. Separe varias columnas con comas; por ejemplo, ["id", "name", "age"]. No puede dejarse en blanco.

Sí

Ninguna

preSql

Sentencia SQL que se ejecuta antes de la escritura de datos. Utilice @table como marcador de posición para el nombre de la tabla de destino; el sistema sustituye el nombre real de la tabla en tiempo de ejecución.

No

Ninguna

postSql

Sentencia SQL que se ejecuta después de completar la escritura de datos.

No

Ninguna

batchSize

Número de registros enviados por lote. Un valor mayor reduce los ciclos de ida y vuelta de red y mejora el rendimiento de escritura. Valores excesivamente grandes pueden causar un error de memoria insuficiente (OOM) durante la sincronización.

No

1,024