Todos os produtos
Search
Central de documentação

DataWorks:Fonte de dados Oracle

Última atualização: Jun 27, 2026

O DataWorks oferece o Oracle Reader e o Oracle Writer para leitura e gravação em fontes de dados Oracle. Configure tarefas de sincronização de dados para essas fontes usando a interface do usuário (UI) sem código ou o editor de código. Este tópico descreve os recursos de sincronização de dados compatíveis com fontes de dados Oracle.

Versões compatíveis

Leitura e gravação de dados em lote

Versão

Leitura de dados em lote (Oracle Reader)

Gravação de dados em lote (Oracle Writer)

Oracle 11.2 ou 11gR2

Compatível

Compatível

Oracle 12.1 ou 12cR1

Compatível

Compatível

Oracle 12.2 ou 12cR2

Compatível (sem novos recursos)

Compatível (sem novos recursos)

Oracle 18.3

Compatível (sem novos recursos)

Compatível (sem novos recursos)

Oracle 19.x

Compatível (sem novos recursos)

Compatível (sem novos recursos)

Oracle 21.1

Compatível (sem novos recursos)

Compatível (sem novos recursos)

Importante

O Oracle Writer utiliza o driver ojdbc6-12.1.1.jar.

Leitura de dados em tempo real

  • Compatível:

    Bancos de dados 11g R2 and above, 12c non cdb, 18c non cdb, 19c non cdb ou 19c cdb.

  • Não compatível:

    Bancos de dados 12c cbd e 18c cbd.

  • Ao usar o Oracle como source em uma tarefa de sincronização de banco de dados completo em tempo real, ative o recurso de log de arquivamento. Para mais informações, consulte Preparação do ambiente Oracle.

Nota

Um banco de dados contêiner (CDB) é um recurso introduzido no Oracle 12c e versões posteriores, projetado para hospedar vários bancos de dados conectáveis (PDBs).

Limitações

  • Os conjuntos de caracteres NLS_CHARACTERSET e NLS_NCHAR_CHARACTERSET da instância Oracle devem ser um dos seguintes: AL32UTF8, AL16UTF16, ZHS16GBK ou UTF8.

  • Uma única instância Oracle suporta sincronização em tempo real de até 500 GB de dados incrementais por dia.

  • Quando o DataWorks lê dados de um banco de dados standby Oracle em tempo real, apenas bancos de dados standby físicos são suportados. Como somente logs de arquivamento são extraídos, a latência é maior do que a do banco de dados primário e depende da velocidade de geração desses logs.

  • A sincronização em tempo real não suporta views. A sincronização em lote suporta leitura a partir de views.

  • O DataWorks lê dados Oracle em tempo real com base no Oracle LogMiner. Ative o log suplementar e o log de arquivamento no banco de dados primário Oracle (para o banco primário ou standby).

  • Tabelas organizadas por índice não são suportadas.

  • Tabelas cujas colunas sejam exclusivamente do tipo LOB (BLOB, CLOB ou NCLOB) não são suportadas.

  • Caracteres chineses em nomes de tabelas e colunas do Oracle não são suportados.

  • Nomes de tabela Oracle que excedam 30 bytes não são suportados.

Tipos de coluna compatíveis

Tipo de coluna

Leitura de dados em lote (Oracle Reader)

Gravação de dados em lote (Oracle Writer)

Leitura de dados em tempo real

NUMBER

Compatível

Compatível

Compatível

BINARY FLOAT

Compatível

Compatível

Compatível

BINARY DOUBLE

Compatível

Compatível

Compatível

CHAR

Compatível

Compatível

Compatível

NCHAR

Compatível

Compatível

Compatível

VARCHAR2

Compatível

Compatível

Compatível

NVARCHAR2

Compatível

Compatível

Compatível

DATE

Compatível

Compatível

Compatível

TIMESTAMP

Compatível

Compatível

Compatível

TIMESTAMP WITH TIME ZONE

Compatível

Compatível

Não compatível

TIMESTAMP WITH LOCAL TIME ZONE

Compatível

Compatível

Não compatível

CLOB

Compatível

Compatível

