La source de données AnalyticDB for MySQL 2.0 permet une synchronisation bidirectionnelle des données entre AnalyticDB for MySQL 2.0 et d'autres systèmes de données dans DataWorks. Utilisez-la pour lire ou écrire des données dans AnalyticDB for MySQL 2.0 dans le cadre d'une tâche de synchronisation hors ligne.
Limitations
La synchronisation hors ligne prend en charge la lecture des données à partir des vues.
Le lecteur AnalyticDB for MySQL 2.0 ne prend pas en charge les types multivaleurs. Si les données sources contiennent des types multivaleurs, la tâche de synchronisation échoue.
Types de champs pris en charge
Lecture hors ligne
Le tableau suivant répertorie les mappages de types de données pour le lecteur AnalyticDB for MySQL 2.0. Les données transitent d'AnalyticDB for MySQL 2.0 vers MaxCompute via DataX.
|
Type AnalyticDB for MySQL 2.0 |
Type DataX |
Type MaxCompute |
Notes |
|
BIGINT |
LONG |
BIGINT |
|
|
TINYINT |
LONG |
INT |
|
|
SMALLINT |
LONG |
INT |
|
|
INT |
LONG |
INT |
|
|
FLOAT |
STRING |
DOUBLE |
AnalyticDB for MySQL 2.0 transmet FLOAT sous forme de chaîne. MaxCompute stocke la valeur en tant que DOUBLE. |
|
DOUBLE |
STRING |
DOUBLE |
AnalyticDB for MySQL 2.0 transmet DOUBLE sous forme de chaîne. MaxCompute stocke la valeur en tant que DOUBLE. |
|
VARCHAR |
STRING |
STRING |
|
|
DATE |
DATE |
DATETIME |
|
|
TIME |
DATE |
DATETIME |
|
|
TIMESTAMP |
DATE |
DATETIME |
Écriture hors ligne
Le tableau suivant répertorie les mappages de types de données pour l'outil d'écriture AnalyticDB for MySQL 2.0.
|
Type DataWorks |
Type de données AnalyticDB for MySQL 2.0 |
|
Integer |
INT, TINYINT, SMALLINT, BIGINT |
|
Floating-point |
FLOAT, DOUBLE |
|
String |
VARCHAR |
|
Date and time |
DATE, TIMESTAMP |
|
Boolean |
BOOLEAN |
Ajout d'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 de la rubrique Gestion des sources de données. Les descriptions des paramètres sont disponibles dans la console DataWorks lors de l'ajout d'une source de données.
Développement d'une tâche de synchronisation des données
Configuration d'une tâche de synchronisation hors ligne pour une table unique
Utilisez l'une des méthodes suivantes pour configurer la tâche :
Interface sans code : Consultez la rubrique Configuration d'une tâche dans l'interface sans code.
Éditeur de code : Consultez la rubrique Configuration d'une tâche dans l'éditeur de code. Pour une référence complète des paramètres et des exemples de scripts, consultez la rubrique Annexe : Exemples de scripts et descriptions des paramètres.
Configuration d'une tâche de synchronisation de lecture hors ligne pour une base de données entière
Consultez la rubrique Configuration de la synchronisation de base de données par lots.
Annexe : Exemples de scripts et descriptions des paramètres
Lecteur
Exemple de script
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "ads",
"parameter": {
"datasource": "ads_demo",
"table": "th_test",
"column": [
"id",
"testtinyint",
"testbigint",
"testdate",
"testtime",
"testtimestamp",
"testvarchar",
"testdouble",
"testfloat"
],
"mode": "ODPS",
"odps": {
"accessId": "<yourAccessKeyId>",
"accessKey": "<yourAccessKeySecret>",
"account": "<yourAccount>",
"odpsServer": "http://service.cn-shanghai-vpc.maxcompute.aliyun-inc.com/api",
"tunnelServer": "http://dt.cn-shanghai-vpc.maxcompute.aliyun-inc.com",
"accountType": "aliyun",
"project": "odps_test"
}
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "stream",
"parameter": {},
"name": "Writer",
"category": "writer"
}
],
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {
"record": ""
},
"speed": {
"concurrent": 2,
"throttle": true,
"mbps": "12"
}
}
}
Paramètres du lecteur
|
Paramètre |
Description |
Obligatoire |
Valeur par défaut |
|
|
Nom de la table à partir de laquelle exporter les données. |
Oui |
Aucune |
|
|
Colonnes à exporter. Si ce paramètre n'est pas spécifié, toutes les colonnes sont exportées. |
Non |
|
|
|
Nombre maximal d'enregistrements à exporter. |
Non |
Aucune |
|
|
Clause WHERE permettant de filtrer les données exportées. La chaîne est ajoutée directement à la requête. Exemple : |
Non |
Aucune |
|
|
Mode d'exportation. Consultez la section Choix d'un mode d'exportation. |
Non |
|
|
|
ID AccessKey du compte Alibaba Cloud qu'AnalyticDB for MySQL 2.0 utilise pour accéder à ODPS (MaxCompute). Le compte doit disposer des autorisations Describe, Create, Select, Alter, Update et Drop. Requis lorsque |
Conditionnel |
Aucune |
|
|
Clé secrète AccessKey du compte Alibaba Cloud qu'AnalyticDB for MySQL 2.0 utilise pour accéder à ODPS. Le compte doit disposer des autorisations Describe, Create, Select, Alter, Update et Drop. Requis lorsque |
Conditionnel |
Aucune |
|
|
Endpoint de l'API ODPS. Requis lorsque |
Conditionnel |
Aucune |
|
|
Endpoint du tunnel ODPS. Requis lorsque |
Conditionnel |
Aucune |
|
|
Nom du projet ODPS. Requis lorsque |
Conditionnel |
Aucune |
|
|
Type de compte utilisé pour accéder à ODPS. Prend effet uniquement lorsque |
Non |
|
Choix d'un mode d'exportation
Le paramètre mode contrôle la manière dont le lecteur exporte les données depuis AnalyticDB for MySQL 2.0.
|
Mode |
Fonctionnement |
Cas d'utilisation |
|
|
Utilise la clause SQL LIMIT pour une exportation paginée. Aucune information d'identification supplémentaire n'est requise. |
Valeur par défaut. À utiliser dans la plupart des cas. |
|
|
Utilise ODPS DUMP pour exporter les données directement. Nécessite des informations d'identification d'accès ODPS (paramètres |
À utiliser pour les exports volumineux où les performances d'ODPS DUMP sont privilégiées. |
Outil d'écriture
Exemple de script
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "stream",
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"stepType": "ads",
"parameter": {
"datasource": "",
"table": "",
"partition": "",
"column": [
"id"
],
"writeMode": "insert",
"batchSize": "256",
"overWrite": "true",
"options.ignoreEmptySource": true
},
"name": "Writer",
"category": "writer"
}
],
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {
"record": "0"
},
"speed": {
"throttle": true,
"concurrent": 1,
"mbps": "12"
}
}
}
Paramètres de l'outil d'écriture
|
Paramètre |
Description |
Obligatoire |
Valeur par défaut |
|
|
Informations de connexion pour l'instance AnalyticDB for MySQL 2.0. Format : |
Oui |
Aucune |
|
|
Nom de la base de données AnalyticDB for MySQL 2.0. |
Oui |
Aucune |
|
|
ID AccessKey pour l'instance AnalyticDB for MySQL 2.0. |
Oui |
Aucune |
|
|
Clé secrète AccessKey pour l'instance AnalyticDB for MySQL 2.0. |
Oui |
Aucune |
|
|
Nom de la source de données telle qu'ajoutée dans DataWorks. Doit correspondre exactement au nom de la source de données. |
Oui |
Aucune |
|
|
Nom de la table de destination. |
Oui |
Aucune |
|
|
Mode d'écriture. Consultez la section Choix d'un mode d'écriture. |
Oui |
Aucune |
|
|
Champs à écrire. Définissez la valeur sur |
Oui |
Aucune |
|
|
Nom de la partition dans la table de destination. Obligatoire si la table de destination est une table standard (partitionnée). |
Non |
Aucune |
|
|
Chaîne de connexion personnalisée ajoutée à l'URL JDBC (Java Database Connectivity) ( |
Non |
Aucune |
|
|
Nombre d'enregistrements à écrire par lot. Requis lorsque |
Conditionnel |
Aucune |
|
|
Taille du tampon de collecte de données DataX. Les données sources sont triées dans ce tampon selon les colonnes de clé de partition de la table de destination avant d'être soumises par lots. Définissez |
Conditionnel |
Désactivé |
|
|
Indique s'il faut écraser les données existantes dans la table de destination. La valeur |
Non |
|
|
|
Indique s'il faut ignorer les erreurs lorsque les données sources sont vides. Si la valeur est |
Non |
|
Choix d'un mode d'écriture
Le paramètre writeMode contrôle la manière dont l'outil d'écriture importe les données dans AnalyticDB for MySQL 2.0.
|
Mode |
Fonctionnement |
Cas d'utilisation |
|
|
Insère les enregistrements ligne par ligne. En cas de conflit de clé primaire, le nouvel enregistrement écrase l'enregistrement existant. Requiert les paramètres |
À utiliser pour les écritures incrémentielles ou de type upsert. |
|
|
Importe les données via un système tiers. Le paramètre |
À utiliser pour les scénarios de chargement complet de table ou de chargement en masse. |