Todos os produtos
Search
Central de documentação

DataWorks:DB2

Última atualização: Jun 27, 2026

A fonte de dados DB2 conecta o DataWorks a bancos de dados IBM DB2 para sincronização de dados offline. Use-a para ler e gravar no DB2 em tarefas de sincronização em lote.

Versões compatíveis

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

Capacidades compatíveis

Capacidade

Compatível

Leitura offline (sincronização completa)

Sim

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

Sim

Leitura 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 aceitam os seguintes tipos de dados do DB2 para operações de leitura e gravação offline. Verifique os tipos de dados antes de configurar uma tarefa de sincronização.

Categoria de tipo

Tipos de dados do 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 grupos de recursos serverless e grupos de recursos exclusivos para Data Integration. Grupos de recursos públicos e grupos de recursos personalizados não são compatíveis.

  • Comportamento de gravação: O DB2 Writer insere dados por meio de instruções insert into. Se houver conflito de chave primária ou índice único, as linhas conflitantes não serão gravadas. Para otimizar o desempenho, o DB2 Writer usa PreparedStatement + Batch com rewriteBatchedStatements=true, armazena dados em um buffer de contexto de thread e envia uma solicitação de gravação quando o buffer atinge o limiar configurado.

    A tarefa de sincronização exige, 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 uma fonte de dados

Adicione a fonte de dados DB2 ao DataWorks antes de desenvolver uma tarefa de sincronização. Siga as instruções em Gerenciamento de fontes de dados. As descrições dos parâmetros estão disponíveis no console do DataWorks durante a adição da fonte de dados.

Desenvolver uma tarefa de sincronização de dados

Tarefa de sincronização offline para tabela única

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

Para obter as etapas de configuração, consulte Configure uma tarefa de sincronização em tempo real para banco de dados completo.

Perguntas frequentes

Por que o banco de dados standby pode apresentar dados ausentes durante a sincronização active/standby?

Em um cenário de recuperação de desastres active/standby, o banco de dados standby aplica continuamente as alterações do banco de dados primário via binlogs. Esse processo tem um atraso inerente, agravado pela latência de rede. Consequentemente, o banco de dados standby pode não refletir o primário em tempo real, e discrepâncias significativas de dados entre ambos são possíveis.

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

O DB2 é um sistema de gerenciamento de banco de dados relacional (RDBMS) com interfaces de consulta de forte consistência. No modo single-threaded, o DB2 Reader lê um snapshot consistente. Se outra fonte gravar dados enquanto a tarefa estiver em execução, o DB2 Reader não recuperará essas atualizações.

Ao configurar a extração concorrente com o parâmetro splitPk, o DB2 Reader inicia múltiplas tarefas fora da mesma transação de leitura e executadas em momentos diferentes. Nesse caso, os snapshots lidos pelas tarefas concorrentes podem estar incompletos ou inconsistentes. Existem duas soluções alternativas:

  • Use sincronização single-threaded (sem particionamento de dados). Isso preserva a consistência dos dados, mas reduz a velocidade da sincronização.

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

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

Não. O DB2 Reader usa Java Database Connectivity (JDBC) para extrair dados. O JDBC gerencia a conversão de codificação na camada subjacente, portanto, o DB2 Reader detecta e transcodifica automaticamente a codificação.

Como configurar a sincronização incremental de dados?

O DB2 Reader extrai dados usando instruções JDBC SELECT, o que permite usar SELECT...WHERE... para extração incremental de duas formas:

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

  • Para dados apenas de acréscimo (append-only), configure uma cláusula where com o ID auto-incremental máximo da execução de sincronização anterior.

Se nenhum campo distinguir dados novos dos existentes, apenas a sincronização completa será possível.

**O parâmetro querySql é seguro 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 esse parâmetro.

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

Use 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 uma tarefa no editor de código.

Demonstração de 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 da fonte de dados conforme configurado no DataWorks.

Sim

Nenhum

jdbcUrl

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

Sim

Nenhum

username

Nome de usuário da fonte de dados.

Sim

Nenhum

password

Senha do nome de usuário.

Sim

Nenhum

table

Tabela de origem. Um único job pode ler apenas de uma tabela.

Sim

Nenhum

column

Colunas a serem lidas, especificadas como um array JSON. Todas as colunas: ["*"]. Aceita remoção de colunas, reordenação 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 estar vazio.

Sim

Nenhum

splitPk

Campo usado para particionar dados na extração concorrente. Use a chave primária da tabela para distribuição uniforme e evitar hotspots de dados. Apenas campos inteiros são compatíveis; números de ponto flutuante, strings e datas não são aceitos. Se um tipo incompatível for especificado, o DB2 Reader retornará 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 serão sincronizadas.

Não

Nenhum

querySql

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

Não

Nenhum

fetchSize

Quantidade de registros recuperados por lote do banco de dados. Um valor maior reduz as idas e vindas na rede e melhora o desempenho da extração.

Não

1024

Se fetchSize exceder 2048, poderá ocorrer um erro de falta de memória (OOM) durante a sincronização.

Demonstração de 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 para o banco de dados DB2. Formato: jdbc:db2://ip:port/database. É possível anexar atributos de controle de conexão.

Sim

Nenhum

username

Nome de usuário da fonte de dados.

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 em ordem, 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 aceitas.

Não

Nenhum

batchSize

Quantidade de registros enviados por lote. Um valor maior reduz as idas e vindas na rede e melhora o throughput de gravação. Se definido com um valor muito alto, poderá ocorrer um erro OOM.

Não

1024