Compatível

BLOB

Compatível

Compatível

Compatível

RAW

Compatível

Compatível

Compatível

ROWID

Não compatível

Não compatível

Compatível

UROWID

Não compatível

Não compatível

Compatível

FLOAT

Compatível

Compatível

Compatível

INTERVAL DAY TO SECOND

Não compatível

Não compatível

Compatível

INTERVAL YEAR TO MONTH

Não compatível

Não compatível

Compatível

BFILE

Não compatível

Não compatível

Não compatível

LONG

Não compatível

Não compatível

Não compatível

LONG RAW

Não compatível

Não compatível

Não compatível

NCLOB

Compatível

Compatível

Não compatível

STRUCT

Compatível

Compatível

Não compatível

User-Defined Types

Não compatível

Não compatível

Não compatível

AnyType

Não compatível

Não compatível

Não compatível

AnyData

Não compatível

Não compatível

Não compatível

AnyDataSet

Não compatível

Não compatível

Não compatível

XmlType

Não compatível

Não compatível

Não compatível

Spatial Types

Não compatível

Não compatível

Não compatível

Media Types

Não compatível

Não compatível

Não compatível

A tabela a seguir lista as conversões de tipo de dados suportadas pelo Oracle Reader.

Categoria de tipo

Tipo de dados Oracle

Inteiro

NUMBER, RAWID, INTEGER, INT e SMALLINT

Ponto flutuante

NUMERIC, DECIMAL, FLOAT, DOUBLE PRECISION e REAL

String

LONG, CHAR, NCHAR, VARCHAR, VARCHAR2, NVARCHAR2, CLOB, NCLOB, CHARACTER, CHARACTER VARYING, CHAR VARYING, NATIONAL CHARACTER, NATIONAL CHAR, NATIONAL CHARACTER VARYING, NATIONAL CHAR VARYING e NCHAR VARYING

Data e hora

TIMESTAMP e DATE

Booleano

BIT e BOOL

Binário

BLOB, BFILE, RAW e LONG RAW

Preparação pré-sincronização: Preparação do ambiente Oracle

Antes de sincronizar dados no DataWorks, prepare o ambiente Oracle conforme descrito nesta seção. Isso garante que as tarefas de sincronização de dados Oracle possam ser configuradas e executadas corretamente no DataWorks. As seções a seguir detalham as etapas de preparação.

Verifique a versão do banco de dados Oracle

As versões de banco de dados Oracle compatíveis variam conforme o cenário de sincronização. Antes de iniciar, verifique se a versão do seu banco de dados Oracle é compatível.

  1. Execute uma das instruções a seguir para verificar a versão do banco de dados Oracle.

    • Instrução 1:

      select * from v$version;
    • Instrução 2:

      select version from v$instance;
  2. Se a versão do banco de dados Oracle for 12c ou 18c, execute a instrução abaixo para verificar se o banco é do tipo cdb. Tarefas de sincronização em tempo real do Data Integration não suportam bancos de dados Oracle 12c e 18c cdb.

    select name,cdb,open_mode,con_id from v$database;

Crie uma conta e configure as permissões

