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
A sincronização offline permite a leitura de dados de views.
Esta fonte de dados é compatível com serverless resource groups (recommended) e exclusive resource groups for Data Integration.
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 |
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.
As descrições dos parâmetros estão disponíveis diretamente no console do DataWorks ao adicionar a fonte de dados.
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 |
|
|
Nome de usuário do banco de dados SAP HANA. |
Sim |
Nenhum |
|
|
Senha do banco de dados SAP HANA. |
Sim |
Nenhum |
|
|
Colunas a sincronizar. Use |
Sim |
Nenhum |
|
|
Nome da tabela a sincronizar. Especifique o valor como um array, mesmo para uma única tabela. |
Sim |
Nenhum |
|
|
URL JDBC (Java Database Connectivity) do banco de dados SAP HANA. Exemplo: |
Sim |
Nenhum |
|
|
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 |
|
|
Nome da fonte de dados. Deve corresponder exatamente ao nome configurado no editor de código. |
Sim |
Nenhum |
|
|
Nome da tabela de destino. |
Sim |
Nenhum |
|
|
Colunas de destino para gravação de dados, especificadas como um array. Exemplo: |
Sim |
Nenhum |
|
|
Instrução SQL executada antes do início da tarefa de sincronização. Útil para limpar dados antigos antes do carregamento. Exemplo: |
Não |
Nenhum |
|
|
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: |
Não |
Nenhum |
|
|
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 |