Todos los productos
Search
Centro de documentos

DataWorks:Origen de datos Oracle

Última actualización: Sep 04, 2026

DataWorks ofrece Oracle Reader y Oracle Writer para leer y escribir en orígenes de datos Oracle. Puede utilizar la interfaz de usuario (UI) sin código o el editor de código para configurar tareas de sincronización de datos para orígenes de datos Oracle. Este tema describe las capacidades de sincronización de datos compatibles para orígenes de datos Oracle.

Versiones compatibles

Lectura y escritura de datos por lotes

Versión

Lectura de datos por lotes (Oracle Reader)

Escritura de datos por lotes (Oracle Writer)

Oracle 11.2 o 11gR2

Compatible

Compatible

Oracle 12.1 o 12cR1

Compatible

Compatible

Oracle 12.2 o 12cR2

Compatible (sin nuevas funciones)

Compatible (sin nuevas funciones)

Oracle 18.3

Compatible (sin nuevas funciones)

Compatible (sin nuevas funciones)

Oracle 19.x

Compatible (sin nuevas funciones)

Compatible (sin nuevas funciones)

Oracle 21.1

Compatible (sin nuevas funciones)

Compatible (sin nuevas funciones)

Importante

Oracle Writer utiliza el controlador ojdbc6-12.1.1.jar.

Lectura de datos en tiempo real

  • Compatible:

    Bases de datos 11g R2 and above, 12c non cdb, 18c non cdb, 19c non cdb o 19c cdb.

  • No compatible:

    Bases de datos 12c cbd y 18c cbd.

  • Cuando se utiliza Oracle como origen de una tarea de sincronización en tiempo real de base de datos completa, debe habilitar la función de registro de archivado. Para obtener más información, consulte Oracle environment preparation.

Nota

Una base de datos contenedor (CDB) es una función introducida en Oracle 12c y versiones posteriores. Está diseñada para alojar varias bases de datos conectables (PDB).

Limitaciones

  • Los conjuntos de caracteres NLS_CHARACTERSET y NLS_NCHAR_CHARACTERSET de la instancia de Oracle deben ser uno de los siguientes: AL32UTF8, AL16UTF16, ZHS16GBK o UTF8.

  • Una sola instancia de Oracle admite la sincronización en tiempo real de hasta 500 GB de datos incrementales por día.

  • Cuando DataWorks lee datos de una base de datos en espera de Oracle en tiempo real, solo se admiten bases de datos en espera físicas. Solo se extraen registros de archivado, por lo que la latencia es mayor que la de la base de datos principal. La latencia depende de la velocidad a la que se generan los registros de archivado.

  • La sincronización en tiempo real no admite vistas. La sincronización por lotes admite la lectura desde vistas.

  • DataWorks lee datos de Oracle en tiempo real mediante Oracle LogMiner. Debe habilitar el registro suplementario y el registro de archivado en la base de datos principal de Oracle para la base de datos principal o en espera.

  • No se admiten tablas organizadas por índice.

  • No se admiten tablas en las que todas las columnas son de tipos LOB (BLOB, CLOB o NCLOB).

  • No se admiten caracteres chinos en nombres de tablas y nombres de columnas de Oracle.

  • No se admite un nombre de tabla de Oracle único que exceda los 30 bytes.

Tipos de columna compatibles

Tipo de columna

Lectura de datos por lotes (Oracle Reader)

Escritura de datos por lotes (Oracle Writer)

Lectura de datos en tiempo real

NUMBER

Compatible

Compatible

Compatible

BINARY FLOAT

Compatible

Compatible

Compatible

BINARY DOUBLE

Compatible

Compatible

Compatible

CHAR

Compatible

Compatible

Compatible

NCHAR

Compatible

Compatible

Compatible

VARCHAR2

Compatible

Compatible

Compatible

NVARCHAR2

Compatible

Compatible

Compatible

DATE

Compatible

Compatible

Compatible

TIMESTAMP

Compatible

Compatible

Compatible

TIMESTAMP WITH TIME ZONE

Compatible

Compatible

No compatible

TIMESTAMP WITH LOCAL TIME ZONE

Compatible

Compatible

No compatible

CLOB

Compatible

Compatible

Compatible

BLOB

Compatible

Compatible

Compatible

RAW

Compatible

Compatible

Compatible

ROWID

No compatible

No compatible

Compatible

UROWID

No compatible

No compatible

Compatible

FLOAT

Compatible

Compatible

Compatible

INTERVAL DAY TO SECOND