Planeje uma conta de login no banco de dados para as operações subsequentes. Essa conta deve ter as permissões necessárias para operações no Oracle.

  1. Crie uma conta. Para mais informações, consulte CREATE USER.

  2. Configure as permissões.

    Execute os comandos a seguir para conceder permissões à conta. Nas instruções abaixo, substitua 'sync_account' pela conta criada.

    grant create session to 'sync_account';  //Grant the sync account permission to log in to the database.
    grant connect to 'sync_account';  //Grant the sync account permission to connect to the database.
    grant select on nls_database_parameters to 'sync_account';  //Grant the sync account permission to query the nls_database_parameters system configuration of the database.
    grant select on all_users to 'sync_account';  //Grant the sync account permission to query all users in the database.
    grant select on all_objects to 'sync_account';  //Grant the sync account permission to query all objects in the database.
    grant select on DBA_MVIEWS to 'sync_account';  //Grant the sync account permission to view materialized views of the database.
    grant select on DBA_MVIEW_LOGS to 'sync_account';  //Grant the sync account permission to view materialized view logs of the database.
    grant select on DBA_CONSTRAINTS to 'sync_account';  //Grant the sync account permission to view constraint information of all tables in the database.
    grant select on DBA_CONS_COLUMNS to 'sync_account';  //Grant the sync account permission to view information about all columns in specified constraints of all tables in the database.
    grant select on all_tab_cols to 'sync_account';  //Grant the sync account permission to view column information of tables, views, and clusters in the database.
    grant select on sys.obj$ to 'sync_account';  //Grant the sync account permission to view objects in the database. The sys.obj$ table is the base object table in the Oracle data dictionary, storing all Oracle objects.
    grant select on SYS.COL$ to 'sync_account';  //Grant the sync account permission to view column definition information of database tables. SYS.COL$ stores column definition information of tables.
    grant select on sys.USER$ to 'sync_account';  //Grant the sync account permission to view database system tables. sys.USER$ is the default service for user sessions.
    grant select on sys.cdef$ to 'sync_account';  //Grant the sync account permission to view database system tables.
    grant select on sys.con$ to 'sync_account';  //Grant the sync account permission to view constraint information of the database. sys.con$ stores Oracle constraint information.
    grant select on all_indexes to 'sync_account';  //Grant the sync account permission to view all indexes of the database.
    grant select on v_$database to 'sync_account';  //Grant the sync account permission to view the v_$database view of the database.
    grant select on V_$ARCHIVE_DEST to 'sync_account';  //Grant the sync account permission to view the V_$ARCHIVE_DEST view of the database.
    grant select on v_$log to 'sync_account';  //Grant the sync account permission to view the v_$log view of the database. v_$log displays log file information from the control file.
    grant select on v_$logfile to 'sync_account';  //Grant the sync account permission to view the v_$logfile view of the database. v_$logfile contains information about redo log files.
    grant select on v_$archived_log to 'sync_account';  //Grant the sync account permission to view the v$archived_log view of the database. v$archived_log contains information about archived logs.
    grant select on V_$LOGMNR_CONTENTS to 'sync_account';  //Grant the sync account permission to view the V_$LOGMNR_CONTENTS view of the database.
    grant select on DUAL to 'sync_account';   //Grant the sync account permission to view the DUAL table of the database. DUAL is a virtual table used to conform to the SELECT syntax rules. Oracle's DUAL table contains only one record.
    grant select on v_$parameter to 'sync_account';  //Grant the sync account permission to view the v_$parameter view of the database. v$parameter is an Oracle dynamic dictionary table that stores database parameter settings.
    grant select any transaction to 'sync_account';  //Grant the sync account permission to view any transaction in the database.
    grant execute on SYS.DBMS_LOGMNR to 'sync_account';  //Grant the sync account permission to use the LogMiner tool of the database. The LogMiner tool helps you analyze transactions and recover lost data.
    grant alter session to 'sync_account';  //Grant the sync account permission to alter database sessions.
    grant select on dba_objects to 'sync_account';  //Grant the sync account permission to view all objects in the database.
    grant select on v_$standby_log to 'sync_account';  //Grant the sync account permission to view the v_$standby_log view of the database. v_$standby_log contains archived logs of the standby database.
    grant select on v_$ARCHIVE_GAP to 'sync_account';  //Grant the sync account permission to query missing archived logs.
    grant select on sys.ICOL$ to 'sync_account';  //Grant the sync account permission to view objects in the database. The sys.obj$ table is the base object table in the Oracle data dictionary, storing all Oracle objects.
    grant select on V_$THREAD to 'sync_account';  //Grant the sync account permission to view instance thread information. The V_$THREAD view is a thread status table in Oracle dynamic performance views, storing thread status information of each instance in a RAC cluster, used to determine instance status and log sources during incremental parsing.

    Para utilizar a sincronização completa em lote, execute o comando a fim de conceder à conta de sincronização permissão de consulta em todas as tabelas.

    grant select any table to 'sync_account'; 

    No Oracle 12c e versões posteriores, execute o comando abaixo para conceder à conta de sincronização permissão para realizar mineração de logs. Em versões anteriores ao Oracle 12c, esse recurso já vem integrado e o comando não é necessário.

    grant LOGMINING TO 'sync_account';

