Tous les produits
Search
Centre de documentation

DataWorks:SAP HANA

Dernière mise à jour :Aug 20, 2026

La source de données SAP HANA vous permet de lire et d'écrire des données depuis et vers SAP HANA dans DataWorks.

Versions prises en charge

  • DataBase 2.00.048.06.1623425628

  • DataBase 2.00.055.00.161

Limites

Types de champs pris en charge

Le lecteur SAP HANA prend en charge les types de données suivants.

Catégorie de type Types de données
Entier INT, TINYINT, SMALLINT, MEDIUMINT et BIGINT
Virgule flottante FLOAT, DOUBLE et DECIMAL
Chaîne VARCHAR, CHAR, TINYTEXT, TEXT, MEDIUMTEXT et LONGTEXT
Date et heure DATE, DATETIME, TIMESTAMP, TIME et YEAR
Booléen BIT et BOOL
Binaire TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB et VARBINARY
Important

Les types de données non répertoriés ci-dessus ne sont pas pris en charge. Le lecteur SAP HANA traite le type tinyint(1) comme un entier.

Ajouter une source de données

Ajoutez SAP HANA en tant que source de données dans DataWorks avant de développer une tâche de synchronisation. Pour obtenir des instructions, consultez la rubrique Gestion des sources de données.

Remarque

Les descriptions des paramètres sont disponibles directement dans la console DataWorks lorsque vous ajoutez la source de données.

Remarque

Lorsque vous configurez une source de données SAP HANA, les paramètres de connexion JDBC tels que socketTimeout ne sont pas acceptés dans le champ Advanced parameters, qui ne prend en charge qu'un sous-ensemble de propriétés du pilote, telles que connectTimeout et useSSL. Pour définir ces paramètres, ajoutez-les à la valeur du champ Database name sous la forme dbname?key=value. Par exemple, définissez Database name sur testdb?socketTimeout=60000, ce qui génère l'URL JDBC suivante : jdbc:sap://<host>:<port>/testdb?socketTimeout=60000.

Développer une tâche de synchronisation des données

Configurer une tâche de synchronisation hors ligne pour une seule table

Utilisez l'interface utilisateur sans code ou l'éditeur de code pour configurer la tâche :

Pour connaître tous les paramètres de script et consulter un exemple de script, reportez-vous à la section Annexe : Exemple de script et description des paramètres.

Annexe : Exemple de script et description des paramètres

Les sections suivantes décrivent les paramètres de script du lecteur (Reader) et de l'outil d'écriture (Writer) pour les tâches de synchronisation par lots configurées dans l'éditeur de code. Pour connaître les exigences relatives au format du script, consultez la rubrique Configurer une tâche dans l'éditeur de code.

Exemple de script du lecteur

Tous les exemples de lecteur utilisent "stepType": "saphana" pour identifier le plug-in SAP HANA.

Table unique dans une base de données unique

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

Tables fragmentées

Le fractionnement permet au lecteur SAP HANA de lire les données provenant de plusieurs tables SAP HANA. Toutes les tables fragmentées doivent partager le même schéma.

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

Paramètres du script du lecteur

Paramètre Description Obligatoire Valeur par défaut
username Nom d'utilisateur de la base de données SAP HANA. Oui Aucune
password Mot de passe de la base de données SAP HANA. Oui Aucune
column Colonnes à synchroniser. Utilisez * pour synchroniser toutes les colonnes. Si un nom de colonne contient une barre oblique (/), placez-le entre guillemets doubles et échappez les guillemets avec des barres obliques inverses. Par exemple, pour une colonne nommée /abc/efg, définissez la valeur sur \\"/abc/efg\\". Oui Aucune
table Nom de la table à synchroniser. Spécifiez la valeur sous forme de tableau, même pour une seule table. Oui Aucune
jdbcUrl URL Java Database Connectivity (JDBC) de la base de données SAP HANA. Exemple : jdbc:sap://127.0.0.1:30215?currentschema=TEST. Des paramètres de connexion JDBC supplémentaires, tels que socketTimeout, peuvent être ajoutés, par exemple : jdbc:sap://127.0.0.1:30215?currentschema=TEST&socketTimeout=60000. Oui Aucune
splitPk Colonne entière numérique utilisée comme clé de fractionnement pour la synchronisation simultanée. Si aucune colonne de ce type n'existe, laissez ce champ vide. Non Aucune

Exemple de script de l'outil d'écriture

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

Paramètres du script de l'outil d'écriture

Paramètre Description Obligatoire Valeur par défaut
datasource Nom de la source de données. Doit correspondre au nom configuré dans l'éditeur de code. Oui Aucune
table Nom de la table de destination. Oui Aucune
column Colonnes de destination vers lesquelles écrire les données, spécifiées sous forme de tableau. Exemple : ["id", "name", "age"]. Utilisez ["*"] pour écrire dans toutes les colonnes dans l'ordre. Si un nom de colonne contient une barre oblique (/), placez-le entre guillemets doubles et échappez les guillemets avec des barres obliques inverses. Par exemple, pour une colonne nommée /abc/efg, définissez la valeur sur \\"/abc/efg\\". Oui Aucune
preSql Instruction SQL à exécuter avant le démarrage de la tâche de synchronisation. Utilisez cette option pour effacer les anciennes données avant le chargement. Exemple : truncate table tablename. Dans l'interface utilisateur sans code, une seule instruction est prise en charge. Dans l'éditeur de code, plusieurs instructions sont prises en charge, mais l'atomicité des transactions n'est pas prise en charge. Non Aucune
postSql Instruction SQL à exécuter une fois la tâche de synchronisation terminée. Dans l'interface utilisateur sans code, une seule instruction est prise en charge. Dans l'éditeur de code, plusieurs instructions sont prises en charge. Exemple : ALTER TABLE tablename ADD colname TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP. Non Aucune
batchSize Nombre d'enregistrements validés en un seul lot. Une valeur plus élevée réduit les allers-retours réseau et améliore le débit, mais une valeur trop élevée peut provoquer des erreurs de dépassement de mémoire (OOM). Non 1024