Data Integration de DataWorks prend en charge DM (Dameng) comme source et destination pour la synchronisation par lots hors ligne. Utilisez DM Reader pour extraire les données des bases de données DM et DM Writer pour y charger les données.
Fonctionnalités
|
Fonctionnalité |
DM Reader |
DM Writer |
|
Synchronisation hors ligne (par lots) |
Oui |
Oui |
|
Lecture à partir de vues |
Oui |
— |
|
Élagage des colonnes |
Oui |
— |
|
Réorganisation des colonnes |
Oui |
— |
|
Lecture parallèle ( |
Oui (colonnes entières uniquement) |
— |
|
Synchronisation incrémentielle ( |
Oui |
— |
|
Exécution SQL préalable |
Oui |
Oui |
|
Exécution SQL postérieure |
— |
Oui |
|
Groupes de ressources Serverless |
Oui |
Oui |
|
Groupes de ressources exclusifs pour Data Integration |
Oui |
Oui |
Types de champs pris en charge
DM Reader et DM Writer prennent en charge la plupart des types de données courants des bases de données relationnelles. Le tableau suivant répertorie les types de données DM que DM Reader peut convertir. Les types non pris en charge provoquent une erreur de lecture ; vérifiez votre schéma avant de configurer une tâche de synchronisation.
|
Catégorie |
Types de données DM |
|
Entier |
INT, TINYINT, SMALLINT, BIGINT |
|
Virgule flottante |
REAL, FLOAT, DOUBLE, NUMBER, DECIMAL |
|
Chaîne |
CHAR, VARCHAR, LONGVARCHAR, TEXT |
|
Date et heure |
DATE, DATETIME, TIMESTAMP, TIME |
|
Booléen |
BIT |
|
Binaire |
BINARY, VARBINARY, BLOB |
Configurer une tâche de synchronisation
Synchronisation hors ligne d'une table unique
Configurez une tâche à l'aide de l'interface utilisateur sans code ou de l'éditeur de code :
Interface utilisateur sans code : Configurer une tâche dans l'interface utilisateur sans code
Éditeur de code : Configurer une tâche dans l'éditeur de code
Pour la référence complète du script et les descriptions des paramètres, consultez Référence du script.
Synchronisation hors ligne de la base de données entière
Consultez Configuration de la synchronisation par lots de bases de données.
Référence du script
Lors de la configuration d'une tâche de synchronisation par lots dans l'éditeur de code, utilisez le format de script unifié. Les sections suivantes détaillent les paramètres spécifiques à DM pour Reader et Writer.
Reader
Exemple de script
{
"type": "job",
"version": "2.0",
"order": {
"hops": [
{ "from": "Reader", "to": "Writer" }
]
},
"setting": {
"errorLimit": { "record": "0" },
"speed": {
"throttle": true,
"concurrent": 1,
"mbps": "12"
}
},
"steps": [
{
"category": "reader",
"name": "Reader",
"stepType": "dm",
"parameter": {
"datasource": "dm_datasource",
"table": "table",
"column": ["*"],
"preSql": ["delete from XXX;"],
"fetchSize": 2048
}
},
{
"category": "writer",
"name": "Writer",
"stepType": "stream",
"parameter": {}
}
]
}
Paramètres de Reader
|
Paramètre |
Obligatoire |
Valeur par défaut |
Description |
|
|
Oui |
— |
Nom de la source de données DM. Consultez Configurer une source de données DM. |
|
|
Oui |
— |
Table à partir de laquelle lire les données. |
|
|
Oui |
— |
Colonnes à synchroniser, sous forme de tableau JSON. Utilisez |
|
|
Non |
Vide |
Colonne utilisée pour diviser les données afin de permettre des lectures parallèles. Définissez ce paramètre sur la clé primaire pour une distribution uniforme et pour éviter les points chauds de données. Seules les colonnes entières sont prises en charge ; les types virgule flottante, chaîne, date et autres provoquent une erreur. Si ce paramètre n'est pas défini, la table est lue avec un seul canal. |
|
|
Non |
— |
Condition de filtre SQL ajoutée à la requête, par exemple |
|
|
Non |
— |
Requête SQL personnalisée, par exemple |
|
|
Non |
1 024 |
Nombre de lignes récupérées par lot. Des valeurs plus élevées réduisent les allers-retours réseau et améliorent le débit. Les valeurs supérieures à 2 048 peuvent provoquer une erreur de mémoire insuffisante (OOM). |
|
|
Non |
— |
Instruction SQL exécutée avant le démarrage de la tâche de synchronisation. Une seule instruction est prise en charge. |
Writer
Exemple de script
{
"type": "job",
"version": "2.0",
"order": {
"hops": [
{ "from": "Reader", "to": "Writer" }
]
},
"setting": {
"errorLimit": { "record": "" },
"speed": {
"throttle": true,
"concurrent": 2,
"mbps": "12"
}
},
"steps": [
{
"category": "reader",
"name": "Reader",
"stepType": "oracle",
"parameter": {
"datasource": "aaa",
"column": ["PROD_ID", "name"],
"where": "",
"splitPk": "",
"encoding": "UTF-8",
"table": "PENGXI.SALES"
}
},
{
"category": "writer",
"name": "Writer",
"stepType": "dm",
"parameter": {
"datasource": "dm_datasource",
"table": "table",
"column": ["id", "name"],
"preSql": ["delete from XXX;"]
}
}
]
}
Paramètres de Writer
|
Paramètre |
Obligatoire |
Valeur par défaut |
Description |
|
|
Oui |
— |
Nom de la source de données DM. Consultez Configurer une source de données DM. |
|
|
Oui |
— |
Table de destination. Si le schéma de la table diffère du nom d'utilisateur dans la configuration de la source de données, utilisez le format |
|
|
Oui |
— |
Colonnes de destination vers lesquelles écrire, séparées par des virgules. N'utilisez pas les paramètres de colonne par défaut. |
|
|
Non |
— |
Instruction SQL exécutée avant le démarrage de la tâche de synchronisation, par exemple pour purger les anciennes données. Une seule instruction est prise en charge ; plusieurs instructions désactivent la prise en charge des transactions. |
|
|
Non |
— |
Instruction SQL exécutée après la fin de la tâche de synchronisation, par exemple pour ajouter un horodatage. Une seule instruction est prise en charge ; plusieurs instructions désactivent la prise en charge des transactions. |
|
|
Non |
1 024 |
Nombre de lignes écrites par lot. Des valeurs plus élevées réduisent les interactions réseau et améliorent le débit. Des valeurs trop élevées peuvent provoquer une erreur OOM. |