AnalyticDB for MySQL prend en charge l'importation et l'exportation de données via des tables externes. Cette rubrique explique comment utiliser une table externe dans un cluster AnalyticDB for MySQL Data Warehouse Edition pour exporter des données vers une base de données MySQL autogérée hébergée sur une instance ECS.
Prérequis
Vous disposez d'une instance ECS située dans la même région et le même VPC que votre cluster AnalyticDB for MySQL.
Vous avez installé une base de données MySQL autogérée sur l'instance ECS.
Vous avez ajouté une règle entrante au groupe de sécurité de l'instance ECS pour autoriser l'accès à la base de données MySQL autogérée sur le port 3306. Pour plus d'informations, consultez la section Ajouter une règle de groupe de sécurité.
-
Vous avez créé une base de données et préparé des données de test dans votre base de données MySQL autogérée.
Dans cet exemple, la base de données de destination est une base de données MySQL autogérée nommée
test_adb. Une table de destination nomméecoursesest créée dans cette base de données pour stocker les données exportées depuis le cluster AnalyticDB for MySQL. L'instruction suivante permet de 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 section Se connecter à un cluster.
-
Créez une table source et insérez-y des données.
Exécutez la commande 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. -
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_PROPERTIESLes propriétés de connexion qu'AnalyticDB for MySQL utilise pour accéder à la base de données MySQL autogérée.
urlL'Primary Private IP (adresse IP VPC) de l'instance ECS et le nom de la base de données de destination. Dans cet exemple, le nom de la base de données est
test_adb. Pour trouver l'adresse IP, procédez comme suit :-
Connectez-vous à la console ECS et localisez l'instance cible.
-
Sur la page Instance Details, dans la section Network Information, consultez l'Primary Private IP.
Format :
"jdbc:mysql://mysql-vpc-address:3306/ecs-database-name".Exemple :
jdbc:mysql://192.168.128.***:3306/test_adb.tablenameLe nom de la table de destination dans la base de données MySQL autogérée. Dans cet exemple, le nom de la table est
courses.usernameLe nom d'utilisateur du compte de base de données utilisé pour accéder à la base de données de destination.
passwordLe mot de passe du compte de base de données spécifié.
charsetLe jeu de caractères de la base de données MySQL. Valeurs possibles :
-
gbk
-
UTF8 (par défaut)
-
utf8mb4
-
-
Exportez les données du cluster AnalyticDB for MySQL vers la base de données MySQL autogérée de destination.
Syntaxe :
REPLACE INTO courses_external_table SELECT * FROM courses;Vous pouvez remplacer
SELECT * FROM coursespar n'importe quelle requête pour exporter des jeux de résultats arbitraires vers ApsaraDB RDS for MySQL.
Étapes suivantes
Connectez-vous à la base de données test_adb de votre instance MySQL autogérée. Ensuite, exécutez la commande suivante pour vérifier que les données ont bien été exportées vers la table courses de destination :
SELECT * FROM courses LIMIT 100;