Todos los productos
Search
Centro de documentos

DataWorks:SAP HANA

Última actualización: Sep 04, 2026

El origen de datos de SAP HANA permite leer y escribir datos en SAP HANA desde DataWorks.

Versiones compatibles

  • DataBase 2.00.048.06.1623425628

  • DataBase 2.00.055.00.161

Limitaciones

Tipos de campo compatibles

SAP HANA Reader admite los siguientes tipos de datos.

Categoría de tipo

Tipos de datos

Entero

INT, TINYINT, SMALLINT, MEDIUMINT y BIGINT

Punto flotante

FLOAT, DOUBLE y DECIMAL

Cadena

VARCHAR, CHAR, TINYTEXT, TEXT, MEDIUMTEXT y LONGTEXT

Fecha y hora

DATE, DATETIME, TIMESTAMP, TIME y YEAR

Booleano

BIT y BOOL

Binario

TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB y VARBINARY

Importante

Los tipos de datos no listados anteriormente no son compatibles. SAP HANA Reader trata tinyint(1) como un entero.

Agregar un origen de datos

Agregue SAP HANA como origen de datos en DataWorks antes de desarrollar una tarea de sincronización. Para obtener instrucciones, consulte Data source management.

Nota

Las descripciones de los parámetros están disponibles directamente en la consola de DataWorks al agregar el origen de datos.

Nota

Al configurar un origen de datos de SAP HANA, los parámetros de conexión JDBC como socketTimeout no se aceptan en el campo Advanced parameters, que solo admite un subconjunto de propiedades del controlador, como connectTimeout y useSSL. Para establecer estos parámetros, agréguelos al valor de Database name con el formato dbname?key=value. Por ejemplo, establezca Database name en testdb?socketTimeout=60000, lo que genera la URL JDBC jdbc:sap://<host>:<port>/testdb?socketTimeout=60000.

Desarrollar una tarea de sincronización de datos

Configurar una tarea de sincronización sin conexión para una sola tabla

Utilice la interfaz sin código o el editor de código para configurar la tarea:

Para consultar todos los parámetros del script y una demostración del script, consulte Appendix: Script demo and parameter descriptions.

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

En las siguientes secciones se describen los parámetros del script de Reader y Writer para tareas de sincronización por lotes configuradas en el editor de código. Para conocer los requisitos de formato del script, consulte Configure a task in the code editor.

Demostración de script de Reader

Todos los ejemplos de Reader utilizan "stepType": "saphana" para identificar el plugin de SAP HANA.

Tabla única en una base de datos única

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "saphana",
            "parameter": {
                "column": [
                    "id"
                ],
                "connection": [
                    {
                        "querySql": ["select a,b from join1 c join join2 d on c.id = d.id;"],
                        "datasource": "",
                        "table": [
                            "xxx"
                        ]
                    }
                ],
                "where": "",
                "splitPk": "",
                "encoding": "UTF-8"
            },
            "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"
            }
        ]
    }
}

Tablas fragmentadas

La fragmentación permite que SAP HANA Reader lea datos de varias tablas de SAP HANA. Todas las tablas fragmentadas deben compartir el mismo esquema.

{
    "type": "job",
    "version": "1.0",
    "configuration": {
        "reader": {
            "plugin": "saphana",
            "parameter": {
                "connection": [
                    {
                        "table": [
                            "tbl1",
                            "tbl2",
                            "tbl3"
                        ],
                        "datasource": "datasourceName1"
                    },
                    {
                        "table": [
                            "tbl4",
                            "tbl5",
                            "tbl6"
                        ],
                        "datasource": "datasourceName2"
                    }
                ],
                "singleOrMulti": "multi",
                "splitPk": "db_id",
                "column": [
                    "id", "name", "age"
                ],
                "where": "1 < id and id < 100"
            }
        },
        "writer": {}
    }
}

Parámetros del script de Reader

Parámetro

Descripción

Obligatorio

Valor predeterminado

username

El nombre de usuario para la base de datos de SAP HANA.

Sí

Ninguna

password

La contraseña para la base de datos de SAP HANA.

Sí

Ninguna

column

Las columnas que se van a sincronizar. Utilice * para sincronizar todas las columnas. Si el nombre de una columna contiene una barra diagonal (/), enciérrelo entre comillas dobles y escape las comillas con barras invertidas. Por ejemplo, para una columna llamada /abc/efg, establezca el valor en \\"/abc/efg\\".

Sí

Ninguna

table

El nombre de la tabla que se va a sincronizar. Especifique el valor como una matriz, incluso si es una sola tabla.

Sí

Ninguna

jdbcUrl

La URL de Java Database Connectivity (JDBC) para la base de datos de SAP HANA. Ejemplo: jdbc:sap://127.0.0.1:30215?currentschema=TEST. Se pueden agregar parámetros de conexión JDBC adicionales como socketTimeout; por ejemplo, jdbc:sap://127.0.0.1:30215?currentschema=TEST&socketTimeout=60000.

Sí

Ninguna

splitPk

Una columna numérica entera que se utiliza como clave de división para la sincronización simultánea. Si no existe dicha columna, deje este campo en blanco.

No

Ninguna

Demostración de script de Writer

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "saphana",
            "parameter": {
                "postSql": [],
                "datasource": "",
                "column": [
                    "id",
                    "value"
                ],
                "batchSize": 1024,
                "table": "",
                "preSql": [
                    "delete from XXX;"
                ]
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": "0"
        },
        "speed": {
            "throttle": true,
            "concurrent": 1,
            "mbps": "12"
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Parámetros del script de Writer

Parámetro

Descripción

Obligatorio

Valor predeterminado

datasource

El nombre del origen de datos. Debe coincidir con el nombre configurado en el editor de código.

Sí

Ninguna

table

El nombre de la tabla de destino.

Sí

Ninguna

column

Las columnas de destino donde se escribirán los datos, especificadas como una matriz. Ejemplo: ["id", "name", "age"]. Utilice ["*"] para escribir en todas las columnas en orden. Si el nombre de una columna contiene una barra diagonal (/), enciérrelo entre comillas dobles y escape las comillas con barras invertidas. Por ejemplo, para una columna llamada /abc/efg, establezca el valor en \\"/abc/efg\\".

Sí

Ninguna

preSql

Una sentencia SQL que se ejecuta antes de que inicie la tarea de sincronización. Utilícela para borrar datos antiguos antes de la carga. Ejemplo: truncate table tablename. En la interfaz sin código, solo se admite una sentencia. En el editor de código se admiten varias sentencias, pero no se garantiza la atomicidad de la transacción.

No

Ninguna

postSql

Una sentencia SQL que se ejecuta después de que finaliza la tarea de sincronización. En la interfaz sin código, solo se admite una sentencia. En el editor de código se admiten varias sentencias. Ejemplo: ALTER TABLE tablename ADD colname TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP.

No

Ninguna

batchSize

El número de registros confirmados en un solo lote. Un valor mayor reduce los ciclos de red y mejora el rendimiento, pero establecerlo demasiado alto puede provocar errores de memoria insuficiente (OOM).

No

1024