Tous les produits
Search
Centre de documentation

AnalyticDB:Interroger et importer des données Tablestore

Dernière mise à jour :Aug 10, 2026

AnalyticDB for MySQL vous permet d'interroger directement les données Tablestore via des tables externes ou de les importer dans des tables internes pour des analyses récurrentes. Privilégiez l'interrogation directe pour un accès ponctuel. Optez pour l'importation lorsque la performance est critique ou pour des analyses répétées : l'interrogation d'une table interne est plus rapide que celle d'une table externe.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Un cluster AnalyticDB for MySQL Enterprise, Basic ou Data Lakehouse Edition.

  • Si votre instance Tablestore est associée à un réseau privé virtuel (VPC), le cluster AnalyticDB for MySQL doit se trouver dans le même VPC.

Contexte

Une instance Tablestore gère les tables et les données au sein de Tablestore ; elle équivaut à une base de données. Chaque instance Tablestore correspond à un schéma ou à une base de données AnalyticDB for MySQL.

Accès réseau : si aucune liaison VPC n'est configurée sur l'instance Tablestore, AnalyticDB for MySQL peut accéder directement aux données. En revanche, si un VPC est associé, le cluster AnalyticDB for MySQL doit impérativement résider dans ce même VPC.

Exemple de données

Les exemples de cette rubrique s'appuient sur une table Tablestore nommée person contenant les données ci-dessous. Ignorez cette section si vous disposez déjà de vos propres données source.

id (clé primaire)

name

age

1

james

10

2

bond

20

3

jack

30

4

lucy

40

Ouvrir l'éditeur SQL

  1. Connectez-vous à la console AnalyticDB for MySQL. Dans le coin supérieur gauche, sélectionnez une région. Dans le volet de navigation de gauche, cliquez sur Clusters. Identifiez votre cluster et cliquez sur son ID.

  2. Dans le volet de navigation de gauche, choisissez Job Development > SQL Development.

Interroger les données Tablestore

Étape 1 : Créer une base de données externe

CREATE EXTERNAL DATABASE adb_external_db;

Étape 2 : Créer une table externe

La table externe doit refléter exactement la structure de la table Tablestore : mêmes noms de champs, même nombre et même ordre. Les types de données doivent également être compatibles. Pour consulter les correspondances de types, reportez-vous à la section Correspondances des types de données.

L'exemple suivant crée une table nommée person dans la base de données adb_external_db :

CREATE EXTERNAL TABLE IF NOT EXISTS adb_external_db.person (
    id    int,
    name  string,
    age   int
)
ENGINE = 'OTS'
TABLE_PROPERTIES = '{
    "mapped_name": "person",
    "location": "https://w0****la.cn-hangzhou.vpc.tablestore.aliyuncs.com"
}';

Paramètre

Description

ENGINE='OTS'

Moteur de stockage utilisé pour lire et écrire les données Tablestore. Définissez toujours cette valeur sur OTS.

mapped_name

Nom de la table au sein de l'instance Tablestore. Pour retrouver ce nom, accédez à la console Tablestore et ouvrez la page All Instances.

location

URL VPC de l'instance Tablestore. Pour obtenir cette URL, rendez-vous sur la console Tablestore et consultez la page All Instances.

Étape 3 : Interroger les données

Une fois la table externe créée, AnalyticDB for MySQL mappe automatiquement les données provenant de la table Tablestore. Exécutez l'instruction SELECT suivante pour interroger ces données :

SELECT * FROM adb_external_db.person;

Résultat attendu :

+------+-------+------+
| id   | name  | age  |
+------+-------+------+
|    1 | james |   10 |
|    2 | bond  |   20 |
|    3 | jack  |   30 |
|    4 | lucy  |   40 |
+------+-------+------+
4 rows in set (0.35 sec)

Importer les données Tablestore vers AnalyticDB for MySQL

L'importation des données Tablestore dans une table interne AnalyticDB for MySQL accélère les requêtes répétitives. Trois méthodes d'écriture sont disponibles ; choisissez celle qui correspond le mieux à vos besoins en matière de déduplication et de performance.

Étape 1 : Créer une base de données

CREATE DATABASE adb_demo;

Étape 2 : Créer une table de destination

La table de destination doit présenter le même nombre de champs et le même ordre que la table externe. Assurez-vous également de la compatibilité des types de données.

CREATE TABLE IF NOT EXISTS adb_demo.adb_import_test (
    id   int,
    name string,
    age  int
)
DISTRIBUTED BY HASH(id);

Étape 3 : Écrire les données

Sélectionnez une méthode d'écriture selon la gestion souhaitée pour les clés primaires en double :

Méthode

Gestion des doublons

Syntaxe

INSERT INTO

Ignorer les doublons (équivalent à INSERT IGNORE INTO)

INSERT INTO ... SELECT ...

INSERT OVERWRITE

Écraser les doublons

INSERT OVERWRITE ... SELECT ...

SUBMIT JOB

Écrasement asynchrone

SUBMIT JOB INSERT OVERWRITE ... SELECT ...

Méthode 1 : INSERT INTO (ignorer les doublons)

Si une ligne possédant une clé primaire identique existe déjà, elle est ignorée.

INSERT INTO adb_demo.adb_import_test
SELECT * FROM adb_external_db.person;

Vérifiez le résultat :

SELECT * FROM adb_demo.adb_import_test;

Résultat attendu :

+------+-------+------+
| id   | name  | age  |
+------+-------+------+
|    1 | james |   10 |
|    2 | bond  |   20 |
|    3 | jack  |   30 |
|    4 | lucy  |   40 |
+------+-------+------+

Méthode 2 : INSERT OVERWRITE (remplacer les doublons)

Si une ligne avec une clé primaire identique existe déjà, la ligne existante est écrasée.

INSERT OVERWRITE adb_demo.adb_import_test
SELECT * FROM adb_external_db.person;

Méthode 3 : SUBMIT JOB (importation asynchrone)

Dans la plupart des cas, utilisez SUBMIT JOB pour exécuter l'importation de manière asynchrone. Vous pouvez ajouter l'indicateur /*+ direct_batch_load=true*/ afin d'accélérer l'exécution de la tâche.

SUBMIT JOB
INSERT OVERWRITE adb_demo.adb_import_test
SELECT * FROM adb_external_db.person;

L'instruction renvoie un ID de tâche :

+---------------------------------------+
| job_id                                |
+---------------------------------------+
| 2020112122202917203100908203303****** |

Pour suivre l'avancement de la tâche asynchrone, consultez la rubrique Soumettre une tâche d'importation de manière asynchrone.

Correspondances des types de données

Le tableau ci-dessous détaille les correspondances de types de données entre Tablestore et AnalyticDB for MySQL.

Tablestore

AnalyticDB for MySQL

INTEGER (8 octets)

BIGINT (8 octets)

STRING

VARCHAR

BINARY

BINARY

DOUBLE

DOUBLE

BOOLEAN

BOOLEAN

Étapes suivantes

  • Pour comprendre comment l'instruction INSERT INTO gère les doublons, consultez la rubrique INSERT INTO.

  • Pour en savoir plus sur les options d'importation asynchrone et la syntaxe INSERT OVERWRITE SELECT, reportez-vous à la section INSERT OVERWRITE SELECT.