No compatible

No compatible

Compatible

INTERVAL YEAR TO MONTH

No compatible

No compatible

Compatible

BFILE

No compatible

No compatible

No compatible

LONG

No compatible

No compatible

No compatible

LONG RAW

No compatible

No compatible

No compatible

NCLOB

Compatible

Compatible

No compatible

STRUCT

Compatible

Compatible

No compatible

User-Defined Types

No compatible

No compatible

No compatible

AnyType

No compatible

No compatible

No compatible

AnyData

No compatible

No compatible

No compatible

AnyDataSet

No compatible

No compatible

No compatible

XmlType

No compatible

No compatible

No compatible

Spatial Types

No compatible

No compatible

No compatible

Media Types

No compatible

No compatible

No compatible

La siguiente tabla enumera las conversiones de tipos de datos admitidas por Oracle Reader.

Categoría de tipo

Tipo de datos de Oracle

Entero

NUMBER, RAWID, INTEGER, INT y SMALLINT

Punto flotante

NUMERIC, DECIMAL, FLOAT, DOUBLE PRECISION y REAL

Cadena

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

Fecha y hora

TIMESTAMP y DATE

Booleano

BIT y BOOL

Binario

BLOB, BFILE, RAW y LONG RAW

Preparación previa a la sincronización: preparación del entorno Oracle

Antes de sincronizar datos en DataWorks, debe preparar el entorno Oracle como se describe en esta sección. Esto garantiza que las tareas de sincronización de datos de Oracle se puedan configurar y ejecutar correctamente en DataWorks. Las siguientes secciones describen los pasos de preparación.

Verificar la versión de la base de datos Oracle

Las versiones de base de datos Oracle compatibles varían según el escenario de sincronización. Antes de sincronizar datos, compruebe que su versión de base de datos Oracle sea compatible.

  1. Puede ejecutar cualquiera de las siguientes sentencias para comprobar la versión de la base de datos Oracle.

    • Sentencia 1:

      select * from v$version;
    • Sentencia 2:

      select version from v$instance;
  2. Si la versión de la base de datos Oracle es 12c o 18c, debe ejecutar la siguiente sentencia para comprobar si la base de datos es una base de datos cdb. Las tareas de sincronización en tiempo real de Data Integration no admiten bases de datos Oracle 12c y 18c cdb.

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

Crear una cuenta y configurar permisos de cuenta

Debe planificar una cuenta de inicio de sesión de base de datos para operaciones posteriores. Esta cuenta debe tener los permisos de operación de Oracle obligatorios.

  1. Cree una cuenta. Para obtener más información, consulte CREATE USER.

  2. Configure los permisos.

    Puede ejecutar los siguientes comandos para otorgar permisos a la cuenta. En las siguientes sentencias, reemplace 'sync_account' con la cuenta que creó.

    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.

    Si desea utilizar la sincronización completa por lotes, ejecute el siguiente comando para otorgar a la cuenta de sincronización el permiso de consulta en todas las tablas.

    grant select any table to 'sync_account'; 

    Para Oracle 12c y versiones posteriores, ejecute el siguiente comando para otorgar a la cuenta de sincronización el permiso para realizar minería de registros. Para versiones anteriores a Oracle 12c, la función de minería de registros está integrada y este comando no es necesario.

    grant LOGMINING TO 'sync_account';

Habilitar registro de archivado, registro suplementario y cambiar archivos de registro Redo

  1. Habilite el registro de archivado ejecutando las siguientes sentencias SQL.

    shutdown immediate;
    startup mount;
    alter database archivelog;
    alter database open;
  2. Habilite el registro suplementario.

    Puede habilitar el registro suplementario adecuado según sus necesidades ejecutando las siguientes sentencias SQL.

    //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. Cambie los archivos de registro Redo.

    Después de habilitar el registro suplementario, ejecute el siguiente comando varias veces (se recomienda ejecutarlo 5 veces) para cambiar los archivos de registro Redo.

    alter system switch logfile;
    Nota

    Ejecutar el comando anterior varias veces para cambiar los archivos de registro Redo garantiza que el archivo de registro actual pueda cambiarse al siguiente archivo de registro cuando esté lleno. Esto asegura que los registros de operación no se pierdan y puedan utilizarse para la recuperación posterior de datos.

Comprobar la codificación de caracteres de la base de datos

Ejecute el siguiente comando en la base de datos para comprobar la codificación de caracteres de la base de datos.

