Todos los productos
Search
Centro de documentos

DataWorks:DB2

Última actualización: Sep 24, 2026

El origen de datos DB2 conecta DataWorks con bases de datos IBM DB2 para la sincronización de datos sin conexión. Utilícelo para leer y escribir en DB2 dentro de tareas de sincronización por lotes.

Versiones compatibles

DB2 Reader y DB2 Writer usan el controlador IBM Data Server Driver for JDBC and SQLJ 4.11.77. Para consultar la correspondencia de versiones entre el controlador de DB2 y el servicio de base de datos, consulte la documentación oficial.

Capacidades compatibles

Capability

Supported

Lectura sin conexión (sincronización completa)

Sí

Escritura sin conexión (sincronización completa)

Sí

Lectura desde vistas

Sí

Sincronización incremental

Sí (mediante el filtro where o querySql)

Cifrado AES

No

Grupos de recursos serverless

Sí

Grupos de recursos exclusivos para Data Integration

Sí

Grupos de recursos públicos

No

Grupos de recursos personalizados

No

Tipos de campo compatibles

DB2 Reader y DB2 Writer admiten los siguientes tipos de datos de DB2 para las operaciones de lectura y escritura sin conexión. Compruebe sus tipos de datos antes de configurar una tarea de sincronización.

Type category

DB2 data types

Tipos enteros

SMALLINT

Tipos de punto flotante

DECIMAL, REAL, DOUBLE

Tipos de cadena

CHAR, CHARACTER, VARCHAR, GRAPHIC, VARGRAPHIC, LONG VARCHAR, CLOB, LONG VARGRAPHIC, DBCLOB

Tipos de fecha y hora

DATE, TIME, TIMESTAMP

Tipos booleanos

Ninguna

Tipos binarios

BLOB

Limitaciones

  • Grupos de recursos: DB2 Reader y DB2 Writer son compatibles con Serverless resource groups y exclusive resource groups for Data Integration. No se admiten Public resource groups ni custom resource groups.

  • Comportamiento de escritura: DB2 Writer escribe los datos mediante instrucciones insert into. Si ocurre un conflicto de clave primaria o de índice único, las filas conflictivas no se escriben. Para mejorar el rendimiento, DB2 Writer usa PreparedStatement + Batch con rewriteBatchedStatements=true. De esta forma, almacena los datos temporalmente en un búfer del contexto del hilo y envía una solicitud de escritura cuando el búfer alcanza el umbral configurado.

    La tarea de sincronización requiere como mínimo el insert into permiso. Es posible que necesite permisos adicionales según las instrucciones SQL configuradas en los preSql y postSql parámetros.
  • Cifrado: El algoritmo de cifrado AES de DB2 no es compatible.

Agregar un origen de datos

Agregue el origen de datos DB2 a DataWorks antes de desarrollar una tarea de sincronización. Siga las instrucciones descritas 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.

Desarrollar una tarea de sincronización de datos

Tarea de sincronización sin conexión para una sola tabla

Tarea de sincronización sin conexión para una base de datos completa

Para conocer los pasos de configuración, consulte Batch database synchronization configuration.

Preguntas frecuentes

¿Por qué podrían faltar datos en la base de datos en espera durante la sincronización activa/en espera?

En una configuración de recuperación ante desastres activa/en espera, la base de datos en espera aplica continuamente los cambios de la base de datos principal mediante registros binarios. Este proceso tiene un retraso inherente que la latencia de red puede agravar. Por lo tanto, la base de datos en espera podría no reflejar a la base de datos principal en tiempo real, lo que genera posibles discrepancias importantes de datos entre ambas.

¿DB2 Reader garantiza la coherencia de los datos durante la extracción simultánea?

DB2 es un sistema de gestión de bases de datos relacionales (RDBMS) con interfaces de consulta de alta coherencia. En el modo de un solo hilo, DB2 Reader lee una instantánea coherente; si otro origen escribe datos mientras se ejecuta la tarea, DB2 Reader no recupera esas actualizaciones.

Cuando configura la extracción simultánea con el parámetro splitPk, DB2 Reader inicia varias tareas que no forman parte de la misma transacción de lectura y se ejecutan en momentos distintos. En este caso, las instantáneas leídas por las tareas simultáneas pueden estar incompletas o ser incoherentes. Existen dos alternativas:

  • Utilice la sincronización de un solo hilo (sin partición de datos). Esta opción conserva la coherencia de los datos, pero reduce la velocidad de sincronización.

  • Deshabilite las escrituras en el origen durante la sincronización; por ejemplo, bloquee las tablas o pause la replicación hacia la base de datos en espera. Esto mantiene estáticos los datos de origen, aunque puede afectar los servicios en línea.

¿Es necesario configurar la codificación para DB2 Reader?

No. DB2 Reader extrae los datos mediante Java Database Connectivity (JDBC). JDBC gestiona la conversión de codificación en la capa subyacente, por lo que DB2 Reader detecta y transcodifica automáticamente la codificación.

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