Ative o log de arquivamento, o log suplementar e alterne arquivos de Redo log

  1. Ative o log de arquivamento executando as instruções SQL a seguir.

    shutdown immediate;
    startup mount;
    alter database archivelog;
    alter database open;
  2. Ative o log suplementar.

    Ative o log suplementar adequado às suas necessidades executando as instruções SQL abaixo.

    //To capture complete data changes, real-time synchronization requires enabling supplemental logging. You can enable it at the database level using the following SQL statements:
    alter database add supplemental log data(primary key) columns; //Enable supplemental logging for primary key columns of the database.
    alter database add supplemental log data(unique) columns; //Enable supplemental logging for unique index columns of the database.
    
    //You can also enable it at the table level:
    alter schema.table add supplemental log data(primary key) columns; //Enable supplemental logging for primary key columns of the specified table.
    alter schema.table add supplemental log data(unique) columns; //Enable supplemental logging for unique index columns of the specified table.
  3. Alterne os arquivos de Redo log.

    Após ativar o log suplementar, execute o comando a seguir várias vezes (recomendamos 5 vezes) para alternar os arquivos de Redo log.

    alter system switch logfile;
    Nota

    Executar o comando anterior múltiplas vezes garante que o arquivo de log atual seja alternado para o próximo ao atingir sua capacidade. Isso evita a perda de registros de operação e permite sua utilização na recuperação de dados subsequente.

Verifique a codificação de caracteres do banco de dados

Execute o comando abaixo no banco de dados para verificar a codificação de caracteres.

select * from v$nls_parameters where PARAMETER IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');
  • A view v$nls_parameters armazena as configurações dos parâmetros do banco de dados.

  • Os parâmetros NLS_CHARACTERSET e NLS_NCHAR_CHARACTERSET definem o conjunto de caracteres do banco e o conjunto de caracteres nacional, indicando os tipos de armazenamento das duas principais categorias de dados de caracteres no Oracle.

Nota

O Data Integration suporta apenas os formatos de codificação UTF8, AL32UTF8, AL16UTF16 e ZHS16GBK. Caso o banco de dados contenha codificações não suportadas, modifique-as antes de sincronizar os dados.

Verifique os tipos de dados das tabelas do banco de dados

Utilize uma instrução SELECT para consultar os tipos de dados das tabelas. O exemplo a seguir demonstra como visualizar os tipos de dados de uma tabela chamada 'tablename'.

select COLUMN_NAME,DATA_TYPE from all_tab_columns where TABLE_NAME='tablename'; 
  • COLUMN_NAME: Nome da coluna da tabela.

  • DATA_TYPE: Tipo de dados da coluna.

  • all_tab_columns: View que armazena informações sobre todas as colunas das tabelas do banco de dados.

  • TABLE_NAME: Nome da tabela a ser consultada. Substitua 'tablename' pelo nome real da tabela ao executar a instrução.

Também é possível executar select * from 'tablename'; para consultar todas as informações de uma tabela e obter os tipos de dados.

Adicionar uma fonte de dados

Antes de desenvolver uma tarefa de sincronização no DataWorks, adicione a fonte de dados necessária seguindo as instruções em Gerenciamento de fontes de dados. Consulte as descrições de parâmetros no console do DataWorks para entender o significado de cada parâmetro ao adicionar uma fonte de dados.

Desenvolvimento de tarefa de sincronização de dados: Processo de sincronização Oracle

Para informações sobre o ponto de entrada e o procedimento de configuração de uma tarefa de sincronização, consulte os guias de configuração a seguir.

Configuração de tarefa de sincronização em lote de tabela única

Configuração de tarefa de sincronização em tempo real de tabela única

Para o procedimento, consulte Configurar uma tarefa de sincronização em tempo real.

Configuração de sincronização em lote de banco completo, sincronização completa e incremental de banco completo (tempo real) e sincronização fragmentada de banco completo (tempo real)

