Importez des données de table dans Alibaba Cloud SelectDB via la fonctionnalité Data Integration de DataWorks et ApsaraDB for SelectDB. Cet exemple utilise MySQL comme source de données pour synchroniser les données vers ApsaraDB for SelectDB.
Limites
La fonctionnalité Data Integration de DataWorks prend uniquement en charge le transfert de ApsaraDB for SelectDB vers Alibaba Cloud SelectDB.
L'écriture de données dans les champs BITMAP, HLL (HyperLogLog) et QUANTILE_STATE n'est pas prise en charge.
Développement d'une tâche de synchronisation des données
Ajouter des sources de données
Avant de développer une tâche de synchronisation des données, créez une source de données MySQL et une source de données SelectDB dans DataWorks.
Créez une source de données MySQL. Pour plus d'informations, consultez MySQL Data Source.
-
Créez une source de données SelectDB. Pour plus d'informations, consultez Data Source Management. Le tableau suivant présente les paramètres clés.
Paramètre
Description
Data source name
Nom de la source de données.
MySQL connection string
Chaîne de connexion JDBC :
jdbc:mysql://<ip>:<port>/<dbname>.Dans la console ApsaraDB for SelectDB, accédez à la page Instance Details > Network Information pour obtenir le VPC Endpoint (ou le Public Endpoint) ainsi que le MySQL Port.
Exemple :
jdbc:mysql://selectdb-cn-4xl3jv1****.selectdbfe.rds.aliyuncs.com:9030/test_dbRemarqueSi l'instance MySQL et l'instance ApsaraDB for SelectDB se trouvent dans le même VPC, utilisez le VPC Endpoint. Sinon, utilisez le Public Endpoint.
HTTP connection address
Adresse de connexion HTTP :
<ip>:<port>.Dans la console ApsaraDB for SelectDB, accédez à la page Instance Details > Network Information pour obtenir le VPC Endpoint (ou le Public Endpoint) ainsi que le HTTP Port.
Exemple :
selectdb-cn-4xl3jv1****.selectdbfe.rds.aliyuncs.com:8080RemarqueSi l'instance MySQL et l'instance ApsaraDB for SelectDB se trouvent dans le même VPC, utilisez le VPC Endpoint. Sinon, utilisez le Public Endpoint.
Username
Saisissez le nom d'utilisateur de votre instance ApsaraDB for SelectDB.
Password
Saisissez le mot de passe associé à l'utilisateur de votre instance ApsaraDB for SelectDB.
ImportantPour ajouter la source de données, ajoutez les adresses IP du groupe de ressources DataWorks à la liste d'autorisation des sources de données telles que SelectDB. Pour plus d'informations, consultez Add IP addresses to a whitelist. Lors de la configuration de la liste d'autorisation, distinguez bien les groupes de ressources Data Integration exclusifs et partagés.
Configurer la synchronisation hors ligne de table unique
Vous pouvez configurer une tâche de synchronisation hors ligne en mode assistant ou en mode script. Pour plus d'informations, consultez les rubriques suivantes :
-
Pour obtenir la liste complète des paramètres et un exemple de script pour le mode script, consultez Mode script : exemples et paramètres.
Mode script : exemples et paramètres
Configuration du script de tâche hors ligne
Pour configurer une tâche hors ligne en mode script, respectez le format détaillé dans Script mode configuration.
Exemple de script MySQL Reader et SelectDB Writer
{
"type":"job",
"version":"2.0",
"steps":[
{
"stepType":"mysql",
"parameter":{
"column":[
"<id>",
"<table_id>",
"<table_no>",
"<table_name>",
"<table_status>"
],
"connection":[
{
"datasource":"<mysql_datasource>",
"table":[
"<mysql_table_name>"
]
}
],
"where":"",
"splitPk":"",
"encoding":"UTF-8"
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"selectdb",
"parameter":{
"postSql":[
],
"preSql":[
],
"username": "<selectdb_username>",
"password": "<selectdb_password>",
"loadUrl":[
"<ip:port>"
],
"column":[
"<id>",
"<table_id>",
"<table_no>",
"<table_name>",
"<table_status>"
],
"connection":[
{
"datasource":"<selectdb_datasource>",
"table":[
"<selectdb_table_name>"
]
}
],
"maxBatchRows":1000000,
"loadProps":{
"format":"csv",
"column_separator": "\\x01",
"line_delimiter": "\\x02"
}
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"
},
"speed":{
"throttle":false,
"concurrent":1
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Paramètres du script
|
Paramètre |
Description |
|
datasource |
Obligatoire. Nom de la source de données DataWorks. Cette valeur doit correspondre exactement au nom de la source créée. |
|
table |
Obligatoire. Nom de la table de destination. |
|
column |
Obligatoire. Colonnes de destination dans lesquelles écrire les données, séparées par des virgules (,). Exemple : |
|
loadUrl |
Obligatoire. Endpoint HTTP du cluster FE SelectDB. Le format est |
|
username |
Obligatoire. Nom d'utilisateur de la base de données SelectDB. |
|
password |
Obligatoire. Mot de passe de l'utilisateur de la base de données SelectDB. |
|
preSql |
Instructions SQL à exécuter avant le début de la tâche de synchronisation. Le mode assistant accepte une seule instruction, tandis que le mode script en accepte plusieurs (par exemple pour vider une table). |
|
postSql |
Instructions SQL à exécuter après la fin de la tâche de synchronisation. Le mode assistant accepte une seule instruction, tandis que le mode script en accepte plusieurs (par exemple pour ajouter un horodatage). |
|
maxBatchRows |
Nombre maximal de lignes à importer par lot. La valeur par défaut est 500 000. |
|
loadProps |
Paramètres de requête pour COPY INTO spécifiant le format des données importées. Valeur par défaut : JSON. Si loadProps n'est pas configuré ou s'il est défini sur
Pour utiliser le format CSV, spécifiez le format et configurez les délimiteurs de ligne et de colonne comme indiqué ci-dessous. En l'absence de spécification, les colonnes sont séparées par des tabulations (
|
Types de données pris en charge
ApsaraDB for SelectDB prend en charge les types de données suivants.
|
Type de données SelectDB |
Écriture hors ligne |
|
INT |
Pris en charge |
|
BIGINT |
Pris en charge |
|
LARGEINT |
Pris en charge |
|
SMALLINT |
Pris en charge |
|
TINYINT |
Pris en charge |
|
BOOLEAN |
Pris en charge |
|
DECIMAL |
Pris en charge |
|
DOUBLE |
Pris en charge |
|
FLOAT |
Pris en charge |
|
CHAR |
Pris en charge |
|
VARCHAR |
Pris en charge |
|
STRING |
Pris en charge |
|
DATE |
Pris en charge |
|
DATEV2 |
Pris en charge |
|
DATETIME |
Pris en charge |
|
DATETIMEV2 |
Pris en charge |
|
ARRAY |
Pris en charge |
|
JSONB |
Pris en charge |
|
BITMAP |
Non pris en charge |
|
HLL (HyperLogLog) |
Non pris en charge |
|
QUANTILE_STATE |
Non pris en charge |