Todos os produtos
Search
Central de documentação

DataWorks:SAP HANA

Última atualização: Aug 20, 2026

A fonte de dados SAP HANA permite ler e gravar dados no SAP HANA no DataWorks.

Versões compatíveis

  • DataBase 2.00.048.06.1623425628

  • DataBase 2.00.055.00.161

Limitações

Tipos de campo compatíveis

O SAP HANA Reader aceita os seguintes tipos de dados.

Categoria de tipo

Tipos de dados

Inteiro

INT, TINYINT, SMALLINT, MEDIUMINT e BIGINT

Ponto flutuante

FLOAT, DOUBLE e DECIMAL

String

VARCHAR, CHAR, TINYTEXT, TEXT, MEDIUMTEXT e LONGTEXT

Data e hora

DATE, DATETIME, TIMESTAMP, TIME e YEAR

Booleano

BIT e BOOL

Binário

TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB e VARBINARY

Importante

Os tipos de dados não listados acima não são compatíveis. O SAP HANA Reader trata tinyint(1) como um número inteiro.

Adicionar uma fonte de dados

Adicione o SAP HANA como fonte de dados no DataWorks antes de desenvolver uma tarefa de sincronização. Para obter instruções, consulte Data source management.

Nota

As descrições dos parâmetros estão disponíveis diretamente no console do DataWorks ao adicionar a fonte de dados.

Nota

Ao configurar uma fonte de dados SAP HANA, parâmetros de conexão JDBC como socketTimeout não são aceitos no campo Advanced parameters, que aceita apenas um subconjunto de propriedades do driver, como connectTimeout e useSSL. Para definir esses parâmetros, anexe-os ao valor de Database name no formato dbname?key=value. Por exemplo, defina Database name como testdb?socketTimeout=60000, o que gera a URL JDBC jdbc:sap://<host>:<port>/testdb?socketTimeout=60000.

Desenvolver uma tarefa de sincronização de dados

Configurar uma tarefa de sincronização offline para uma única tabela

Use a interface visual sem código ou o editor de código para configurar a tarefa:

Para consultar todos os parâmetros de script e uma demonstração, veja Appendix: Script demo and parameter descriptions.

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

As seções a seguir descrevem os parâmetros de script do Reader e do Writer para tarefas de sincronização em lote configuradas no editor de código. Para requisitos de formato de script, consulte Configure a task in the code editor.

Demonstração de script do Reader

Todos os exemplos do Reader usam "stepType": "saphana" para identificar o plugin do SAP HANA.

Tabela única em um único banco de dados

{
    "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"
            }
        ]
    }
}

Tabelas fragmentadas

O sharding permite que o SAP HANA Reader leia dados de várias tabelas do SAP HANA. Todas as tabelas fragmentadas devem compartilhar o mesmo schema.

{
    "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 de script do Reader

Parâmetro

Descrição

Obrigatório

Valor padrão

username

Nome de usuário do banco de dados SAP HANA.

Sim

Nenhum

password

Senha do banco de dados SAP HANA.

Sim

Nenhum

column

Colunas a sincronizar. Use * para sincronizar todas as colunas. Se o nome da coluna contiver uma barra (/), coloque-o entre aspas duplas e escape as aspas com barras invertidas. Por exemplo, para uma coluna chamada /abc/efg, defina o valor como \\"/abc/efg\\".

Sim

Nenhum

table

Nome da tabela a sincronizar. Especifique o valor como um array, mesmo para uma única tabela.

Sim

Nenhum

jdbcUrl

URL JDBC (Java Database Connectivity) do banco de dados SAP HANA. Exemplo: jdbc:sap://127.0.0.1:30215?currentschema=TEST. É possível anexar parâmetros adicionais de conexão JDBC, como socketTimeout. Exemplo: jdbc:sap://127.0.0.1:30215?currentschema=TEST&socketTimeout=60000.

Sim

Nenhum

splitPk

Coluna numérica inteira usada como chave de divisão para sincronização simultânea. Se não houver essa coluna, deixe este campo em branco.

Não

Nenhum

Demonstração de script do 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 de script do Writer

Parâmetro

Descrição

Obrigatório

Valor padrão

datasource

Nome da fonte de dados. Deve corresponder exatamente ao nome configurado no editor de código.

Sim

Nenhum

table

Nome da tabela de destino.

Sim

Nenhum

column

Colunas de destino para gravação de dados, especificadas como um array. Exemplo: ["id", "name", "age"]. Use ["*"] para gravar em todas as colunas sequencialmente. Se o nome da coluna contiver uma barra (/), coloque-o entre aspas duplas e escape as aspas com barras invertidas. Por exemplo, para uma coluna chamada /abc/efg, defina o valor como \\"/abc/efg\\".

Sim

Nenhum

preSql

Instrução SQL executada antes do início da tarefa de sincronização. Útil para limpar dados antigos antes do carregamento. Exemplo: truncate table tablename. A interface visual sem código aceita apenas uma instrução. O editor de código permite múltiplas instruções, mas sem atomicidade transacional.

Não

Nenhum

postSql

Instrução SQL executada após a conclusão da tarefa de sincronização. A interface visual sem código aceita apenas uma instrução, enquanto o editor de código permite várias. Exemplo: ALTER TABLE tablename ADD colname TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP.

Não

Nenhum

batchSize

Quantidade de registros confirmados em um único lote. Valores maiores reduzem as idas e vindas na rede e aumentam o throughput, mas valores excessivamente altos podem causar erros de falta de memória (OOM).

Não

1024