Data Integration de DataWorks prend en charge des canaux de données bidirectionnels pour Lindorm via les plug-ins Lindorm Reader et Lindorm Writer. Cette rubrique décrit les capacités de lecture et d'écriture des données Lindorm fournies par DataWorks.
Remarques sur l'utilisation
Le moteur de table large prend en charge les groupes de ressources serverless (recommandés) et les groupes de ressources exclusifs pour Data Integration.
Le moteur de calcul prend uniquement en charge les groupes de ressources serverless.
Lindorm est une base de données multimodèle. Pour plus de détails, consultez la documentation Lindorm. DataWorks ne prend actuellement en charge que le moteur de table large et le moteur de calcul.
Types de colonnes pris en charge
Lindorm Reader et Lindorm Writer prennent en charge la plupart des types Lindorm, à l'exception de quelques-uns. Vérifiez attentivement vos types de données.
Le tableau suivant indique comment Lindorm Reader et Lindorm Writer mappent les types de données Lindorm.
|**Catégorie**
|
**Types de données**
| | --- | --- | |
Entier
|
INT, LONG, SHORT
| |
À virgule flottante
|
DOUBLE, FLOAT, DOUBLE
| |
Chaîne
|
STRING
| |
Date et heure
|
DATE
| |
Booléen
|
BOOLEAN
| |
Binaire
|
BINARYSTRING
|
Développer une tâche de synchronisation des données
Pour connaître le point d'entrée et la procédure de configuration d'une tâche de synchronisation, consultez les guides de configuration suivants.
Synchronisation par lots pour une seule table
Sources prises en charge : tous les types de sources de données pris en charge par Data Integration
-
Guide de configuration : Tâches de synchronisation par lots pour une seule table
Pour la liste complète des paramètres en mode script et un exemple de script, consultez Annexe : Exemple de script et description des paramètres .
Synchronisation en temps réel pour une seule table
Sources prises en charge : Kafka, LogHub, Hologres
Guide de configuration : Synchronisation en temps réel pour une seule table
Synchronisation en temps réel pour une base de données entière
Sources prises en charge : PostgreSQL
Guide de configuration : Configurer des tâches de synchronisation en temps réel pour une base de données entière
Annexe : Exemple de script et description des paramètres
Configurer une tâche de synchronisation par lots à l'aide de l'éditeur de code
Pour configurer une tâche de synchronisation par lots à l'aide de l'éditeur de code, vous devez définir les paramètres associés dans le script conformément aux exigences de format de script unifié. Pour plus d'informations, consultez la section Configuration en mode script. Les informations suivantes décrivent les paramètres à configurer pour les sources de données lors de la configuration d'une tâche de synchronisation par lots à l'aide de l'éditeur de code.
Exemple de script Reader
-
Configurez une tâche qui extrait les données d'une table SQL Lindorm du moteur de table large vers le stockage local.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "lindorm", "parameter": { "mode": "FixedColumn", "caching": 128, "column": [ "id", "value" ], "envType": 1, "datasource": "lindorm", "tableMode": "tableService", "table": "lindorm_table" }, "name": "lindormreader", "category": "reader" }, { "stepType": "mysql", "parameter": { "postSql": [], "datasource": "lindorm", "session": [], "envType": 1, "column": [ "id", "value" ], "socketTimeout": 3600000, "writeMode": "insert", "batchSize": 1024, "encoding": "UTF-8", "table": "", "preSql": [] }, "name": "Writer", "category": "writer" } ], "setting": { "jvmOption": "", "executeMode": null, "errorLimit": { "record": "0" }, "speed": { //Set the transmission speed in byte/s. DataX will try to reach this speed but not exceed it. "byte": 1048576 } //Error limit "errorLimit": { //Upper limit of error records. An error is reported when exceeded. "record": 0, //Upper limit of error record percentage. 1.0 means 100%, 0.02 means 2% "percentage": 0.02 } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } } -
Configurez une tâche qui extrait les données d'une table Lindorm HBaseLike (WideColumn) du moteur de table large vers le stockage local.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "lindorm", "parameter": { "mode": "FixedColumn", "column": [ "STRING|rowkey", "INT|f:a" ], "envType": 1, "datasource": "lindorm", "tableMode": "wideColumn", "table":"lindorm_table" }, "name": "lindormreader", "category": "reader" }, { "stepType": "mysql", "parameter": { "postSql": [], "datasource": "_IDB.TAOBAO", "session": [], "envType": 1, "column": [ "id", "value" ], "socketTimeout": 3600000, "guid": "", "writeMode": "insert", "batchSize": 1024, "encoding": "UTF-8", "table": "", "preSql": [] }, "name": "Writer", "category": "writer" } ], "setting": { "jvmOption": "", "executeMode": null, "errorLimit": { "record": "0" }, "speed": { //Set the transmission speed in byte/s. DataX will try to reach this speed but not exceed it. "byte": 1048576 } //Error limit "errorLimit": { //Upper limit of error records. An error is reported when exceeded. "record": 0, //Upper limit of error record percentage. 1.0 means 100%, 0.02 means 2%. "percentage": 0.02 } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } } -
Configurez une tâche qui extrait les données d'une table du moteur de calcul vers le stockage local.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "lindorm", "parameter": { "datasource": "lindorm_datasource", "column": [ "id", "value" ], "tableComment": "", "where": "", "session": [], "splitPk": "id", "table": "auto_ob_149912212480" }, "name": "lindormreader", "category": "reader" }, { "stepType": "mysql", "parameter": { "postSql": [], "datasource": "_IDB.TAOBAO", "session": [], "envType": 1, "column": [ "id", "value" ], "socketTimeout": 3600000, "guid": "", "writeMode": "insert", "batchSize": 1024, "encoding": "UTF-8", "table": "", "preSql": [] }, "name": "Writer", "category": "writer" } ], "setting": { "jvmOption": "", "executeMode": null, "errorLimit": { "record": "0" }, "speed": { //Set the transmission speed in byte/s. DataX will try to reach this speed but not exceed it. "byte": 1048576 } //Error limit "errorLimit": { //Upper limit of error records. An error is reported when exceeded. "record": 0, //Upper limit of error record percentage. 1.0 means 100%, 0.02 means 2%. "percentage": 0.02 } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }
Paramètres du script Reader
|
Paramètre |
Description |
Obligatoire |
Valeur par défaut |
||||||||||||||||||||
|
mode |
Spécifique au moteur de table large. Spécifie le mode de lecture des données : mode colonne fixe FixedColumn ou mode colonne dynamique DynamicColumn. |
Oui |
FixedColumn |
||||||||||||||||||||
|
tableMode |
Spécifique au moteur de table large. Prend en charge le mode table SQL standard table et le mode colonne large wideColumn. La valeur par défaut est table. Vous pouvez laisser ce champ vide si vous utilisez le mode table. |
Non |
Vide par défaut |
||||||||||||||||||||
|
table |
La table Lindorm à lire. Les noms de tables Lindorm sont sensibles à la casse. |
Oui |
Aucune |
||||||||||||||||||||
|
encoding |
Spécifique au moteur de table large. Le format d'encodage, soit UTF-8, soit GBK. Généralement utilisé pour convertir les valeurs byte[] de Lindorm stockées sous forme binaire en String. |
Non |
UTF-8 |
||||||||||||||||||||
|
caching |
Spécifique au moteur de table large. Le nombre d'enregistrements récupérés en un seul lot. Cette valeur réduit considérablement le nombre d'allers-retours réseau entre le système de synchronisation des données et Lindorm et améliore le débit global. Une valeur trop élevée peut surcharger le serveur Lindorm ou provoquer des erreurs OOM lors du processus de synchronisation des données. |
Non |
100 |
||||||||||||||||||||
|
selects |
Spécifique au moteur de table large. Le type de table actuel ne prend pas en charge le fractionnement automatique des shards et s'exécute avec une seule concurrence par défaut. Vous devez donc configurer manuellement le paramètre selects pour fragmenter les données. Par exemple :
Limites :
|
Non |
Aucune |
||||||||||||||||||||
|
session |
Spécifique au moteur de calcul. Paramètres de tâche au niveau de la session, par exemple, |
Non |
Aucune |
||||||||||||||||||||
|
splitPk |
Spécifique au moteur de calcul. La clé de fractionnement, utilisée uniquement lors de la lecture des tables du moteur de calcul. Si vous spécifiez splitPk, la colonne qu'elle représente est utilisée pour fragmenter les données, et la synchronisation des données démarre des tâches simultanées pour améliorer l'efficacité.
|
Non |
Aucune |
||||||||||||||||||||
|
columns |
La liste des colonnes à lire. L'élagage des colonnes et le réordonnancement des colonnes sont pris en charge. L'élagage des colonnes vous permet d'exporter uniquement les colonnes sélectionnées ; le réordonnancement des colonnes vous permet d'exporter les colonnes dans un ordre différent du schéma de la table.
|
Oui |
Aucune |
Exemple de script Writer
-
Configurez une tâche qui écrit les données d'une source MySQL vers une table SQL Lindorm du moteur de table large.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "mysql", "parameter": { "checkSlave": true, "datasource": " ", "envType": 1, "column": [ "id", "value" ], "socketTimeout": 3600000, "masterSlave": "slave", "connection": [ { "datasource": " ", "table": [] } ], "where": "", "splitPk": "", "encoding": "UTF-8", "print": true }, "name": "mysqlReader", "category": "reader" }, { "stepType": "lindorm", "parameter": { "nullMode": "skip", "datasource": "lindorm_datasource", "envType": 1, "column": [ "id", "value" ], "dynamicColumn": "false", "table": "lindorm_table", "encoding": "utf8" }, "name": "Writer", "category": "writer" } ], "setting": { "jvmOption": "", "executeMode": null, "speed": { //Set the transmission speed in byte/s. DataX will try to reach this speed but not exceed it. "byte": 1048576 }, //Error limit "errorLimit": { //Upper limit of error records. An error is reported when exceeded. "record": 0, //Upper limit of error record percentage. 1.0 means 100%, 0.02 means 2%. "percentage": 0.02 } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } } -
Configurez une tâche qui écrit les données d'une source MySQL vers une table Lindorm HBaseLike (WideColumn) du moteur de table large.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "mysql", "parameter": { "envType": 0, "datasource": " ", "column": [ "id", "value" ], "connection": [ { "datasource": " ", "table": [] } ], "where": "", "splitPk": "", "encoding": "UTF-8" }, "name": "Reader", "category": "reader" }, { "stepType": "lindorm", "parameter": { "datasource": "lindorm_datasource", "table": "xxxxxx", "encoding": "utf8", "nullMode": "skip", "dynamicColumn": "false", "caching": 128, "column": [ //Mapped from the source in field order "ROW|STRING", //Row key, fixed configuration. Maps the first field of the source to the row key. For example, in this sample, id is mapped to the row key. "cf:name|STRING" //cf indicates the column family name and can be modified. name indicates the destination column name and can be modified. ] }, "name":"Writer", "category":"writer" } ], "setting": { "jvmOption": "", "errorLimit": { "record": "0" }, "speed": { "concurrent": 3, "throttle": false } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } } -
Configurez une tâche qui écrit les données d'une source MySQL vers une table du moteur de calcul.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "mysql", "parameter": { "envType": 0, "datasource": " ", "column": [ "id", "value" ], "connection": [ { "datasource": " ", "table": [] } ], "where": "", "splitPk": "", "encoding": "UTF-8" }, "name": "Reader", "category": "reader" }, { "stepType": "lindorm", "parameter": { "datasource": "lindorm_datasource", "table": "xxxxxx", "column": [ "id", "value" ], "formatType": "ICEBERG" }, "name":"Writer", "category":"writer" } ], "setting": { "jvmOption": "", "errorLimit": { "record": "0" }, "speed": { "concurrent": 3, "throttle": false } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }
Paramètres du script Writer
|
Paramètre |
Description |
Obligatoire |
Valeur par défaut |
|
table |
La table Lindorm vers laquelle écrire. Les noms de tables Lindorm sont sensibles à la casse. |
Oui |
Aucune |
|
encoding |
Spécifique au moteur de table large. Le format d'encodage, soit UTF-8, soit GBK. Généralement utilisé pour convertir les valeurs byte[] de Lindorm stockées sous forme binaire en String. |
Non |
UTF-8 |
|
columns |
La liste des colonnes à écrire. L'élagage des colonnes et le réordonnancement des colonnes sont pris en charge. L'élagage des colonnes vous permet d'exporter uniquement les colonnes sélectionnées ; le réordonnancement des colonnes vous permet d'exporter les colonnes dans un ordre différent du schéma de la table.
|
Oui |
Aucune |
|
nullMode |
Spécifique au moteur de table large. Spécifie comment Lindorm Writer gère les valeurs nulles lues depuis la source. Configurez le paramètre nullMode avec différentes valeurs pour contrôler le comportement.
|
Non |
EMPTY_BYTES |
|
formatType |
Spécifique au moteur de calcul. Le format de la table cible. Valeurs valides :
|
Non |
Aucune |