Todos os produtos
Search
Central de documentação

DataWorks:DB2

Última atualização: Sep 24, 2026

O data source do DB2 conecta o DataWorks a bancos de dados IBM DB2 para sincronização de dados offline. Use-o para ler e gravar dados em tarefas de sincronização em lote.

Versões compatíveis

O DB2 Reader e o DB2 Writer utilizam o IBM Data Server Driver for JDBC and SQLJ 4.11.77. Para o mapeamento de versões entre o driver do DB2 e o serviço de banco de dados, consulte a documentação oficial.

Recursos compatíveis

Recurso

Compatível

Leitura offline (sincronização completa)

Sim

Gravação offline (sincronização completa)

Sim

Leitura a partir de views

Sim

Sincronização incremental

Sim (via filtro where ou querySql)

Criptografia AES

Não

Grupos de recursos serverless

Sim

Grupos de recursos exclusivos para Data Integration

Sim

Grupos de recursos públicos

Não

Grupos de recursos personalizados

Não

Tipos de campo compatíveis

O DB2 Reader e o DB2 Writer são compatíveis com os tipos de dados DB2 listados abaixo para operações de leitura e gravação offline. Verifique os tipos de dados antes de configurar uma tarefa de sincronização.

Categoria do tipo

Tipos de dados DB2

Tipos inteiros

SMALLINT

Tipos de ponto flutuante

DECIMAL, REAL, DOUBLE

Tipos de string

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

Tipos de data e hora

DATE, TIME, TIMESTAMP

Tipos booleanos

Nenhum

Tipos binários

BLOB

Limitações

  • Grupos de recursos: o DB2 Reader e o DB2 Writer são compatíveis com Serverless resource groups e exclusive resource groups for Data Integration. Public resource groups e custom resource groups não são compatíveis.

  • Comportamento de gravação: o DB2 Writer grava dados por meio de instruções insert into. Em caso de conflito de chave primária ou índice único, as linhas conflitantes não são gravadas. Para melhor desempenho, o DB2 Writer utiliza PreparedStatement + Batch com rewriteBatchedStatements=true, armazenando dados em um buffer de contexto de thread e enviando uma requisição de gravação quando o buffer atinge o limiar configurado.

    A tarefa de sincronização requer, no mínimo, a permissão insert into. Permissões adicionais podem ser necessárias dependendo das instruções SQL configuradas nos parâmetros preSql e postSql.
  • Criptografia: o algoritmo de criptografia AES do DB2 não é compatível.

Adicionar um data source

Adicione o data source do DB2 ao DataWorks antes de desenvolver uma tarefa de sincronização. Siga as instruções em Data source management. As descrições dos parâmetros estão disponíveis no console do DataWorks ao adicionar o data source.

Desenvolver uma tarefa de sincronização de dados

Tarefa de sincronização offline para uma única tabela

Tarefa de sincronização offline para um banco de dados completo

Para as etapas de configuração, consulte Batch database synchronization configuration.

Perguntas frequentes

Por que o banco de dados em standby pode apresentar dados faltantes durante a sincronização ativo/standby?

Em uma configuração de recuperação de desastres ativo/standby, o banco de dados em standby aplica continuamente as alterações do banco de dados primário via binlogs. Esse processo tem uma latência inerente, que pode ser agravada pela latência de rede. Como resultado, o banco de dados em standby pode não refletir o banco de dados primário em tempo real, e discrepâncias significativas de dados entre os dois são possíveis.

O DB2 Reader garante consistência de dados durante a extração simultânea?

O DB2 é um sistema de gerenciamento de banco de dados relacional (RDBMS) com interfaces de consulta de forte consistência. No modo de thread único, o DB2 Reader lê um snapshot consistente — se outra fonte gravar dados enquanto a tarefa estiver em execução, o DB2 Reader não recupera essas atualizações.

Ao configurar a extração simultânea com o parâmetro splitPk, o DB2 Reader inicia múltiplas tarefas que não fazem parte da mesma transação de leitura e são executadas em momentos diferentes. Nesse caso, os snapshots lidos pelas tarefas simultâneas podem ser incompletos ou inconsistentes. Duas alternativas estão disponíveis:

  • Use sincronização com thread único (sem particionamento de dados). Essa abordagem preserva a consistência dos dados, mas reduz a velocidade de sincronização.

  • Desabilite gravações na fonte durante a sincronização, por exemplo, bloqueando tabelas ou pausando a replicação para o banco de dados em standby. Isso mantém os dados da fonte estáticos, mas pode afetar os serviços online.

É necessário configurar a codificação para o DB2 Reader?

