Les instances en lecture seule analytiques d'ApsaraDB RDS for MySQL s'appuient sur un moteur DuckDB intégré, combinant stockage columnaire et exécution vectorisée pour traiter les requêtes analytiques complexes jusqu'à 100 fois plus rapidement qu'InnoDB. Exécutez vos requêtes MySQL existantes directement sur des données en temps réel, sans modification de schéma ni pipeline OLAP (traitement analytique en ligne) externe.
Fonctionnalités clés
Analyses haute performance
Le moteur DuckDB associe le stockage columnaire, l'exécution vectorisée, la compilation juste-à-temps (JIT), une gestion efficace de la mémoire et le traitement parallèle pour accélérer les requêtes analytiques complexes. Lors des tests de référence TPC-H sf-100, une instance en lecture seule analytique basée sur DuckDB a exécuté l'intégralité des 22 requêtes en 15,31 secondes au total, contre 25 234,31 secondes pour InnoDB et 80,01 secondes pour ClickHouse Community Edition.
Compatibilité MySQL
L'instance en lecture seule analytique est compatible à 100 % avec le protocole MySQL et les types de données, et prend en charge plus de 99,9 % de la syntaxe SQL, y compris le langage de définition de données (DDL). Soumettez vos requêtes existantes sans aucune modification : l'instance se charge du reste.
Synchronisation des données en temps réel
Les données transitent de l'instance principale vers l'instance en lecture seule analytique selon deux phases :
Données historiques : lors de la création de l'instance en lecture seule analytique, le système copie toutes les données existantes depuis l'instance principale et les convertit automatiquement au format du moteur DuckDB.
Données incrémentielles : après la création, un canal de réplication natif par journalisation binaire synchronise les nouvelles écritures en temps réel. Les données restent au sein de RDS ; aucun outil de synchronisation externe tel que DTS n'est nécessaire, et aucun frais supplémentaire ne s'applique à la synchronisation des données.
Isolation des ressources
Les requêtes analytiques s'exécutent sur l'instance en lecture seule analytique dédiée, laissant l'instance principale et les instances en lecture seule standard disponibles pour le traitement des transactions. Les requêtes intensives d'un côté n'ont aucun impact sur l'autre.
Cas d'utilisation
Agrégation et analyse : exécutez des requêtes d'agrégation sur de grands volumes de données, tels que des journaux, avec une latence nettement inférieure à celle du stockage orienté ligne.
Requêtes JOIN multi-tables : exécutez des requêtes
JOINcomplexes impliquant plusieurs tables, qui seraient irréalisables sur une instance MySQL standard.
Comparaison
Optez pour une instance en lecture seule analytique basée sur DuckDB lorsque vous recherchez des performances analytiques élevées sans modifier votre configuration MySQL actuelle. Le tableau suivant résume les principales différences entre les types d'instances.
| Instance en lecture seule analytique basée sur DuckDB | Instance en lecture seule standard | Base de données OLAP | |
|---|---|---|---|
| Idéal pour | Requêtes analytiques complexes | Traitement des transactions | Requêtes analytiques complexes |
| Performances des requêtes | Élevées | Faibles | Élevées |
| Méthode de synchronisation des données | Réplication native par journalisation binaire | Réplication native par journalisation binaire | Lien de synchronisation des données DTS |
| Protocole MySQL | Entièrement compatible | Entièrement compatible | Incompatible |
| Syntaxe SQL | Hautement compatible (plus de 99,9 %) | Entièrement compatible | Incompatible (réécriture SQL requise) |
| DDL | Hautement compatible | Entièrement compatible | Partiellement compatible |
| Types de données | Entièrement compatible | Entièrement compatible | Incompatible (mappage des champs requis) |
| Coûts d'O&M | Faibles (instance intégrée) | Faibles (instance intégrée) | Élevés (maintenance supplémentaire requise pour la base de données et le lien de synchronisation) |
Annexe : test de performance de référence
Les résultats suivants s'appuient sur le test de référence standard TPC-H pour illustrer les performances des requêtes analytiques d'une instance en lecture seule analytique basée sur DuckDB.
Environnement de test
| Élément | Détails |
|---|---|
| Jeu de données | TPC-H sf-100, 100 Go, issu du site officiel DuckDB |
| Spécifications de l'hôte | CPU 32 cœurs, 128 Go de mémoire, stockage SSD entreprise (même hôte ECS pour toutes les instances) |
| Instances comparées | ApsaraDB RDS for MySQL 8.0.36 (moteur InnoDB), ClickHouse Community Edition 25.3 |
| Méthode de test | 3 tours d'échauffement (non comptabilisés) + 3 tours officiels ; le résultat final correspond à la moyenne des tours officiels |
Résultats des tests
Le tableau suivant indique le temps d'exécution (en secondes) pour chaque requête TPC-H sf-100.
| ID de requête | Instance en lecture seule analytique basée sur DuckDB | Instance ApsaraDB RDS for MySQL standard (moteur InnoDB) | ClickHouse |
|---|---|---|---|
| q1 | 0,92 | 1134,25 | 3,47 |
| q2 | 0,15 | 1800 | 1,52 |
| q3 | 0,53 | 802,94 | 3,65 |
| q4 | 0,46 | 1000,45 | 2,77 |
| q5 | 0,5 | 1800 | 5,38 |
| q6 | 0,22 | 566,73 | 0,73 |
| q7 | 0,59 | 1800 | 6,06 |
| q8 | 0,68 | 1800 | 6,99 |
| q9 | 1,44 | 1800 | 13,29 |
| q10 | 0,91 | 894,35 | 3,22 |
| q11 | 0,11 | 79,63 | 1,1 |
| q12 | 0,44 | 734,35 | 1,69 |
| q13 | 1,59 | 454,15 | 5,85 |
| q14 | 0,38 | 574,07 | 0,83 |
| q15 | 0,31 | 568,43 | 1,53 |
| q16 | 0,32 | 63,56 | 0,52 |
| q17 | 0,89 | 1800 | 7,96 |
| q18 | 1,59 | 1800 | 3,11 |
| q19 | 0,8 | 1800 | 2,96 |
| q20 | 0,51 | 1800 | 3,38 |
| q21 | 1,64 | 1800 | Mémoire insuffisante |
| q22 | 0,33 | 361,4 | 4 |
| Total | 15,31 | 25234,31 | 80,01 |
Conclusions des tests
Instance en lecture seule analytique basée sur DuckDB par rapport à une instance ApsaraDB RDS for MySQL (moteur InnoDB)


L'instance en lecture seule analytique basée sur DuckDB a exécuté l'intégralité des 22 requêtes en 15,31 secondes. L'instance InnoDB a mis 25 234,31 secondes, soit un écart de performance supérieur à 1 000 fois. Neuf requêtes (q5, q7, q8, q9, q17, q18, q19, q20, q21) ont atteint le délai d'expiration de 1 800 secondes sur InnoDB et n'ont pas pu aboutir.
Instance en lecture seule analytique basée sur DuckDB par rapport à ClickHouse


ClickHouse a terminé le test de référence en 80,01 secondes. L'instance en lecture seule analytique basée sur DuckDB a achevé les tests en 15,31 secondes et a surpassé ClickHouse sur chaque requête exécutée avec succès par les deux instances. ClickHouse a échoué sur la requête q21 avec une erreur Memory limit exceeded.