select * from v$nls_parameters where PARAMETER IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');
  • v$nls_parameters almacena la configuración de los parámetros de la base de datos.

  • NLS_CHARACTERSET y NLS_NCHAR_CHARACTERSET especifican el conjunto de caracteres de la base de datos y el conjunto de caracteres nacional, que indican los tipos de almacenamiento de las dos categorías principales de datos de caracteres en Oracle.

Nota

Data Integration solo admite los formatos de codificación UTF8, AL32UTF8, AL16UTF16 y ZHS16GBK. Si la base de datos contiene codificaciones de caracteres no compatibles, modifíquelas antes de sincronizar datos.

Comprobar los tipos de datos de las tablas de la base de datos

Puede ejecutar una sentencia SELECT para consultar los tipos de datos de las tablas de la base de datos. El siguiente ejemplo muestra cómo ver los tipos de datos de una tabla llamada 'tablename'.

select COLUMN_NAME,DATA_TYPE from all_tab_columns where TABLE_NAME='tablename'; 
  • COLUMN_NAME: El nombre de la columna de la tabla.

  • DATA_TYPE: El tipo de datos de la columna.

  • all_tab_columns: Una vista que almacena información sobre todas las columnas de las tablas de la base de datos.

  • TABLE_NAME: El nombre de la tabla a consultar. Reemplace 'tablename' con el nombre real de la tabla cuando ejecute la sentencia.

También puede ejecutar select * from 'tablename'; para consultar toda la información sobre una tabla y obtener los tipos de datos.

Agregar un origen de datos

Antes de desarrollar una tarea de sincronización en DataWorks, debe agregar el origen de datos requerido a DataWorks siguiendo las instrucciones en Data source configuration. Puede consultar las descripciones de parámetros en la consola de DataWorks para comprender el significado de los parámetros al agregar un origen de datos.

Desarrollo de tareas de sincronización de datos: proceso de sincronización de Oracle

Para obtener información sobre el punto de entrada y el procedimiento para configurar una tarea de sincronización, consulte las siguientes guías de configuración.

Configuración de tarea de sincronización por lotes de tabla única

Configuración de tarea de sincronización en tiempo real de tabla única

Para el procedimiento, consulte Configure a real-time synchronization task.

Configuración de sincronización por lotes de base de datos completa, completa e incremental (en tiempo real) de base de datos completa y fragmentada (en tiempo real) de base de datos completa

Para el procedimiento, consulte Configure a full-database synchronization task.

Preguntas frecuentes

  • Real-time synchronization tasks for Oracle, PolarDB, and MySQL repeatedly report errors

  • Sincronización principal-en espera y recuperación de datos

    Este problema ocurre cuando Oracle utiliza recuperación ante desastres principal-en espera. Después de que la base de datos principal encuentra un error y cambia a la base de datos en espera, la base de datos en espera recupera continuamente datos de la base de datos principal a través de binlog. Debido a la diferencia de tiempo entre la sincronización de datos principal y en espera, condiciones específicas como la latencia de red pueden causar que los datos recuperados por la base de datos en espera difieran significativamente de la base de datos principal. En este caso, los datos sincronizados desde la base de datos en espera no son una instantánea completa en el momento actual.

  • Restricciones de consistencia

    Oracle es un RDBMS que proporciona interfaces de consulta de datos de fuerte consistencia. Por ejemplo, durante una tarea de sincronización, si otros escritores escriben datos en la base de datos, Oracle Reader no lee los datos recién escritos debido a la función de instantánea de la base de datos.

    El escenario anterior logra la consistencia de datos bajo el modelo de hilo único de Oracle Reader. Cuando Oracle Reader extrae datos concurrentemente según su configuración, no se puede garantizar una consistencia de datos estricta.

    Después de que Oracle Reader divide los datos basándose en splitPk, inicia varias tareas concurrentes para sincronizar datos. Estas tareas concurrentes no pertenecen a la misma transacción de lectura y existen intervalos de tiempo entre ellas. Por lo tanto, los datos no constituyen una instantánea de datos completa y consistente.

    Las instantáneas consistentes multihilo no se pueden lograr técnicamente. El problema solo puede abordarse desde una perspectiva de ingeniería con compensaciones. Se proporcionan las siguientes soluciones para su referencia.

    • Utilice sincronización de hilo único sin división de datos. Este enfoque es más lento pero garantiza la consistencia de los datos.

    • Detenga otros escritores de datos para asegurar que los datos sean estáticos. Por ejemplo, bloquee la tabla o detenga la sincronización de la base de datos en espera. La desventaja es que esto puede afectar a los servicios en línea.

  • Codificación de la base de datos

    Oracle Reader utiliza JDBC para extraer datos. JDBC admite nativamente diversas codificaciones y realiza la conversión de codificación en el nivel subyacente. Por lo tanto, Oracle Reader no requiere que especifique una codificación. Detecta y convierte la codificación automáticamente.

  • Métodos de sincronización de datos incrementales

    Oracle Reader utiliza sentencias JDBC SELECT para extraer datos. Puede utilizar SELECT…WHERE… para extraer datos incrementales de las siguientes maneras:

    • Cuando una aplicación en línea escribe datos en la base de datos, llena el campo de modificación con la marca de tiempo de modificación, incluyendo operaciones de inserción, actualización y eliminación (eliminación lógica). Para tales aplicaciones, Oracle Reader solo necesita agregar la marca de tiempo de la última etapa de sincronización a la cláusula WHERE.

    • Para datos de streaming recién agregados, Oracle Reader solo necesita agregar el ID autoincremental máximo de la etapa anterior a la cláusula WHERE.

    Si ningún campo puede usarse para distinguir entre datos nuevos y modificados, Oracle Reader no puede realizar la sincronización incremental de datos y solo puede sincronizar datos completos.

  • Seguridad SQL

    Oracle Reader proporciona la función querySql, que le permite escribir sentencias SELECT personalizadas. Oracle Reader no realiza ninguna validación de seguridad en querySql.

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