Não. O DB2 Reader extrai dados via Java Database Connectivity (JDBC). O JDBC gerencia a conversão de codificação na camada subjacente, de modo que o DB2 Reader detecta e transcodifica a codificação automaticamente.

Como configurar a sincronização incremental de dados?

O DB2 Reader extrai dados por meio de instruções JDBC SELECT, portanto é possível utilizar SELECT...WHERE... para extração incremental de duas formas:

  • Se a aplicação fonte preenche um campo de timestamp (como uma coluna modify) quando os dados são alterados, configure uma cláusula where usando o timestamp da última execução de sincronização. Isso captura linhas novas, atualizadas e logicamente excluídas.

  • Para dados somente de acréscimo, configure uma cláusula where usando o maior ID de auto-incremento da execução de sincronização anterior.

Se nenhum campo distinguir dados novos dos existentes, somente a sincronização completa é possível.

O parâmetro querySql está protegido contra injeção de SQL?

O DB2 Reader não realiza verificações de segurança na instrução querySql. Revise e valide qualquer SQL personalizado antes de configurar este parâmetro.

Apêndice: Demo de script e descrição de parâmetros

Utilize os scripts e referências de parâmetros a seguir ao configurar uma tarefa de sincronização em lote no editor de código. Para o procedimento geral, consulte Configure a task in the code editor.

Demo do script do 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 do Reader

Parâmetro

Descrição

Obrigatório

Padrão

datasource

Nome do data source conforme configurado no DataWorks.

Sim

Nenhum

jdbcUrl

URL JDBC do banco de dados DB2. Formato: jdbc:db2://ip:port/database. É possível acrescentar atributos de controle de conexão.

Sim

Nenhum

username

Nome de usuário do data source.

Sim

Nenhum

password

Senha do nome de usuário.

Sim

Nenhum

table

Tabela de origem. Uma única tarefa pode ler de apenas uma tabela.

Sim

Nenhum

column

Colunas a serem lidas, especificadas como um array JSON. Para todas as colunas, use ["*"]. Compatível com pruning de colunas, reordenação de colunas e constantes. As constantes devem seguir a sintaxe SQL do DB2, por exemplo: ["id", "1", "'const name'", "null", "upper('abc_lower')", "2.3", "true"]. Não pode ser vazio.

Sim

Nenhum

splitPk

Campo usado para particionar os dados na extração simultânea. Utilize a chave primária da tabela para distribuição uniforme e para evitar hotspots de dados. Somente campos inteiros são compatíveis — números de ponto flutuante, strings e datas não são compatíveis. Se um tipo incompatível for especificado, o DB2 Reader retorna um erro.

Não

""

where

Condição de filtro. O DB2 Reader constrói uma instrução SELECT a partir de column, table e where, extraindo os dados correspondentes. Por exemplo, defina where como gmt_create>$bizdate para sincronização incremental diária. Se deixado em branco, todas as linhas da tabela são sincronizadas.

Não

Nenhum

querySql

Instrução SELECT personalizada para casos em que o parâmetro where não é suficiente — por exemplo, para sincronizar resultados de um join entre múltiplas tabelas: select a,b from table_a join table_b on table_a.id = table_b.id. Quando querySql está definido, os parâmetros table, column e where são ignorados.

Não

Nenhum

fetchSize

Número de registros recuperados por lote do banco de dados. Valores maiores reduzem as viagens de rede e melhoram o desempenho da extração.

Não

1024

Se o valor de fetchSize ultrapassar 2048, pode ocorrer um erro de out-of-memory (OOM) durante a sincronização.

Demo do script do 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 do Writer

Parâmetro

Descrição

Obrigatório

Padrão

jdbcUrl

URL JDBC do banco de dados DB2. Formato: jdbc:db2://ip:port/database. É possível acrescentar atributos de controle de conexão.

Sim

Nenhum

username

Nome de usuário do data source.

Sim

Nenhum

password

Senha do nome de usuário.

Sim

Nenhum

table

Tabela de destino.

Sim

Nenhum

column

Colunas de destino para gravação, especificadas como um array JSON. Exemplo: ["id", "name", "age"]. Para gravar em todas as colunas na ordem original, use ["*"].

Sim

Nenhum

preSql

Instrução SQL a ser executada antes do início da tarefa de sincronização. Use para limpar dados antigos ou realizar operações de preparação. Apenas uma instrução é compatível.

Não

Nenhum

postSql

Instrução SQL a ser executada após a conclusão da tarefa de sincronização. Na interface sem código, apenas uma instrução é compatível. No editor de código, múltiplas instruções são compatíveis.

Não

Nenhum

batchSize

Número de registros enviados por lote. Valores maiores reduzem as viagens de rede e melhoram o throughput de gravação. Se definido como muito alto, pode ocorrer um erro de OOM.

Não

1024