Tous les produits
Search
Centre de documentation

DataWorks:KingbaseES

Dernière mise à jour :Aug 10, 2026

La source de données KingbaseES permet la synchronisation bidirectionnelle des données entre KingbaseES et DataWorks Data Integration. Utilisez-la pour lire les données de KingbaseES dans votre pipeline ou écrire les données traitées vers KingbaseES.

Limites

Types de champs pris en charge

Le tableau suivant répertorie les types de données pris en charge par le lecteur KingbaseES. Les types de champs non répertoriés ne sont pas pris en charge.

Catégorie Types de données Notes
Entier INT, TINYINT, SMALLINT, MEDIUMINT, BIGINT tinyint(1) est traité comme un entier, et non comme un booléen
Virgule flottante FLOAT, DOUBLE, DECIMAL
Chaîne VARCHAR, CHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT
Date et heure DATE, DATETIME, TIMESTAMP, TIME, YEAR
Booléen BIT, BOOL
Binaire TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB, VARBINARY

Ajout d'une source de données

Avant de développer une tâche de synchronisation, ajoutez la source de données KingbaseES dans DataWorks. Pour obtenir des instructions, consultez la rubrique Gestion des sources de données. Les descriptions des paramètres sont disponibles dans la console DataWorks lors de l'ajout de la source de données.

Développement d'une tâche de synchronisation

Configuration d'une tâche de synchronisation hors ligne pour une table unique

Utilisez l'une des méthodes suivantes pour configurer une tâche de synchronisation hors ligne :

Pour connaître tous les paramètres et consulter un exemple de script pour l'éditeur de code, reportez-vous à la section Annexe : Démonstration de script et descriptions des paramètres.

Annexe : Démonstration de script et descriptions des paramètres

Pour configurer une tâche de synchronisation par lots à l'aide de l'éditeur de code, définissez les paramètres requis dans le script en respectant le format de script unifié. Pour plus d'informations, consultez la rubrique Configuration d'une tâche dans l'éditeur de code.

Exemple de script du lecteur

Base de données unique et table unique

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "kingbasees",
            "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"
            }
        ]
    }
}

Bases de données et tables fragmentées

Lors de l'utilisation de tables fragmentées, toutes les tables KingbaseES sélectionnées doivent avoir le même schéma.
{
    "type": "job",
    "version": "1.0",
    "configuration": {
        "reader": {
            "plugin": "kingbasees",
            "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 lecteur

Paramètre Description Obligatoire Valeur par défaut
username Nom d'utilisateur pour la connexion à KingbaseES. Non Aucune
password Mot de passe pour la connexion à KingbaseES. Non Aucune
column Champs à synchroniser. Utilisez * pour synchroniser toutes les colonnes. Non Aucune
table Nom de la table à synchroniser. Utilisez le format de tableau même pour une table unique : ["tablename"]. Non Aucune
jdbcUrl URL JDBC (Java Database Connectivity) pour la connexion à KingbaseES. Exemple : jdbc:kingbase8://127.0.0.1:30215?currentschema=TEST. Non Aucune
querySql Requête SQL personnalisée utilisée pour filtrer les données. Lorsqu'elle est spécifiée, le lecteur ignore les paramètres table, column et where et utilise directement cette requête. Non Aucune
where Condition de filtre appliquée à la table. Ignorée lorsque le paramètre querySql est spécifié. Non Aucune
splitPk Champ entier numérique dans la table KingbaseES utilisé comme clé de fragmentation pour permettre une synchronisation à haute concurrence. Laissez ce champ vide si aucun champ de ce type n'existe. Non Aucune
encoding Format d'encodage des données. Non UTF-8

Exemple de script de l'outil d'écriture

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "kingbasees",
            "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 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 de la source de données ajoutée dans DataWorks. Oui Aucune
table Nom de la table de destination. Oui Aucune
column Champs de la table de destination vers lesquels écrire les données. Séparez plusieurs champs par des virgules. Exemple : ["id", "name", "age"]. Pour écrire dans toutes les colonnes dans l'ordre, utilisez ["*"]. Si un nom de champ contient une barre oblique (/), échappez-le : \"/field/name\". Oui Aucune
preSql Instruction SQL à exécuter avant le démarrage de la tâche de synchronisation. Utilisez cette option pour préparer la table de destination, par exemple : truncate table tablename. L'interface sans code prend en charge une seule instruction ; l'éditeur de code prend en charge plusieurs instructions. Les instructions multiples ne prennent pas en charge l'atomicité des transactions. Non Aucune
postSql Instruction SQL à exécuter après la fin de la tâche de synchronisation. Par exemple : alter table tablename add colname timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP. L'interface sans code prend en charge une seule instruction ; l'éditeur de code prend en charge plusieurs instructions. Non Aucune
batchSize Nombre d'enregistrements à soumettre en un seul lot. Des valeurs plus élevées réduisent les allers-retours réseau et améliorent le débit, mais des valeurs trop importantes peuvent provoquer des erreurs de dépassement de mémoire (OOM). Non 1024