Configurar una tarea de sincronización por lotes mediante el editor de código

Si desea configurar una tarea de sincronización por lotes mediante el editor de código, debe configurar los parámetros relacionados en el script según los requisitos unificados de formato de script. Para obtener más información, consulte Script mode configuration. La siguiente información describe los parámetros que debe configurar para los orígenes de datos cuando configura una tarea de sincronización por lotes mediante el editor de código.

Demostración de script de 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 del script de Reader

Parámetro

Descripción

Obligatorio

Valor predeterminado

datasource

El nombre del origen de datos. Puede agregar un origen de datos en modo script. El valor de este parámetro debe ser igual al nombre del origen de datos que agregó.

Sí

N/A

selectedDatabase

El esquema de la base de datos que se va a sincronizar.

Sí

N/A

table

El nombre de la tabla que se va a sincronizar. El valor debe tener el formato schema.tableName.

Nota

Por ejemplo, si selectedDatabase es AUTOTEST y el nombre de la tabla es table01, establezca table en AUTOTEST.table01.

Sí

N/A

column

Las columnas que se van a sincronizar de la tabla. Las columnas se describen mediante una matriz JSON. De forma predeterminada, se seleccionan todas las columnas, por ejemplo, ["*"].

  • Se admite la poda de columnas, lo que le permite exportar solo columnas específicas.

  • Se admite la reordenación de columnas, lo que le permite exportar columnas en un orden diferente al esquema de la tabla.

  • Se admiten constantes. Debe configurarlas en formato JSON.

    ["id", "1", "'mingya.wmy'", "null", "to_char(a + 1)", "2.3" , "true"]
    • id es un nombre de columna normal.

    • 1 es una constante entera.

    • 'mingya.wmy' es una constante de cadena (tenga en cuenta que se requiere un par de comillas simples).

    • null es un puntero nulo.

    • to_char(a + 1) es una expresión.

    • 2.3 es un número de punto flotante.

    • true es un valor booleano.

  • El parámetro column debe especificarse explícitamente y no puede estar vacío.

Sí

N/A

splitFactor

El factor de división. Este parámetro especifica el número de divisiones para la sincronización de datos. Si se configuran varios hilos concurrentes, los datos se dividen en concurrency × splitFactor partes. Por ejemplo, si la concurrencia es 5 y splitFactor es 5, los datos se dividen en 5 × 5 = 25 partes y se ejecutan en 5 hilos concurrentes.

Nota

Rango de valores recomendado: 1 a 100. Un valor excesivamente grande puede causar errores de falta de memoria (OOM).

No

5

splitMode

El modo de división. Valores válidos:

  • averageInterval: Muestreo promedio. Se encuentran los valores máximo y mínimo de splitPK, y los datos se dividen uniformemente según el número de divisiones.

  • randomSampling: Muestreo aleatorio. Se selecciona aleatoriamente un cierto número de puntos de datos como puntos de división de todos los datos.

Nota

