AnalyticDB for MySQL prend en charge cinq méthodes d'importation de données : les tables externes, DataWorks, Data Transmission Service (DTS), les programmes basés sur Java Database Connectivity (JDBC) et la synchronisation des données. Le choix approprié dépend de l'emplacement de vos données, de leur volume et de la fréquence à laquelle vous devez les transférer.
Choisir une méthode d'importation
| Source de données | Volume / fréquence | Méthode recommandée |
|---|---|---|
| OSS, HDFS, MaxCompute, RDS, PolarDB | Lot volumineux (Go–To), ponctuel ou quotidien | Tables externes |
| RDS for MySQL, Oracle, OSS, MaxCompute, HDFS | Petit lot, toutes les minutes ou heures | DataWorks |
| RDS for MySQL, PolarDB for MySQL, HBase | Temps réel, en quelques secondes | DTS |
| Fichiers journaux, données locales, pipelines personnalisés | Tout volume, nécessite un prétraitement | Programme basé sur JDBC |
| SLS, ApsaraMQ for Kafka, Hive, OSS | Flux continu ou piloté par les métadonnées | Synchronisation des données |
Utiliser des tables externes pour importer des données
Les tables externes mappent les données stockées dans des systèmes externes (OSS, HDFS, MaxCompute et plusieurs sources RDS et PolarDB). AnalyticDB for MySQL lit les données simultanément sur tous les nœuds du cluster et génère automatiquement les index à la fin du job, ce qui en fait l'option offrant le débit le plus élevé pour les importations volumineuses.
Comportements clés :
Les données importées ne sont pas visibles pendant l'exécution du job et ne deviennent interrogeables qu'une fois celui-ci terminé.
Si la partition cible existe déjà, ses données sont écrasées.
La génération d'index s'exécute automatiquement à la fin du job afin d'optimiser les performances des requêtes.
Planifiez les jobs volumineux pendant les heures creuses pour éviter toute contention des ressources.
Importation standard vs importation élastique
Par défaut, AnalyticDB for MySQL utilise l'importation standard, qui lit les données source sur des groupes de ressources interactifs (nœuds de calcul résidents) et écrit les index sur les nœuds de stockage. Cela peut entraîner une utilisation élevée du CPU et des E/S sur les nœuds de stockage pendant le job.
L'importation élastique (disponible à partir de la version V3.1.10.0) décharge à la fois la lecture et la génération d'index vers des groupes de ressources de job (nœuds de calcul mis à l'échelle dynamiquement), laissant les nœuds de stockage pratiquement indemnes. Utilisez l'importation élastique lorsque vous avez besoin d'une concurrence plus élevée ou souhaitez protéger les charges de travail interactives lors du chargement des données.
| Importation standard | Importation élastique | |
|---|---|---|
| Version minimale | Aucune limite | V3.1.10.0 et versions ultérieures |
| Jobs concurrents | Jusqu'à 2 | Jusqu'à 32 |
| Ressources consommées | Groupes de ressources interactifs + nœuds de stockage | Groupes de ressources de job uniquement ; impact minimal sur les nœuds de stockage |
| Activé par défaut | Oui | Oui, à partir de la version V3.1.10 |
| Sources de données prises en charge | MaxCompute, OSS, HDFS, ApsaraDB RDS for MySQL, ApsaraDB RDS for SQL Server, PolarDB-X, PolarDB for MySQL | MaxCompute, OSS |
| Durée minimale du job | Variable | ~2–3 minutes |
| Scénarios d'utilisation recommandés | Vous souhaitez importer une petite quantité de données ; aucune exigence en matière de vitesse ou de concurrence | Vous souhaitez consommer moins de ressources sur les nœuds de stockage pour accélérer l'importation des données ; un job d'importation implique plusieurs tables ; vous souhaitez importer une grande quantité de données vers des tables partitionnées |
Limites de l'importation élastique :
Prise en charge uniquement sur AnalyticDB for MySQL Data Lakehouse Edition (V3.0) basée sur des tables externes utilisant
INSERT OVERWRITE INTO.Importe les données d'une seule table uniquement — les jointures de tables ne sont pas prises en charge.
Prend en charge uniquement les clauses
WHEREetLIMIT;ORDER BYn'est pas pris en charge. Dans l'instructionSELECT, vous pouvez utiliser des astérisques (*), des noms de colonnes, des valeurs par défaut ou des constantes pour les champs de colonne et de valeur — les fonctions SQL ne sont pas prises en charge.Cible uniquement les tables de faits.
Types de données pris en charge :
BOOLEAN,TINYINT,SMALLINT,INT,BIGINT,FLOAT,DOUBLE,DECIMAL,VARCHAR,DATE,TIME,DATETIME,TIMESTAMP.
L'importation élastique nécessite au moins 2 à 3 minutes pour se terminer. Pour les jobs qui doivent se terminer en moins de 3 minutes, utilisez plutôt l'importation standard.
Ajuster la concurrence de l'importation élastique
Pour augmenter la concurrence au-delà de la valeur par défaut, définissez le paramètre adb.load.job.max.acu. Sa valeur par défaut est (nombre de shards) + 1. Définissez-le sur K × valeur par défaut où K ≥ 1. Maintenez K inférieur ou égal au nombre de partitions dans la table partitionnée cible.
Interrogez le nombre de shards dans votre cluster :
SELECT count(1) FROM information_schema.kepler_meta_shards;
Pour connaître le nombre de partitions, consultez Analyse du stockage.
Cas d'utilisation
Initialisation de l'entrepôt de données : Chargez des téraoctets de données historiques depuis OSS ou HDFS vers AnalyticDB for MySQL pour la première fois. Planifiez cette opération pendant les heures creuses pour éviter toute contention des ressources.
Ingestion quotidienne par lots : Importez chaque jour des gigaoctets à téraoctets de données traitées depuis MaxCompute vers AnalyticDB for MySQL pour une analyse accélérée.
Optimisation des performances
Pour les stratégies d'optimisation spécifiques aux importations via des tables externes, consultez Optimiser les performances d'importation des données — tables externes.
Utiliser DataWorks pour importer des données
DataWorks fournit une interface visuelle sans code pour configurer des jobs de synchronisation de données entre un large éventail de sources et AnalyticDB for MySQL. Cette solution convient aux importations fréquentes de petits lots et aux scénarios où les données proviennent de plusieurs sources hétérogènes.
Pour les importations de plusieurs centaines de gigaoctets ou plus, utilisez plutôt des tables externes. DataWorks est optimisé pour des transferts plus petits et plus fréquents.
Cas d'utilisation
Importations fréquentes de petits lots : Chargez de petites quantités de données toutes les minutes ou toutes les heures pour une analyse en quasi temps réel.
Consolidation multi-sources : Extrayez des données provenant de sources telles que Tablestore, Redis et PostgreSQL vers un seul cluster AnalyticDB for MySQL.
Premiers pas
-
Configurez la source de données. Sources prises en charge :
Configurer les connexions source et destination pour le job de synchronisation.
Optimisation des performances
Pour les stratégies d'optimisation spécifiques aux importations via DataWorks, consultez Optimiser les performances d'importation des données — DataWorks.
Utiliser DTS pour importer des données
Data Transmission Service (DTS) est un service de streaming de données en temps réel qui prend en charge les systèmes de gestion de bases de données relationnelles (SGBDR), les bases de données NoSQL et les bases de données de traitement analytique en ligne (OLAP) comme sources. DTS capture continuellement les données modifiées et les réplique vers AnalyticDB for MySQL en quelques secondes, ce qui en fait le choix idéal lorsque votre analyse doit refléter l'état le plus récent d'une base de données opérationnelle.
Cas d'utilisation
Synchronisation en temps réel : Transférez les modifications depuis ApsaraDB RDS for MySQL ou PolarDB for MySQL vers AnalyticDB for MySQL en quelques secondes.
Agrégation multi-sources : Consolidez les données provenant de plusieurs instances RDS for MySQL ou clusters PolarDB for MySQL dans un seul cluster AnalyticDB for MySQL. Utilisez la fonctionnalité de fusion multi-table de DTS pour unifier plusieurs tables sources ayant le même schéma en une seule table de destination.
Premiers pas
Utiliser un programme basé sur JDBC pour importer des données
Un programme basé sur JDBC vous offre un contrôle total sur le pipeline d'importation. Utilisez cette méthode lorsque les données nécessitent un prétraitement — analyse de fichiers journaux, application de transformations ou gestion de formats que les tables externes ne peuvent pas lire — ou lorsqu'il n'est pas possible de mettre les données en attente sur OSS, HDFS ou MaxCompute au préalable.
Cas d'utilisation
Importation après prétraitement des données : Analysez les fichiers journaux ou appliquez des transformations personnalisées avant de charger les données dans AnalyticDB for MySQL en temps réel.
Importation de données locales : Chargez des données locales qui ne peuvent pas être mises en attente sur OSS, HDFS ou MaxCompute au préalable.
Remarques sur l'utilisation
Configurez un pilote JDBC approprié avant de vous connecter. Consultez Versions de pilotes MySQL JDBC prises en charge.
Pour les importations volumineuses, configurez un pool de connexions pour réduire la surcharge. Consultez Pool de connexions Druid.
Utilisez des insertions par lots et des connexions simultanées pour maximiser le débit.
Pour les données en flux continu (par exemple, les pipelines Apache Flink), consultez Importer des données depuis Apache Flink.
Pour les données locales non personnalisées, consultez Utiliser LOAD DATA pour importer des données vers Data Warehouse Edition et Utiliser l'outil d'importation AnalyticDB for MySQL pour importer des données vers Data Warehouse Edition.
Optimisation des performances
Pour les stratégies d'optimisation spécifiques aux importations basées sur JDBC, consultez Optimiser les performances d'importation des données — JDBC.
Utiliser la synchronisation des données pour importer des données
AnalyticDB for MySQL inclut des fonctionnalités intégrées de synchronisation des données pour l'ingestion en flux continu, la gestion des métadonnées et la migration des données : AnalyticDB Pipeline Service (APS), découverte de métadonnées et migration de données Hive.
Cas d'utilisation
Ingestion économique de journaux et de messages : Utilisez APS pour diffuser continuellement des données depuis Simple Log Service (SLS) et ApsaraMQ for Kafka vers AnalyticDB for MySQL pour un stockage et une analyse rentables.
Découverte de métadonnées OSS : Lorsque les données OSS manquent de métadonnées structurées, la fonctionnalité de découverte de métadonnées analyse OSS et crée des métadonnées de base de données, de table et de partition — y compris les formats de données et les définitions de champs — rendant les données accessibles à AnalyticDB for MySQL et à d'autres moteurs d'analyse.
Migration de données Hive : Migrez les données Hive vers OSS à l'aide de la fonctionnalité de migration de données Hive. AnalyticDB for MySQL organise ensuite automatiquement les métadonnées pour l'analyse ultérieure.