DB2 Reader extrae los datos mediante instrucciones SELECT de JDBC. Por ello, puede usar SELECT...WHERE... para la extracción incremental de dos maneras:

  • Si la aplicación de origen llena un campo de marca de tiempo (como una columna modify) cuando cambian los datos, configure una cláusula where con la marca de tiempo de la última ejecución de sincronización. Así capturará las filas nuevas, actualizadas y eliminadas lógicamente.

  • Para datos de solo anexión, configure una cláusula where con el identificador de incremento automático máximo de la ejecución de sincronización anterior.

Si ningún campo distingue los datos nuevos de los existentes, solo es posible aplicar la sincronización completa.

¿El parámetro querySql está protegido contra la inyección SQL?

DB2 Reader no comprueba la seguridad de la instrucción querySql. Revise y valide cualquier código SQL personalizado antes de configurar este parámetro.

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

Use los siguientes scripts y referencias de parámetros cuando configure una tarea de sincronización por lotes en el editor de código. Para conocer el procedimiento general, consulte Configure a task in the code editor.

Demostración de script de Reader

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "db2",
            "parameter": {
                "datasource": "",
                "jdbcUrl": "",
                "username": "",
                "password": "",
                "table": "",
                "column": [
                    "id"
                ],
                "where": "",
                "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 de Reader

Parameter

Description

Required

Default

datasource

El nombre del origen de datos tal como se configuró en DataWorks.

Sí

Ninguna

jdbcUrl

La URL de JDBC para la base de datos DB2. Formato: jdbc:db2://ip:port/database. Puede agregar atributos de control de conexión.

Sí

Ninguna

username

El nombre de usuario del origen de datos.

Sí

Ninguna

password

La contraseña del nombre de usuario.

Sí

Ninguna

table

La tabla de origen. Un solo trabajo puede leer únicamente de una tabla.

Sí

Ninguna

column

Las columnas que se van a leer, especificadas como una matriz JSON. Todas las columnas: ["*"]. Admite la reducción de columnas, la reordenación de columnas y las constantes. Las constantes deben seguir la sintaxis SQL de DB2; por ejemplo: ["id", "1", "'const name'", "null", "upper('abc_lower')", "2.3", "true"]. No puede estar vacío.

Sí

Ninguna

splitPk

El campo utilizado para particionar los datos en la extracción simultánea. Use la clave primaria de la tabla para lograr una distribución uniforme y evitar puntos críticos de datos. Solo se admiten campos enteros; no se admiten números de punto flotante, cadenas ni fechas. Si especifica un tipo no compatible, DB2 Reader devuelve un error.

No

""

where

Una condición de filtro. DB2 Reader construye una instrucción SELECT a partir de column, table y where, y luego extrae los datos coincidentes. Por ejemplo, establezca where en gmt_create>$bizdate para la sincronización incremental diaria. Si se deja en blanco, se sincronizan todas las filas de la tabla.

No

Ninguna

querySql

Una instrucción SELECT personalizada para los casos en los que where no es suficiente; por ejemplo, para sincronizar los resultados de una combinación de varias tablas: select a,b from table_a join table_b on table_a.id = table_b.id. Cuando se establece querySql, se ignoran los parámetros table, column y where.

No

Ninguna

fetchSize

La cantidad de registros recuperados por lote desde la base de datos. Un valor mayor reduce los viajes de ida y vuelta por la red y mejora el rendimiento de extracción.

No

1024

Si fetchSize supera 2048, podría producirse un error de falta de memoria (OOM) durante la sincronización.

Demostración de script de Writer

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "db2",
            "parameter": {
                "jdbcUrl": "jdbc:db2://ip:port/database",
                "username": "",
                "password": "",
                "table": "",
                "column": [
                    "id"
                ],
                "preSql": [],
                "postSql": [],
                "batchSize": 1024
            },
            "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

Parameter

Description

Required

Default

jdbcUrl

La URL de JDBC para la base de datos DB2. Formato: jdbc:db2://ip:port/database. Puede agregar atributos de control de conexión.

Sí

Ninguna

username

El nombre de usuario del origen de datos.

Sí

Ninguna

password

La contraseña del nombre de usuario.

Sí

Ninguna

table

La tabla de destino.

Sí

Ninguna

column

Las columnas de destino donde se escribirá, especificadas como una matriz JSON. Ejemplo: ["id", "name", "age"]. Para escribir en todas las columnas en orden, use ["*"].

Sí

Ninguna

preSql

Una instrucción SQL que se ejecutará antes de que comience la tarea de sincronización. Úsela para borrar datos antiguos o ejecutar operaciones de preparación. Solo se admite una instrucción.

No

Ninguna

postSql

Una instrucción SQL que se ejecutará después de que finalice la tarea de sincronización. En la interfaz sin código, solo se admite una instrucción. En el editor de código, se admiten varias instrucciones.

No

Ninguna

batchSize

La cantidad de registros enviados por lote. Un valor mayor reduce los viajes de ida y vuelta por la red y mejora el rendimiento de escritura. Si se establece demasiado alto, podría producirse un error OOM.

No

1024