El parámetro splitMode debe usarse junto con el parámetro splitPk.

  • Cuando splitPk es de tipo numérico, splitMode debe establecerse en averageInterval.

  • Cuando splitPk es de tipo cadena, splitMode debe establecerse en randomSampling.

No

randomSampling

splitPk

Cuando Oracle Reader extrae datos, si especifica splitPk, indica que desea usar el campo representado por splitPk para dividir los datos. La sincronización de datos inicia entonces tareas concurrentes para sincronizar datos, lo que mejora la eficiencia de la sincronización.

  • Se recomienda utilizar la clave principal de la tabla como splitPk, porque las claves principales suelen estar distribuidas uniformemente y resultan en divisiones de datos equilibradas sin puntos críticos.

  • splitPk solo admite tipos numéricos y de cadena. El parámetro splitMode debe usarse junto con el parámetro splitPk.

    • Cuando splitPk es de tipo numérico, splitMode debe establecerse en averageInterval.

    • Cuando splitPk es de tipo cadena, splitMode debe establecerse en randomSampling.

  • Si no especifica splitPk, Oracle Reader no divide la tabla y utiliza un solo canal para sincronizar datos completos.

Nota

El campo splitPK no puede usar ROWID para vistas.

No

N/A

where

La condición de filtro. Oracle Reader concatena una sentencia SQL basada en las condiciones column, table y where especificadas, y extrae datos basándose en la sentencia SQL. Por ejemplo, puede especificar la condición where como row_number() durante las pruebas.

  • La condición where puede usarse para sincronización incremental.

  • Si la condición where no se especifica o está vacía, se realiza la sincronización de tabla completa.

No

N/A

querySql (modo avanzado, no compatible con el modo asistente)

En algunos escenarios empresariales, la condición where no es suficiente para describir las condiciones de filtro. Puede usar este parámetro para especificar una sentencia SQL de filtro personalizada. Después de configurar este parámetro, el sistema de sincronización de datos ignora las configuraciones de table y column y utiliza directamente esta sentencia SQL para filtrar datos. Por ejemplo, para sincronizar datos después de una unión de múltiples tablas, puede usar select a,b from table_a join table_b on table_a.id = table_b.id. Cuando configura querySql, Oracle Reader ignora las configuraciones de table, column y where.

No

N/A

fetchSize

El número de filas que el complemento obtiene del servidor de base de datos en cada lote. Este valor determina el número de viajes de ida y vuelta de red entre el sistema de sincronización de datos y el servidor de base de datos, y puede mejorar significativamente el rendimiento de extracción de datos.

Nota

Un valor de fetchSize demasiado grande (>2048) puede causar errores OOM en el proceso de sincronización de datos.

No

1,024

Demostración de script de 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 del script de Writer

Parámetro

Descripción

Obligatorio

Valor predeterminado

datasource

Nombre del origen de datos. Puede agregar un origen de datos en modo script. El valor de este parámetro debe coincidir con el nombre del origen de datos que agregó.

Sí

N/A

table

Nombre de la tabla de destino. Si el esquema de la tabla difiere del nombre de usuario configurado anteriormente, especifique la tabla con el formato schema.table.

Sí

N/A

writeMode

Modo de escritura. Solo se admite INSERT INTO. Cuando ocurre un conflicto de clave primaria o índice único, las filas en conflicto no se escriben y se registran como datos sucios.

No

insert into

column

Columnas de la tabla de destino donde se escribirán los datos. Separe los nombres de columna con comas (,). Por ejemplo, "column": ["id","name","age"]. Para escribir datos en todas las columnas en orden, utilice un asterisco (*). Por ejemplo, "column":["*"].

Sí

N/A

preSql

Sentencias SQL que se ejecutan antes de que inicie la tarea de sincronización de datos. Actualmente, el modo asistente solo permite una sentencia SQL, mientras que el modo script admite varias. Por ejemplo, puede usar este parámetro para borrar datos antiguos.

No

N/A

postSql

Sentencias SQL que se ejecutan después de completar la tarea de sincronización de datos. Actualmente, el modo asistente solo permite una sentencia SQL, mientras que el modo script admite varias. Por ejemplo, puede usar este parámetro para agregar una marca de tiempo.

No

N/A

batchSize

Número de registros que se confirman en cada lote. Este valor reduce significativamente la cantidad de viajes de ida y vuelta de red entre el sistema de sincronización de datos y Oracle, lo que mejora el throughput general. Si establece un valor demasiado alto, pueden ocurrir errores OOM durante el proceso de sincronización de datos.

No

1,024