Para o procedimento, consulte Configurar uma tarefa de sincronização de banco de dados completo.

Perguntas frequentes

  • Falhas recorrentes em tarefas para Oracle, PolarDB e MySQL

  • Sincronização primário-standby e recuperação de dados

    Esse problema ocorre quando o Oracle utiliza recuperação de desastres primário-standby. Após uma falha no banco de dados primário e a alternância para o standby, este recupera continuamente os dados do primário via binlog. Devido à diferença temporal na sincronização entre primário e standby, condições específicas como latência de rede podem fazer com que os dados recuperados pelo standby divirjam significativamente do primário. Nesse caso, os dados sincronizados a partir do standby não representam um snapshot completo no momento atual.

  • Restrições de consistência

    O Oracle é um RDBMS que fornece interfaces de consulta de dados com forte consistência. Por exemplo, durante uma tarefa de sincronização, se outros gravadores inserirem dados no banco, o Oracle Reader não lerá esses novos dados devido ao recurso de snapshot do banco de dados.

    O cenário acima garante consistência de dados sob o modelo single-threaded do Oracle Reader. Quando o Oracle Reader extrai dados simultaneamente com base na sua configuração, a consistência estrita dos dados não pode ser garantida.

    Após o Oracle Reader dividir os dados com base em splitPk, ele inicia múltiplas tarefas concorrentes para sincronização. Essas tarefas não pertencem à mesma transação de leitura e há intervalos de tempo entre elas. Portanto, os dados não constituem um snapshot completo e consistente.

    Snapshots consistentes multithread não são tecnicamente viáveis. A questão só pode ser tratada sob uma perspectiva de engenharia, com compensações. As soluções a seguir são fornecidas para referência.

    • Utilize sincronização single-threaded sem divisão de dados. Essa abordagem é mais lenta, mas garante a consistência dos dados.

    • Interrompa outros gravadores de dados para garantir que os dados estejam estáticos. Por exemplo, bloqueie a tabela ou pare a sincronização do banco standby. A desvantagem é que isso pode afetar serviços online.

  • Codificação do banco de dados

    O Oracle Reader usa JDBC para extrair dados. O JDBC suporta nativamente várias codificações e realiza a conversão na camada subjacente. Assim, o Oracle Reader não exige que você especifique uma codificação, pois ele detecta e converte automaticamente.

  • Métodos de sincronização incremental de dados

    O Oracle Reader utiliza instruções JDBC SELECT para extrair dados. Use SELECT…WHERE… para extrair dados incrementais das seguintes formas:

    • Quando uma aplicação online grava dados no banco, ela preenche o campo de modificação com o timestamp da alteração, incluindo operações de insert, update e delete (exclusão lógica). Para tais aplicações, o Oracle Reader precisa apenas anexar o timestamp da última etapa de sincronização à cláusula WHERE.

    • Para dados de streaming recém-adicionados, o Oracle Reader precisa apenas anexar o ID autoincremental máximo da etapa anterior à cláusula WHERE.

    Se nenhum campo puder distinguir dados novos de modificados, o Oracle Reader não conseguirá realizar sincronização incremental e sincronizará apenas dados completos.

  • Segurança de SQL

    O Oracle Reader oferece o recurso querySql, que permite escrever instruções SELECT personalizadas. O Oracle Reader não realiza nenhuma validação de segurança em querySql.

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

Configurar uma tarefa de sincronização em lote usando o editor de código

Para configurar uma tarefa de sincronização em lote usando o editor de código, defina os parâmetros relevantes no script conforme os requisitos unificados de formato. Para mais informações, consulte Configuração no modo script. As informações a seguir descrevem os parâmetros obrigatórios para fontes de dados ao configurar uma tarefa de sincronização em lote via editor de código.

