Pour configurer une tâche de synchronisation par lots à l'aide de l'éditeur de code, vous devez définir les paramètres appropriés dans le script en respectant le format unifié requis. Pour plus d'informations, consultez Configuration en mode script. Les informations suivantes détaillent les paramètres à configurer pour les sources de données lors de la configuration d'une tâche de synchronisation par lots via l'éditeur de code.
Exemples de scripts Reader
Configuration en mode ligne pour la lecture de tables à colonnes larges
{ "type":"job", "version":"2.0",// The version number. "steps":[ { "stepType":"ots",// The plugin name. "parameter":{ "datasource":"",// The data source. "newVersion":"true",// Use the new version of otsreader. "mode": "normal",// Read data in row mode. "isTimeseriesTable":"false",// Configure this table as a wide-column table (not a time-series table). "column":[// The columns. { "name":"column1"// The column name. }, { "name":"column2" }, { "name":"column3" }, { "name":"column4" }, { "name":"column5" } ], "range":{ "split":[ { "type":"STRING", "value":"beginValue" }, { "type":"STRING", "value":"splitPoint1" }, { "type":"STRING", "value":"splitPoint2" }, { "type":"STRING", "value":"splitPoint3" }, { "type":"STRING", "value":"endValue" } ], "end":[ { "type":"STRING", "value":"endValue" }, { "type":"INT", "value":"100" }, { "type":"INF_MAX" }, { "type":"INF_MAX" } ], "begin":[ { "type":"STRING", "value":"beginValue" }, { "type":"INT", "value":"0" }, { "type":"INF_MIN" }, { "type":"INF_MIN" } ] }, "table":""// The table name. }, "name":"Reader", "category":"reader" }, { "stepType":"stream", "parameter":{}, "name":"Writer", "category":"writer" } ], "setting":{ "errorLimit":{ "record":"0"// The error count. }, "speed":{ "throttle":true,// false indicates that throttling is disabled and the throttling speed below does not take effect. true indicates that throttling is enabled. "concurrent":1 // The concurrency. "mbps":"12"// The throttling speed. } }, "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] } }
Configuration en mode ligne pour la lecture de tables de séries temporelles
{ "type":"job", "version":"2.0",// The version number. "steps":[ { "stepType":"ots",// The plugin name. "parameter":{ "datasource":"",// The data source. "table": "",// The table name. // mode must be set to normal for reading time-series data. "mode": "normal", // newVersion must be set to true for reading time-series data. "newVersion": "true", // Configure this table as a time-series table. "isTimeseriesTable":"true", // measurementName: The measurement name of the time-series data to read. This parameter is optional. If left empty, data from the entire table is read. "measurementName":"measurement_1", "column": [ { "name": "_m_name" }, { "name": "tagA", "is_timeseries_tag":"true" }, { "name": "double_0", "type":"DOUBLE" }, { "name": "string_0", "type":"STRING" }, { "name": "long_0", "type":"INT" }, { "name": "binary_0", "type":"BINARY" }, { "name": "bool_0", "type":"BOOL" }, { "type":"STRING", "value":"testString" } ] }, "name":"Reader", "category":"reader" }, { "stepType":"stream", "parameter":{}, "name":"Writer", "category":"writer" } ], "setting":{ "errorLimit":{ "record":"0"// The error count. }, "speed":{ "throttle":true,// false indicates that throttling is disabled and the throttling speed below does not take effect. true indicates that throttling is enabled. "concurrent":1 // The concurrency. "mbps":"12"// The throttling speed. } }, "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] } }
Configuration en mode colonne pour la lecture de tables à colonnes larges
{ "type":"job", "version":"2.0",// The version number. "steps":[ { "stepType":"ots",// The plugin name. "parameter":{ "datasource":"",// The data source. "table":"",// The table name. "newVersion":"true",// The new version of otsreader. "mode": "multiversion",// The multi-version mode. "column":[// Configure the column names to export (must be non-primary key columns). {"name":"mobile"}, {"name":"name"}, {"name":"age"}, {"name":"salary"}, {"name":"marry"} ], "range":{// The export range. "begin":[ {"type":"INF_MIN"}, {"type":"INF_MAX"} ], "end":[ {"type":"INF_MAX"}, {"type":"INF_MIN"} ], "split":[ ] }, }, "name":"Reader", "category":"reader" }, { "stepType":"stream", "parameter":{}, "name":"Writer", "category":"writer" } ], "setting":{ "errorLimit":{ "record":"0"// The error count. }, "speed":{ "throttle":true,// false indicates that throttling is disabled and the throttling speed below does not take effect. true indicates that throttling is enabled. "concurrent":1 // The concurrency. "mbps":"12"// The throttling speed. } }, "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] } }
Paramètres courants du script Reader
|
Paramètre |
Description |
Obligatoire |
Valeur par défaut |
|
endpoint |
L'endpoint (adresse du service) du serveur Tablestore. Pour plus d'informations, consultez Endpoints. |
Oui |
N/A |
|
accessId |
L'AccessKey ID de l'instance Tablestore. |
Oui |
N/A |
|
accessKey |
L'AccessKey Secret de l'instance Tablestore. |
Oui |
N/A |
|
instanceName |
Le nom de l'instance Tablestore. Une instance constitue l'entité utilisée pour gérer le service Tablestore. Après l'activation du service Tablestore, vous devez créer une instance dans la console, puis créer et gérer des tables au sein de cette instance. L'instance représente l'unité de base pour la gestion des ressources Tablestore. Le contrôle d'accès et la comptabilisation des ressources s'effectuent au niveau de l'instance. |
Oui |
N/A |
|
table |
Le nom de la table d'où extraire les données. Vous ne pouvez spécifier qu'une seule table. Tablestore ne prend pas en charge la synchronisation multi-tables. |
Oui |
N/A |
|
newVersion |
Indique la version du plugin Tablestore Reader.
La nouvelle version de Tablestore Reader offre non seulement de nouvelles fonctionnalités, mais consomme également moins de ressources système. Nous vous recommandons d'utiliser cette nouvelle version. Le plugin de la nouvelle version assure une rétrocompatibilité avec la configuration de l'ancienne version. Ajoutez simplement la configuration newVersion=true aux tâches existantes pour qu'elles s'exécutent correctement. |
Non |
false |
|
mode |
Définit le mode de lecture des données. Deux modes sont disponibles :
Ce paramètre n'est pris en compte que si la nouvelle version de Tablestore Reader est utilisée (newVersion:true). L'ancienne version de Tablestore Reader ignore le paramètre mode et ne permet que la lecture en mode ligne. |
Non |
normal |
|
isTimeseriesTable |
Indique si la table de données est une table de séries temporelles :
Ce paramètre n'est effectif que lorsque newVersion:true & mode:normal est configuré. L'ancienne version de Tablestore Reader ne prend pas en charge les tables de séries temporelles, et ces dernières ne peuvent pas être lues en mode colonne. |
Non |
false |
Paramètres supplémentaires du script Reader
Tablestore Reader permet la lecture des tables à colonnes larges en mode ligne, des tables de séries temporelles en mode ligne, ainsi que des tables à colonnes larges en mode colonne. Chaque mode dispose de ses propres paramètres supplémentaires.
Paramètres du mode ligne pour la lecture de tables à colonnes larges
|
Paramètre |
Description |
Obligatoire |
Valeur par défaut |
|
column |
L'ensemble des noms de colonnes à synchroniser depuis la table configurée, décrit sous forme de tableau JSON. Tablestore étant un système NoSQL, vous devez spécifier les noms des colonnes lors de l'extraction des données par Tablestore Reader.
|
Oui |
N/A |
|
begin et end |
Les paramètres begin et end définissent la plage de données à extraire de la table Tablestore. begin et end décrivent la distribution des intervalles de la PrimaryKey Tablestore. Pour les intervalles infinis, utilisez respectivement Remarque
Par exemple, pour extraire des données d'une table Tablestore comportant trois colonnes de clé primaire
|
Non |
(INF_MIN, INF_MAX) |
|
split |
Il s'agit d'un paramètre de configuration avancé permettant de définir des découpages personnalisés. Son usage n'est généralement pas recommandé dans les scénarios courants. En configurant le paramètre split, vous définissez des plages de données personnalisées pour le sharding. Cette option est particulièrement utile lorsque des points chauds apparaissent dans le stockage des données Tablestore. Voici un exemple de configuration de tâche :
Lors de l'exécution, les données sont divisées en 6 segments lus simultanément. Il est conseillé que le nombre de segments dépasse le niveau de concurrence de la tâche.
|
Non |
En l'absence de configuration du paramètre split, une logique de découpage automatique s'applique. Cette logique automatique identifie les valeurs minimale et maximale de la Partition Key et effectue une segmentation uniforme. La Partition Key accepte les types entier et chaîne. Les clés entières utilisent la division entière pour la segmentation, tandis que les clés de type chaîne se basent sur le code Unicode du premier caractère. |
Paramètres du mode ligne pour la lecture de tables de séries temporelles
|
Paramètre |
Description |
Obligatoire |
Valeur par défaut |
|
column |
column est un tableau dont chaque élément représente une colonne. Vous pouvez configurer des colonnes constantes et des colonnes classiques. Pour les colonnes constantes, configurez les champs suivants :
Pour les colonnes classiques, configurez les champs suivants :
Exemple de script pour la lecture de quatre colonnes :
|
Oui |
N/A |
|
measurementName |
Le nom de la mesure de la série temporelle à lire. En l'absence de configuration de ce paramètre, les données de toute la table sont lues. |
Non |
N/A |
|
timeRange |
La plage temporelle des données à lire. L'intervalle est [begin, end), fermé à gauche et ouvert à droite, et begin doit être strictement inférieur à end. L'unité de l'horodatage est la microseconde. Le format est le suivant :
|
Non |
Toutes les versions |
Paramètres du mode colonne pour la lecture de tables à colonnes larges
|
Paramètre |
Description |
Obligatoire |
Valeur par défaut |
|
column |
Spécifie les colonnes à exporter. Seul le mode colonne prend en charge les colonnes classiques. Format :
Remarque
|
Oui |
Toutes les colonnes |
|
range |
La plage de données à lire. L'intervalle est [begin, end), fermé à gauche et ouvert à droite, avec les règles suivantes :
Les types suivants sont acceptés pour le champ type :
Format :
|
Non |
Toutes les données |
|
timeRange |
La plage temporelle des données à lire. L'intervalle est [begin, end), fermé à gauche et ouvert à droite, et begin doit être strictement inférieur à end. L'unité de l'horodatage est la microseconde. Format :
|
Non |
Toutes les versions |
|
maxVersion |
Le nombre maximal de versions de données à requêter. La plage de valeurs s'étend de 1 à INT32_MAX. |
Non |
Toutes les versions |
Tablestore est un service de stockage NoSQL basé sur le système de fichiers distribué Apsara d'Alibaba Cloud. La source de données Tablestore dans DataWorks permet une synchronisation bidirectionnelle des données avec les tables Tablestore.
Limites
-
Les plugins Tablestore Reader et Writer assurent respectivement la lecture et l'écriture dans Tablestore. Ils opèrent sur les tables à colonnes larges et les tables de séries temporelles selon deux modes : mode ligne et mode colonne.
mode colonne : Dans le modèle multiversion de Tablestore, les données s'organisent selon une structure à trois niveaux : . Une ligne peut contenir un nombre quelconque de colonnes, dont les noms ne sont pas fixes. Chaque colonne peut comporter plusieurs versions, chacune associée à un horodatage spécifique qui sert également de numéro de version. En mode colonne, les données sont exportées sous forme de quadruplet : (valeur de clé primaire, nom de colonne, horodatage, valeur de colonne). L'importation des données en mode colonne utilise également ce format de quadruplet : (valeur de clé primaire, nom de colonne, horodatage, valeur de colonne).
-
mode ligne : Ce mode exporte chaque enregistrement mis à jour sous forme de ligne, au format (valeur de clé primaire, valeurs de colonnes).
En mode ligne, chaque ligne de données correspond à une ligne unique dans la table Tablestore. Les données écrites en mode ligne comprennent à la fois les valeurs des colonnes de clé primaire et celles des colonnes d'attributs.
Les colonnes Tablestore se composent de colonnes de clé primaire primaryKey et de colonnes d'attributs column. L'ordre des colonnes sources doit correspondre exactement à celui des colonnes de clé primaire et d'attributs dans la table Tablestore de destination. Dans le cas contraire, une erreur de mappage de colonnes survient.
Tablestore Reader divise la plage de données d'une table en N tâches en fonction du niveau de concurrence spécifié, N. Un thread dédié de Tablestore Reader exécute chaque tâche.
-
Les tables externes MaxCompute ne peuvent pas lire directement les colonnes contenant des types de données mixtes depuis Tablestore, par exemple une colonne renfermant à la fois des valeurs STRING et DOUBLE. Si votre table Tablestore contient de telles colonnes, l'importation de données via une table externe MaxCompute échoue. Comme solution de contournement, utilisez la fonctionnalité de synchronisation par lots mono-table de DataWorks Data Integration pour synchroniser les données de Tablestore vers MaxCompute.
Lorsque vous utilisez la synchronisation par lots mono-table, le groupe de ressources Data Integration doit disposer d'un accès réseau au VPC hébergeant l'instance Tablestore afin de lire les données et d'exécuter la tâche de synchronisation. Cette solution ne garantit pas une compatibilité totale pour les données de types mixtes. Vous devrez peut-être convertir ou filtrer les types de données via le mappage de colonnes pendant la synchronisation. L'utilisation d'un groupe de ressources Data Integration entraîne des frais supplémentaires.
Types de colonnes pris en charge
Tablestore Reader et Tablestore Writer prennent en charge tous les types de données Tablestore. Le tableau suivant présente les mappages de types compatibles.
|
Catégorie de type |
Type de données Tablestore |
|
Entier |
INTEGER |
|
Virgule flottante |
DOUBLE |
|
Chaîne |
STRING |
|
Booléen |
BOOLEAN |
|
Binaire |
BINARY |
Tablestore ne prend pas nativement en charge le type de données date. La couche applicative utilise généralement une valeur Long pour stocker l'horodatage Unix.
En mode script, configurez le type de données INTEGER sous la forme INT. DataWorks le convertit automatiquement en type INTEGER. Si vous configurez directement le type comme INTEGER, une erreur apparaît dans les journaux et la tâche échoue.
Ajouter une source de données
Avant de développer une tâche de synchronisation dans DataWorks, ajoutez la source de données requise en suivant les instructions décrites dans Configuration de la source de données. Vous pouvez consulter les descriptions des paramètres dans la console DataWorks pour comprendre la signification de chaque paramètre lors de l'ajout d'une source de données.
Instructions
Lisez la documentation anglaise pour comprendre CE QUI doit être communiqué.
Rédigez le document français EN PARTANT DE ZÉRO — oubliez la structure des phrases anglaises.
Conservez exactement tout le formatage markdown, les blocs de code, les liens et les images.
Balises xref (
<a data-tag="xref" ...>texte</a>) — conservez la balise ENTIERE avec tous ses attributs dans l'ordre et la casse d'origine, traduisez UNIQUEMENT le texte visible entre > et .Appliquez strictement toutes les règles spécifiques à la langue.
Appliquez les règles relatives aux stopwords avec une tolérance zéro.
Utilisez l'impératif dans les étapes numérotées et les listes à puces procédurales.
Assurez la cohérence terminologique — même terme = même traduction partout.
Variez les débuts de phrase dans les listes et tableaux — aucun début de phrase répété plus de 3 fois.
-
Retournez UNIQUEMENT le document markdown en français, sans explication.
Annexe 2 : Exemples de scripts Writer 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 via l'éditeur de code, vous devez définir les paramètres appropriés dans le script en respectant le format de script unifié. Pour plus d'informations, consultez Configuration en mode script. Les sections suivantes détaillent les paramètres à configurer pour les sources de données lors de la configuration d'une tâche de synchronisation par lots avec l'éditeur de code.
Exemples de scripts Writer
Configuration en mode ligne pour l'écriture dans des tables à colonnes larges
{ "type":"job", "version":"2.0",// The version number. "steps":[ { "stepType":"stream", "parameter":{}, "name":"Reader", "category":"reader" }, { "stepType":"ots",// The plugin name. "parameter":{ "datasource":"",// The data source. "table":"",// The table name. "newVersion":"true",// Use the new version of otswriter. "mode": "normal",// Write data in row mode. "isTimeseriesTable":"false",// Configure this table as a wide-column table (not a time-series table). "primaryKey" : [// The primary key information of the Tablestore table. {"name":"gid", "type":"INT"}, {"name":"uid", "type":"STRING"} ], "column" : [// The columns. {"name":"col1", "type":"INT"}, {"name":"col2", "type":"DOUBLE"}, {"name":"col3", "type":"STRING"}, {"name":"col4", "type":"STRING"}, {"name":"col5", "type":"BOOL"} ], "writeMode" : "PutRow" // The write mode. }, "name":"Writer", "category":"writer" } ], "setting":{ "errorLimit":{ "record":"0"// The error count. }, "speed":{ "throttle":true,// When throttle is set to false, the mbps parameter does not take effect, indicating no throttling. When throttle is set to true, throttling is enabled. "concurrent":1, // The concurrency. "mbps":"12"// The throttling speed. 1 mbps = 1 MB/s. } }, "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] } }
Configuration en mode ligne pour l'écriture dans des tables de séries temporelles
{ "type":"job", "version":"2.0",// The version number. "steps":[ { "stepType":"stream", "parameter":{}, "name":"Reader", "category":"reader" }, { "stepType":"ots",// The plugin name. "parameter":{ "datasource":"",// The data source. "table": "testTimeseriesTableName01", "mode": "normal", "newVersion": "true", "isTimeseriesTable":"true", "timeunit":"microseconds", "column": [ { "name": "_m_name" }, { "name": "_data_source", }, { "name": "_tags", }, { "name": "_time", }, { "name": "string_1", "type":"string" }, { "name":"tag3", "is_timeseries_tag":"true", } ] }, "name":"Writer", "category":"writer" } ], "setting":{ "errorLimit":{ "record":"0"// The error count. }, "speed":{ "throttle":true,// When throttle is set to false, the mbps parameter does not take effect, indicating no throttling. When throttle is set to true, throttling is enabled. "concurrent":1, // The concurrency. "mbps":"12"// The throttling speed. 1 mbps = 1 MB/s. } }, "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] } }
Configuration en mode colonne pour l'écriture dans des tables à colonnes larges
{ "type":"job", "version":"2.0",// The version number. "steps":[ { "stepType":"stream", "parameter":{}, "name":"Reader", "category":"reader" }, { "stepType":"ots",// The plugin name. "parameter":{ "datasource":"",// The data source. "table":"", "newVersion":"true", "mode":"multiVersion", "primaryKey" : [ "gid", "uid" ] }, "name":"Writer", "category":"writer" } ], "setting":{ "errorLimit":{ "record":"0"// The error count. },x` "speed":{ "throttle":true,// When throttle is set to false, the mbps parameter does not take effect, indicating no throttling. When throttle is set to true, throttling is enabled. "concurrent":1, // The concurrency. "mbps":"12"// The throttling speed. 1 mbps = 1 MB/s. } }, "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] } }
Paramètres courants du script Writer
Paramètre
Description
Obligatoire
Valeur par défaut
datasource
Nom de la source de données. Le mode script permet d'ajouter des sources de données. La valeur de ce paramètre doit correspondre exactement au nom de la source de données ajoutée.
Oui
N/A
endPoint
Endpoint (adresse du service) du serveur Tablestore. Pour plus d'informations, consultez Endpoints.
Oui
N/A
accessId
AccessKey ID de l'instance Tablestore.
Oui
N/A
accessKey
AccessKey Secret de l'instance Tablestore.
Oui
N/A
instanceName
Nom de l'instance Tablestore. Une instance constitue l'entité utilisée pour gérer le service Tablestore.
Après l'activation du service Tablestore, vous devez créer une instance dans la console, puis créer et gérer des tables au sein de cette instance. L'instance représente l'unité de base pour la gestion des ressources Tablestore. Le contrôle d'accès et la comptabilisation des ressources s'effectuent au niveau de l'instance.
Oui
N/A
table
Nom de la table de destination pour l'écriture des données. Une seule table peut être spécifiée. Tablestore ne prend pas en charge la synchronisation multi-tables.
Oui
N/A
newVersion
Indique la version du plugin Tablestore Writer.
-
false : Version héritée de Tablestore Writer, qui prend uniquement en charge l'écriture en mode ligne vers des tables à colonnes larges.
-
true : Nouvelle version de Tablestore Writer, compatible avec le mode ligne, le mode colonne, les tables de séries temporelles et les tables à colonnes larges. Elle inclut également la fonctionnalité de clé primaire à incrémentation automatique.
La nouvelle version de Tablestore Writer offre non seulement des fonctionnalités supplémentaires, mais consomme aussi moins de ressources système. Nous vous recommandons d'utiliser cette nouvelle version.
Le plugin de la nouvelle version assure une rétrocompatibilité avec la configuration de la version héritée. Ajoutez simplement le paramètre newVersion=true aux tâches existantes pour qu'elles s'exécutent correctement.
Oui
false
mode
Définit le mode d'écriture des données. Deux modes sont disponibles :
-
normal : Écrit les données au format standard (mode ligne).
-
multiVersion : Écrit les données au format multiversion (mode colonne).
Ce paramètre n'est pris en compte que si newVersion:true est configuré.
L'ancienne version de Tablestore Writer ignore le paramètre mode et ne permet l'écriture qu'en mode ligne.
Non
normal
isTimeseriesTable
Indique si la table de données est une table de séries temporelles.
-
false : Il s'agit d'une table à colonnes larges standard.
-
true : Il s'agit d'une table de séries temporelles.
Ce paramètre n'est effectif que lorsque newVersion:true & mode:normal est configuré (le mode colonne n'est pas compatible avec les tables de séries temporelles).
Non
false
Paramètres supplémentaires du script Writer
Tablestore Writer permet l'écriture en mode ligne vers des tables à colonnes larges, en mode ligne vers des tables de séries temporelles, ainsi qu'en mode colonne vers des tables à colonnes larges. Chaque mode dispose de paramètres supplémentaires spécifiques.
Paramètres du mode ligne pour l'écriture dans des tables à colonnes larges
Paramètre
Description
Obligatoire
Valeur par défaut
primaryKey
Informations sur la clé primaire de la table Tablestore, décrites sous forme de tableau JSON. Tablestore étant un système NoSQL, vous devez spécifier les noms des colonnes lors de l'importation des données par Tablestore Writer.
Le système de synchronisation des données prenant en charge la conversion de types, Tablestore Writer convertit automatiquement les données source dont le type n'est ni STRING ni INT. Exemple de configuration :
"primaryKey" : [ {"name":"gid", "type":"INT"}, {"name":"uid", "type":"STRING"} ],RemarqueLa PrimaryKey de Tablestore accepte uniquement les types STRING et INT. Par conséquent, Tablestore Writer n'accepte que ces deux types.
Oui
N/A
column
Ensemble des noms de colonnes à synchroniser depuis la table configurée, décrit sous forme de tableau JSON.
Exemple de configuration :
"column" : [ {"name":"col1", "type":"INT"}, {"name":"col2", "type":"DOUBLE"}, {"name":"col3", "type":"STRING"}, {"name":"col4", "type":"BINARY"}, {"name":"col5", "type":"BOOL"} ],Le champ name désigne la colonne Tablestore cible pour l'écriture, tandis que le champ type précise le type de données à écrire. Tablestore prend en charge les types STRING, INT, DOUBLE, BOOL et BINARY.
RemarqueLes constantes, fonctions ou expressions personnalisées ne sont pas prises en charge lors de l'écriture.
Oui
N/A
writeMode
Mode d'écriture des données dans Tablestore. Les deux modes suivants sont disponibles :
-
PutRow : Correspond à l'API Tablestore PutRow. Ce mode insère des données dans la ligne spécifiée. Si la ligne n'existe pas, elle est créée. Si elle existe déjà, son contenu est écrasé.
-
UpdateRow : Correspond à l'API Tablestore UpdateRow. Ce mode met à jour les données de la ligne spécifiée. Si la ligne n'existe pas, elle est créée. Si elle existe, les valeurs des colonnes indiquées sont ajoutées, modifiées ou supprimées selon le contenu de la requête.
Oui
N/A
enableAutoIncrement
Indique si l'écriture de données est autorisée dans une table Tablestore contenant des colonnes de clé primaire à incrémentation automatique.
-
true : Le plugin détecte automatiquement les informations relatives aux colonnes à incrémentation automatique de la table de destination et intègre ces colonnes lors de l'écriture des données (il n'est pas nécessaire de configurer le nom de la colonne à incrémentation automatique).
-
false : Une erreur est générée lors de toute tentative d'écriture dans une table comportant des colonnes de clé primaire à incrémentation automatique.
Non
false
requestTotalSizeLimitation
Ce paramètre limite la taille d'une seule ligne de données lors de l'écriture dans Tablestore. La valeur attendue est numérique.
Non
1MB
attributeColumnSizeLimitation
Ce paramètre limite la taille d'une colonne d'attribut individuelle lors de l'écriture dans Tablestore. La valeur attendue est numérique.
Non
2MB
primaryKeyColumnSizeLimitation
Ce paramètre limite la taille d'une colonne de clé primaire individuelle lors de l'écriture dans Tablestore. La valeur attendue est numérique.
Non
1KB
attributeColumnMaxCount
Ce paramètre limite le nombre de colonnes d'attributs lors de l'écriture dans Tablestore. La valeur attendue est numérique.
Non
1 024
Paramètres du mode ligne pour l'écriture dans des tables de séries temporelles
Paramètre
Description
Obligatoire
Valeur par défaut
column
Chaque élément du tableau column correspond à un champ des données de série temporelle. Chaque élément admet les paramètres suivants :
-
name : Nom de la colonne. Ce champ est obligatoire. Les champs prédéfinis suivants sont disponibles :
-
Le nom de la mesure de la série temporelle est identifié par
_m_name. Le type de données est String. -
La source de données de la série temporelle est identifiée par
_data_source. Le type de données est String. -
Les tags de la série temporelle sont identifiés par
_tags. Le type de données est String. Le format de la chaîne est ["tagKey1=value1","tagKey2=value2"]. -
L'horodatage de la série temporelle est identifié par
_time. Le type de données est Long. L'unité par défaut est la microseconde.
-
-
is_timeseries_tag : Indique si la colonne correspond à une paire clé-valeur au sein du champ tags. Ce champ est facultatif. Valeur par défaut : false.
-
type : Type de valeur de la colonne. Ce champ est facultatif. Valeur par défaut : string. Types pris en charge : string, int, double, bool et binary.
Étant donné que le nom de la mesure et l'horodatage des données de série temporelle ne peuvent pas être vides, vous devez configurer les champs
_m_nameet_time.Exemple : Un enregistrement de données à écrire contient six champs :
mName1 source1 ["tag1=A","tag2=B"] 1677763080000000 field_value CUtilisez la configuration suivante :
"column": [ { "name": "_m_name" }, { "name": "_data_source", }, { "name": "_tags", }, { "name": "_time", }, { "name": "string_1", "type":"string" }, { "name":"tag3", "is_timeseries_tag":"true", } ],Oui
N/A
timeunit
Unité du champ d'horodatage _time. Valeurs acceptées : NANOSECONDS, MICROSECONDS, MILLISECONDS, SECONDS et MINUTES.
Non
MICROSECONDS
Paramètres du mode colonne pour l'écriture dans des tables à colonnes larges
Paramètre
Description
Obligatoire
Valeur par défaut
primaryKey
Colonnes de clé primaire de la table.
Afin de réduire la charge de configuration, il n'est pas nécessaire de préciser la position de primaryKey dans l'enregistrement (ligne). Toutefois, le format de l'enregistrement doit rester fixe : primaryKey doit se trouver au début de la ligne, suivi de primaryKey puis de columnName. Le format de l'enregistrement est le suivant :
{pk0,pk1...}, {columnName}, {timestamp}, {value}.Par exemple, pour les 9 enregistrements de données suivants :
1,pk1,row1,1677699863871,value_0_0 Exemple de configuration : 1,pk1,row2,1677699863871,value_0_1 1,pk1,row3,1677699863871,value_0_2 2,pk2,row1,1677699863871,value_1_0 2,pk2,row2,1677699863871,value_1_1 2,pk2,row3,1677699863871,value_1_2 3,pk3,row1,1677699863871,value_2_0 3,pk3,row2,1677699863871,value_2_1 3,pk3,row3,1677699863871,value_2_2"primaryKey" : [ "gid", "uid" ],Résultat de l'écriture au format de ligne large :
gid uid row1 row2 row3 1 pk1 value_0_0 value_0_1 value_0_2 2 pk2 value_1_0 value_1_1 value_1_2 3 pk3 value_2_0 value_2_1 value_2_2Oui
N/A
columnNamePrefixFilter
Filtre de préfixe de nom de colonne.
Pour les données importées depuis HBase, cf et qulifier forment ensemble le columnName. Cependant, Tablestore ne prenant pas en charge cf, il est nécessaire de filtrer ce préfixe cf.
Exemple de configuration :
"columnNamePrefixFilter":"cf:"Remarque-
Ce paramètre est facultatif. S'il n'est pas spécifié ou si sa valeur est une chaîne vide, aucun filtrage de nom de colonne n'est appliqué.
-
Si la colonne columnName des données ajoutées via Data Integration ne commence pas par le préfixe spécifié, l'enregistrement est envoyé au collecteur de données incorrectes.
Non
N/A
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, reportez-vous aux guides de configuration suivants.
Directives pour la configuration d'une tâche de synchronisation par lots sur table unique
Pour la procédure détaillée, consultez Configurer une tâche de synchronisation par lots sur table unique.
Pour obtenir la liste complète des paramètres et des exemples de scripts pour la configuration en mode script, consultez l'Annexe 1 : Exemples de scripts Reader et description des paramètres ci-dessous.
FAQ
-
Q : Comment configurer Tablestore Writer pour écrire des données dans une table de destination contenant des colonnes de clé primaire à incrémentation automatique ?
-
La configuration de Tablestore Writer doit respecter les deux exigences suivantes :
"newVersion": "true", "enableAutoIncrement": "true", Ne configurez pas le nom de la colonne de clé primaire à incrémentation automatique dans Tablestore Writer.
La somme du nombre d'entrées primaryKey et du nombre d'entrées column configurées dans Tablestore Writer doit être égale au nombre de colonnes présentes dans les données du Tablestore Reader en amont.
-
-
Q : Dans la configuration du modèle de séries temporelles, comment interpréter les champs _tag et is_timeseries_tag ?
Exemple : Un enregistrement de données comporte trois tags : [phone=Xiaomi, RAM=8G, camera=Leica].
-
Exemple d'exportation de données (Tablestore Reader)
-
Pour fusionner les tags ci-dessus en une seule colonne lors de l'exportation, utilisez la configuration suivante :
"column": [ { "name": "_tags", } ],DataWorks exporte les tags sous forme d'une colonne unique de données au format suivant :
["phone=xiaomi","camera=LEICA","RAM=8G"] -
Pour exporter le tag
phoneet le tagcameradans des colonnes distinctes, utilisez la configuration suivante :"column": [ { "name": "phone", "is_timeseries_tag":"true", }, { "name": "camera", "is_timeseries_tag":"true", } ],DataWorks exporte alors deux colonnes de données au format suivant :
xiaomi, LEICA
-
-
Exemple d'importation de données (Tablestore Writer)
La source de données en amont (Reader) contient deux colonnes de données :
La première colonne contient :
["phone=xiaomi","camera=LEICA","RAM=8G"].La seconde colonne contient : 6499.
Pour ajouter ces deux colonnes au champ tags, le format attendu du champ tags après écriture est le suivant :
Utilisez la configuration suivante :"column": [ { "name": "_tags", }, { "name": "price", "is_timeseries_tag":"true", }, ],La configuration de la première colonne importe l'ensemble
["phone=xiaomi","camera=LEICA","RAM=8G"]dans le champ tags.La configuration de la seconde colonne importe individuellement
price=6499dans le champ tags.
-
-