AnalyticDB for MySQL utilise des tables externes pour importer et exporter des données. Cette rubrique explique comment utiliser une table externe dans un cluster AnalyticDB for MySQL Data Warehouse Edition pour exporter des données vers une instance ApsaraDB RDS for MySQL.
Prérequis
-
L'instance ApsaraDB RDS for MySQL et le cluster AnalyticDB for MySQL doivent se trouver dans le même VPC et partager le même ID de VPC.
RemarquePour trouver l'ID de VPC de l'instance ApsaraDB RDS for MySQL, connectez-vous à la console ApsaraDB RDS, cliquez sur l'ID de l'instance, puis sur la page Database Connection, consultez l'ID dans la section Network Type.
Connectez-vous à la console AnalyticDB for MySQL. Dans l'onglet Data Warehouse Edition, cliquez sur l'ID du cluster. Sur la page Cluster Information, consultez l'ID de VPC du cluster AnalyticDB for MySQL dans la section Network Information.
-
Créez une base de données dans l'instance ApsaraDB RDS for MySQL, établissez une connexion à l'instance et préparez les données de test requises. Pour plus d'informations, consultez les rubriques Créer des comptes et des bases de données et Se connecter à une instance ApsaraDB RDS for MySQL.
Dans cet exemple, la base de données de destination dans l'instance ApsaraDB RDS for MySQL est nommée
test_adb. Une table de destination nomméecoursesest requise dans cette base de données pour stocker les données exportées depuis le cluster AnalyticDB for MySQL. Utilisez l'instruction suivante pour créer la table :CREATE TABLE courses ( id bigint NOT NULL, name varchar(32) NOT NULL, grade varchar(32) NOT NULL, submission_date timestamp NOT NULL, PRIMARY KEY (id) ); -
Si le cluster AnalyticDB for MySQL est en mode élastique, vous devez activer l'option ENI dans la section Network Information de la page Cluster Information.
ImportantLorsque vous activez ou désactivez ENI, les connexions à la base de données peuvent être interrompues pendant environ 2 minutes. Pendant cette période, vous ne pouvez pas effectuer d'opérations de lecture ou d'écriture. Procédez avec prudence lors de l'activation ou de la désactivation d'ENI.
Procédure
Connectez-vous au cluster AnalyticDB for MySQL. Pour plus d'informations, consultez la rubrique Connexion à un cluster.
-
Créez une base de données source. Pour plus d'informations, consultez la rubrique Créer une base de données.
Dans cet exemple, la base de données source du cluster AnalyticDB for MySQL est nommée
adb_demo. -
Créez la table source et insérez des données.
Exécutez l'instruction suivante pour créer une table source nommée
coursesdans la base de données sourceadb_demo. Les données de cette table seront exportées vers la tablecoursesde la base de données de destinationtest_adb.CREATE TABLE courses ( id bigint AUTO_INCREMENT, name varchar NOT NULL, grade varchar DEFAULT '1st Grade', submission_date timestamp ) DISTRIBUTED BY HASH(id);Exécutez l'instruction suivante pour insérer une ligne de données dans la table source
courses:INSERT INTO courses (name,submission_date) VALUES("Jams",NOW()); -
Créez une table externe.
Exécutez l'instruction suivante pour créer une table externe nommée
courses_external_tabledans la base de données sourceadb_demo.CREATE TABLE IF NOT EXISTS courses_external_table( id bigint NOT NULL, name varchar(32) NOT NULL, grade varchar(32) NOT NULL, submission_date timestamp NOT NULL, PRIMARY KEY (id) ) ENGINE='mysql' TABLE_PROPERTIES='{ "url":"jdbc:mysql://mysql-vpc-address:3306/test_adb", "tablename":"courses", "username":"mysql-user-name", "password":"mysql-user-password", "charset":"utf8" }';Paramètre
Description
ENGINE='mysql'Le moteur de stockage de la table externe. Cet exemple utilise MySQL.
TABLE_PROPERTIESAnalyticDB for MySQL méthodes d'accès aux données RDS MySQL.
urlLe point de terminaison VPC de l'instance ApsaraDB RDS for MySQL et le nom de la base de données de destination. Dans cet exemple, la base de données de destination est
test_adb. Pour savoir comment afficher le point de terminaison de l'instance RDS, consultez la rubrique Afficher et gérer les points de terminaison et les ports des instances.Format :
"jdbc:mysql://mysql-vpc-address:3306/rds-database-name".Exemple :
jdbc:mysql://rm-bp1hem632****.mysql.rds.aliyuncs.com:3306/test_adb.tablenameLe nom de la table de destination dans l'instance ApsaraDB RDS for MySQL. Cet exemple utilise
courses.usernameLe nom d'utilisateur de la base de données ApsaraDB RDS for MySQL de destination.
passwordLe mot de passe associé au nom d'utilisateur spécifié.
charsetLe jeu de caractères MySQL. Valeurs valides :
-
gbk
-
UTF8 (par défaut)
-
utf8mb4
-
-
Exportez les données du cluster source AnalyticDB for MySQL vers l'instance ApsaraDB RDS for MySQL de destination.
Exécutez l'instruction suivante :
REPLACE INTO courses_external_table SELECT * FROM courses;
Étapes suivantes
Une fois l'exportation terminée, connectez-vous à la base de données de destination test_adb de votre instance ApsaraDB RDS for MySQL et exécutez l'instruction suivante pour vérifier que les données ont bien été exportées vers la table de destination courses :
SELECT * FROM courses LIMIT 100;