Exportez des données d’un cluster AnalyticDB for MySQL Data Warehouse Edition (V3.0) vers des tables partitionnées MaxCompute à l’aide de tables externes. Créez une table externe mappant la table MaxCompute de destination, puis exécutez une instruction INSERT pour écrire les données dans la partition cible.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
-
Une table de destination créée dans MaxCompute. Pour débuter, consultez la section Créer un compte Alibaba Cloud. Pour créer la table, reportez-vous à la rubrique Créer des tables. Les exemples ci-dessous illustrent la création de tables partitionnées MaxCompute. Pour plus d’informations, consultez la section Opérations sur les tables.
-
Créez une table avec des partitions de hachage :
CREATE TABLE IF NOT EXISTS odps_table ( uid STRING ) PARTITIONED BY (ds STRING) LIFECYCLE 3; -
Créez une table avec des partitions de liste :
CREATE TABLE IF NOT EXISTS odps_table ( uid STRING ) PARTITIONED BY (ds STRING,other STRING) LIFECYCLE 3;
-
Un cluster AnalyticDB for MySQL Data Warehouse Edition (V3.0) dont la liste d’autorisation est configurée, avec un compte et une base de données créés. Consultez la section Créer un cluster.
(Si vous utilisez le mode élastique) Interface réseau élastique (ENI) activée dans la section Network Information de la page Cluster Information.
Chaque opération d’exportation écrit les données dans une seule partition. Pour exporter des données vers plusieurs partitions, exécutez une instruction INSERT distincte pour chaque partition. MaxCompute prend en charge jusqu’à six niveaux de partitions.
Fonctionnement
Chaque exportation suit trois étapes :
Connectez-vous au cluster AnalyticDB for MySQL.
Créez une table externe dans AnalyticDB for MySQL mappant la table MaxCompute de destination.
Exécutez une instruction INSERT pour écrire les données de la table AnalyticDB for MySQL vers la partition MaxCompute.
La table externe utilise le moteur ENGINE='ODPS' et un objet JSON TABLE_PROPERTIES pour établir la connexion. AnalyticDB for MySQL ne peut atteindre MaxCompute que via des endpoints VPC ; les endpoints publics ne sont pas pris en charge.
Exporter des données vers une table MaxCompute avec des partitions de hachage
Cet exemple exporte les données de la table adb_table dans AnalyticDB for MySQL vers la table odps_table, une table MaxCompute dotée d’une partition de hachage à un seul niveau sur la colonne ds.
Étape 1 : Connectez-vous à votre cluster AnalyticDB for MySQL
Consultez la section Se connecter à un cluster AnalyticDB for MySQL.
Étape 2 : Créez une table externe
CREATE TABLE odps_external_table
(
uid string,
ds string
)
ENGINE='ODPS'
TABLE_PROPERTIES='{
"endpoint":"http://service.odps.aliyun-inc.com/api",
"accessid":"<your-accesskey-id>",
"accesskey":"<your-accesskey-secret>",
"project_name":"<your-maxcompute-project>",
"table_name":"odps_table",
"partition_column":"ds"
}'
| Paramètre | Description |
|---|---|
ENGINE='ODPS' |
Définit le moteur sur MaxCompute. |
TABLE_PROPERTIES |
Détails de connexion utilisés par AnalyticDB for MySQL pour accéder à MaxCompute et y écrire des données. |
endpoint |
Endpoint VPC de MaxCompute. Pour connaître les valeurs d’endpoint par région, consultez la section Endpoints. |
accessid |
ID AccessKey utilisé pour accéder à la table MaxCompute de destination. |
accesskey |
Secret AccessKey utilisé pour accéder à la table MaxCompute de destination. |
project_name |
Projet MaxCompute contenant la table de destination. |
table_name |
Nom de la table de destination dans MaxCompute. |
partition_column |
Colonne de partition. Pour une table partitionnée par hachage, spécifiez la colonne de partition unique. |
Étape 3 : Exportez les données vers la partition cible
INSERT [OVERWRITE] INTO odps_external_table PARTITION(ds='20200401')
SELECT [adb_table_column, ...] FROM adb_table [WHERE ...]
N’incluez pas la colonne de partition (ds) dans la liste des colonnes SELECT. La valeur de partition est définie par la clause PARTITION.
Exporter des données vers une table MaxCompute avec des partitions de liste
Cet exemple exporte les données de la table adb_table vers la table odps_table, une table MaxCompute dotée d’une partition de liste à deux niveaux sur les colonnes ds et other.
Étape 1 : Connectez-vous à votre cluster AnalyticDB for MySQL
Consultez la section Se connecter à un cluster AnalyticDB for MySQL.
Étape 2 : Créez une table externe
CREATE TABLE odps_external_table
(
uid string,
ds string,
other string
)
ENGINE='ODPS'
TABLE_PROPERTIES='{
"endpoint":"http://service.odps.aliyun-inc.com/api",
"accessid":"<your-accesskey-id>",
"accesskey":"<your-accesskey-secret>",
"project_name":"<your-maxcompute-project>",
"table_name":"odps_table",
"partition_column":"ds,other"
}'
Pour une table partitionnée par liste comportant plusieurs niveaux, définissez le paramètre partition_column sous la forme d’une liste de colonnes de partition séparées par des virgules, dans l’ordre des niveaux.
Étape 3 : Exportez les données vers la partition cible
INSERT [OVERWRITE] INTO odps_external_table PARTITION(ds='20200401',other='hangzhou')
SELECT [adb_table_column, ...] FROM adb_table [WHERE ...]
N’incluez pas les colonnes de partition (ds, other) dans la liste des colonnes SELECT. Les valeurs de partition sont définies par la clause PARTITION.
Étapes suivantes
Opérations sur les tables — créer des tables MaxCompute avec des niveaux de partition supérieurs
Endpoints — rechercher l’endpoint VPC pour votre région MaxCompute