DataWorks Data Integration prend en charge PolarDB-X 2.0 en tant que source et destination pour les tâches de synchronisation hors ligne (par lots). Cette rubrique présente les fonctionnalités prises en charge, les prérequis ainsi que la référence des paramètres de script pour les composants Reader et Writer de PolarDB-X 2.0.
Vue d'ensemble de la configuration
Pour synchroniser des données entre PolarDB-X 2.0 et d'autres systèmes, suivez ces étapes :
Vérifiez que vous utilisez PolarDB-X 2.0 (et non PolarDB-X 1.0).
Accordez les autorisations requises au compte de base de données utilisé par DataWorks.
Ajoutez la source de données PolarDB-X 2.0 dans DataWorks.
Configurez et exécutez une tâche de synchronisation hors ligne.
Versions prises en charge
Lecture et écriture hors ligne : PolarDB-X 2.0. La synchronisation hors ligne permet également de lire les données depuis des vues.
Limites
Les sources de données PolarDB-X 2.0 prennent en charge les groupes de ressources serverless (recommandé) et les groupes de ressources exclusifs pour Data Integration.
Types de champs pris en charge
Pour obtenir la liste complète des types de champs PolarDB-X 2.0, consultez la page Types de données. Le tableau ci-dessous répertorie les principaux types de champs et leur statut de prise en charge.
|
Type de champ |
Lecture hors ligne (PolarDB-X 2.0 Reader) |
Écriture hors ligne (PolarDB-X 2.0 Writer) |
|
TINYINT |
Pris en charge |
Pris en charge |
|
SMALLINT |
Pris en charge |
Pris en charge |
|
INTEGER |
Pris en charge |
Pris en charge |
|
BIGINT |
Pris en charge |
Pris en charge |
|
FLOAT |
Pris en charge |
Pris en charge |
|
DOUBLE |
Pris en charge |
Pris en charge |
|
DECIMAL/NUMERIC |
Pris en charge |
Pris en charge |
|
REAL |
Non pris en charge |
Non pris en charge |
|
VARCHAR |
Pris en charge |
Pris en charge |
|
JSON |
Pris en charge |
Pris en charge |
|
TEXT |
Pris en charge |
Pris en charge |
|
MEDIUMTEXT |
Pris en charge |
Pris en charge |
|
LONGTEXT |
Pris en charge |
Pris en charge |
|
VARBINARY |
Pris en charge |
Pris en charge |
|
BINARY |
Pris en charge |
Pris en charge |
|
TINYBLOB |
Pris en charge |
Pris en charge |
|
MEDIUMBLOB |
Pris en charge |
Pris en charge |
|
LONGBLOB |
Pris en charge |
Pris en charge |
|
ENUM |
Pris en charge |
Pris en charge |
|
SET |
Pris en charge |
Pris en charge |
|
BOOLEAN |
Pris en charge |
Pris en charge |
|
BIT |
Pris en charge |
Pris en charge |
|
DATE |
Pris en charge |
Pris en charge |
|
DATETIME |
Pris en charge |
Pris en charge |
|
TIMESTAMP |
Pris en charge |
Pris en charge |
|
TIME |
Pris en charge |
Pris en charge |
|
YEAR |
Pris en charge |
Pris en charge |
|
LINESTRING |
Non pris en charge |
Non pris en charge |
|
POLYGON |
Non pris en charge |
Non pris en charge |
|
MULTIPOINT |
Non pris en charge |
Non pris en charge |
|
MULTILINESTRING |
Non pris en charge |
Non pris en charge |
|
MULTIPOLYGON |
Non pris en charge |
Non pris en charge |
|
GEOMETRYCOLLECTION |
Non pris en charge |
Non pris en charge |
Prérequis
Avant de commencer, assurez-vous des points suivants :
Vous exécutez PolarDB-X 2.0. Pour PolarDB-X 1.0, utilisez plutôt la source de données DRDS.
Vous disposez d'un compte PolarDB-X 2.0 avec les autorisations décrites ci-dessous.
Accorder des autorisations au compte
Créez un compte dédié PolarDB-X 2.0 pour l'accès DataWorks, puis accordez les autorisations appropriées en fonction de votre scénario de synchronisation.
Lecture hors ligne (autorisation SELECT sur la table source)
Le compte doit disposer de l'autorisation SELECT sur la table source.
Écriture hors ligne (autorisations d'écriture sur la table de destination)
Le compte doit disposer des autorisations INSERT, DELETE et UPDATE sur la table de destination.
Synchronisation en temps réel — base de données complète (accès aux journaux binaires)
Compte privilégié : Peut lire les données des journaux binaires (binlog) par défaut.
Compte standard : Accordez les autorisations SELECT, REPLICATION SLAVE et REPLICATION CLIENT à l'aide d'un compte privilégié :
-- Create a sync account and allow login from any host (% represents any host)
-- CREATE USER 'sync_account'@'%' IDENTIFIED BY 'password';
-- Grant permissions for real-time (CDC) synchronization
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'sync_account'@'%';
Ajouter une source de données
Ajoutez la source de données PolarDB-X 2.0 à DataWorks avant de configurer toute tâche de synchronisation. Suivez les instructions fournies dans la rubrique Configuration de la source de données. Les descriptions des paramètres sont disponibles dans la console DataWorks lors de l'ajout de la source de données.
Configurer une tâche de synchronisation hors ligne
Pour connaître le point d'entrée et la procédure de configuration, consultez la rubrique Configurer une tâche de synchronisation hors ligne dans l'éditeur de code.
Pour le format de script et tous les paramètres disponibles, reportez-vous à la section Annexe : Démonstration de script et description des paramètres ci-dessous.
Annexe : Démonstration de script et description des paramètres
Utilisez l'éditeur de code pour configurer les tâches de synchronisation par lots au format JSON. Pour connaître les exigences relatives au format de script unifié, consultez la rubrique Configurer une tâche dans l'éditeur de code.
Tous les exemples utilisent "type": "job" et "version": "2.0" au niveau supérieur.
Démonstration du script Reader
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "polardbx20",
"parameter": {
"connection": [
{
"datasource": "",
"table": [
"t1"
]
}
],
"column": [
"c1",
"c2",
"'const'"
],
"where": "",
"splitPk": "",
"checkSlave": "true",
"slaveDelayLimit": "300"
},
"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"
}
]
}
}
Paramètres du script Reader
|
Paramètre |
Description |
Obligatoire |
Valeur par défaut |
|
|
Nom de la source de données. Doit correspondre au nom configuré sur la page de gestion des sources de données. |
Oui |
Aucune |
|
|
Table à synchroniser. Une seule table est prise en charge par bloc de connexion. |
Oui |
Aucune |
|
|
Colonnes à synchroniser, sous forme de tableau JSON. Utilisez |
Oui |
Aucune |
|
|
Colonne utilisée pour le partitionnement des données, permettant des lectures simultanées. Définissez-la sur la clé primaire pour équilibrer les shards. Ne prend en charge que les colonnes de type entier ; les colonnes de type chaîne, flottant et date sont ignorées, et les données basculent vers un seul canal. Si ce paramètre est vide ou omis, les données sont lues via un seul canal. |
Non |
Aucune |
|
|
Condition de filtre SQL |
Non |
Aucune |
|
|
Lorsque la source de données est une instance en lecture seule, vérifie le retard de réplication avant le démarrage de la tâche pour éviter la perte de données. |
Non |
|
|
|
Retard de réplication maximal autorisé en secondes. Si le retard réel dépasse cette valeur, la tâche échoue. |
Non |
|
Démonstration du script Writer
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "stream",
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"stepType": "PolarDB-X 2.0",
"parameter": {
"postSql": [],
"datasource": "",
"column": [
"id",
"value"
],
"writeMode": "insert",
"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 Writer
|
Paramètre |
Description |
Obligatoire |
Valeur par défaut |
|
|
Nom de la source de données. Doit correspondre au nom configuré sur la page de gestion des sources de données. |
Oui |
Aucune |
|
|
Nom de la table de destination. |
Oui |
Aucune |
|
|
Colonnes de destination vers lesquelles écrire, sous forme de tableau JSON. Exemple : |
Oui |
Aucune |
|
|
Mode de gestion des conflits d'écriture. Définissez-le sur |
Non |
|
|
|
Instruction(s) SQL à exécuter avant le démarrage de la tâche — par exemple, |
Non |
Aucune |
|
|
Instruction(s) SQL à exécuter après la fin de la tâche — par exemple, ajouter une colonne d'horodatage. Dans l'interface sans code, une seule instruction est autorisée. Dans l'éditeur de code, plusieurs instructions sont prises en charge. Les transactions ne sont pas prises en charge pour plusieurs instructions. |
Non |
Aucune |
|
|
Nombre d'enregistrements soumis par lot. Une valeur plus élevée réduit les allers-retours réseau et améliore le débit, mais peut provoquer un dépassement de mémoire si elle est définie trop haut. |
Non |
|
Modes d'écriture
|
Mode |
Valeur de script |
Comportement en cas de conflit |
|
insert into |
|
En cas de conflit de clé primaire ou d'index unique, la ligne concernée est ignorée et enregistrée comme donnée erronée. |
|
replace into |
|
Si aucun conflit ne se produit, le comportement est identique à celui de |
Paramètres au niveau de la tâche
|
Paramètre |
Description |
Valeur par défaut |
|
|
Nombre d'enregistrements d'erreur autorisés avant l'échec de la tâche. |
|
|
|
Indique s'il faut appliquer une limite de débit. Définissez-le sur |
|
|
|
Nombre de canaux simultanés. |
|
|
|
Débit de synchronisation maximal en Mbps. Contrôle la pression de lecture/écriture sur la source et la destination. Prend effet uniquement lorsque |
|