Exemplo de script do Reader

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "oracle",
            "parameter": {
                "selectedDatabase": "AUTOTEST",
                "indexes": [],
                "datasource": "oracle_test",
                "envType": 0,
                "useSpecialSecret": true,
                "column": [
                    "id"
                ],
                "where": "",
                "splitPk": "id",
                "encoding": "UTF-8",
                "table": "AUTOTEST.table01"
            },
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "odps",
            "parameter": {
            },
            "name": "Writer",
            "category": "writer"
        },
        {
            "name": "Processor",
            "stepType": null,
            "category": "processor",
            "copies": 1,
            "parameter": {
                "nodes": [],
                "edges": [],
                "groups": [],
                "version": "2.0"
            }
        }
    ],
    "setting": {
        "executeMode": null,
        "errorLimit": {
            "record": ""
        },
        "speed": {
            "concurrent": 2,
            "throttle": false
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Parâmetros do script do Reader

Parâmetro

Descrição

Obrigatório

Valor padrão

datasource

Nome da fonte de dados. Adicione uma fonte de dados no modo script. O valor deste parâmetro deve corresponder exatamente ao nome da fonte de dados adicionada.

Sim

N/A

selectedDatabase

Schema do banco de dados a ser sincronizado.

Sim

N/A

table

Nome da tabela a ser sincronizada. O valor deve estar no formato schema.tableName.

Nota

Por exemplo, se selectedDatabase for AUTOTEST e o nome da tabela for table01, defina table como AUTOTEST.table01.

Sim

N/A

column

Colunas a serem sincronizadas da tabela. As colunas são descritas usando um array JSON. Por padrão, todas as colunas são selecionadas, por exemplo, ["*"].

  • Suporta poda de colunas, permitindo exportar apenas colunas específicas.

  • Suporta reordenação de colunas, permitindo exportá-las em ordem diferente do schema da tabela.

  • Suporta constantes. Configure-as no formato JSON.

    ["id", "1", "'mingya.wmy'", "null", "to_char(a + 1)", "2,3" , "true"]
    • id é um nome de coluna comum.

    • 1 é uma constante inteira.

    • 'mingya.wmy' é uma constante string (observe que um par de aspas simples é obrigatório).

    • null é um ponteiro nulo.

    • to_char(a + 1) é uma expressão.

    • 2,3 é um número de ponto flutuante.

    • true é um valor booleano.

  • O parâmetro column deve ser especificado explicitamente e não pode estar vazio.

Sim

N/A

splitFactor

Fator de divisão. Especifica o número de divisões para sincronização de dados. Se múltiplas threads concorrentes forem configuradas, os dados serão divididos em concurrency × splitFactor partes. Por exemplo, se a concorrência for 5 e splitFactor for 5, os dados serão divididos em 5 × 5 = 25 partes e executados em 5 threads concorrentes.

Nota

Faixa de valores recomendada: 1 a 100. Um valor excessivamente alto pode causar erros de falta de memória (OOM).

Não

5

splitMode

Modo de divisão. Valores válidos:

  • averageInterval: Amostragem média. Os valores máximo e mínimo de splitPK são identificados e os dados são divididos uniformemente com base no número de divisões.

  • randomSampling: Amostragem aleatória. Um determinado número de pontos de dados é selecionado aleatoriamente como pontos de divisão.

Nota

O parâmetro splitMode deve ser usado em conjunto com o parâmetro splitPk.

  • Quando splitPk for numérico, splitMode deve ser definido como averageInterval.

  • Quando splitPk for string, splitMode deve ser definido como randomSampling.

Não

randomSampling

splitPk

Durante a extração de dados pelo Oracle Reader, especificar splitPk indica o uso do campo representado por splitPk para dividir os dados. A sincronização inicia então tarefas concorrentes, melhorando a eficiência.

  • Recomenda-se usar a chave primária da tabela como splitPk, pois chaves primárias geralmente têm distribuição uniforme, resultando em divisões equilibradas sem hotspots.

  • splitPk suporta apenas tipos numéricos e string. O parâmetro splitMode deve ser usado em conjunto com splitPk.

    • Quando splitPk for numérico, splitMode deve ser definido como averageInterval.

    • Quando splitPk for string, splitMode deve ser definido como randomSampling.

  • Se splitPk não for especificado, o Oracle Reader não divide a tabela e usa um único canal para sincronizar todos os dados.

Nota

O campo splitPK não pode usar ROWID para views.

Não

N/A

where

Condição de filtro. O Oracle Reader concatena uma instrução SQL com base nas condições column, table e where especificadas e extrai dados conforme essa instrução. Por exemplo, durante testes, você pode definir a condição where como row_number().

  • A condição where pode ser usada para sincronização incremental.

  • Se a condição where não for especificada ou estiver vazia, a sincronização completa da tabela será realizada.

Não

N/A

querySql (modo avançado, não suportado no modo assistente)

Em alguns cenários de negócios, a condição where não basta para descrever os filtros. Utilize este parâmetro para especificar uma instrução SQL de filtro personalizada. Ao configurá-lo, o sistema de sincronização ignora as definições de table e column, usando diretamente essa SQL para filtrar dados. Por exemplo, para sincronizar dados após um join de múltiplas tabelas, utilize select a,b from table_a join table_b on table_a.id = table_b.id. Ao configurar querySql, o Oracle Reader ignora as configurações de table, column e where.

Não

N/A

fetchSize

Número de linhas que o plug-in busca do servidor de banco de dados em cada lote. Esse valor determina o número de idas e vindas na rede entre o sistema de sincronização e o servidor, podendo melhorar significativamente o desempenho de extração.

Nota

Um valor de fetchSize muito alto (>2048) pode causar erros OOM durante a sincronização.

Não

1.024

Exemplo de script do Writer

{ "type":"job", "version":"2.0",// The version number. "steps":[ { "stepType":"stream", "parameter":{}, "name":"Reader", "category":"reader" }, { "stepType":"oracle",// The plug-in name. "parameter":{ "postSql":[],// The SQL statements to run after the data synchronization task is complete. "datasource":"", "session":[],// The database connection session parameters. "column":[// The columns. "id", "name" ], "encoding":"UTF-8",// The encoding format. "batchSize":1024,// The number of records to commit in each batch. "table":"",// The table name. "preSql":[]// The SQL statements to run before the data synchronization task starts. }, "name":"Writer", "category":"writer" } ], "setting":{ "errorLimit":{ "record":"0"// The error count. }, "speed":{ "throttle":true,// When throttle is set to false, the mbps parameter does not take effect and throttling is disabled. When throttle is set to true, throttling is enabled. "concurrent":1, // The concurrency. "mbps":"12"// The throttling rate. 1 mbps = 1 MB/s. } }, "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] } }

Parâmetros do script do Writer

Parâmetro

Descrição

Obrigatório

Valor padrão

datasource

Nome da fonte de dados. Adicione uma fonte de dados no modo script. O valor deve corresponder exatamente ao nome da fonte de dados adicionada.

Sim

N/A

table

Nome da tabela de destino. Se o schema da tabela diferir do nome de usuário configurado anteriormente, especifique a tabela no formato schema.table.

Sim

N/A

writeMode

Modo de gravação. Apenas INSERT INTO é suportado. Quando ocorre conflito de chave primária ou índice único, as linhas conflitantes não são gravadas e são registradas como dados incorretos.

Não

insert into

column

Colunas nas quais os dados serão gravados na tabela de destino. Separe os nomes das colunas por vírgulas (,). Por exemplo, "column": ["id","name","age"]. Para gravar dados em todas as colunas sequencialmente, use um asterisco (*). Por exemplo, "column":["*"].

Sim

N/A

preSql

Instruções SQL a serem executadas antes do início da tarefa de sincronização. Atualmente, o modo assistente permite apenas uma instrução SQL, enquanto o modo script suporta múltiplas. Use este parâmetro, por exemplo, para limpar dados antigos.

Não

N/A

postSql

Instruções SQL a serem executadas após a conclusão da tarefa de sincronização. O modo assistente permite apenas uma instrução, enquanto o modo script suporta várias. Utilize este parâmetro, por exemplo, para adicionar um timestamp.

Não

N/A

batchSize

Número de registros a serem confirmados em cada lote. Esse valor reduz significativamente as idas e vindas na rede entre o sistema de sincronização e o Oracle, aumentando o throughput geral. Valores muito altos podem causar erros OOM durante o processo.

Não

1.024