Les instances analytiques ApsaraDB RDS for MySQL basées sur DuckDB s'appuient sur le stockage en colonnes et la vectorisation pour améliorer les performances des requêtes analytiques complexes d'un facteur cent. La compression du stockage en colonnes réduit considérablement les coûts de stockage. Ces instances offrent aux entreprises une analyse en temps réel rentable pour les scénarios de données à grande échelle, afin d'améliorer la prise de décision fondée sur les données.
Fonctionnalités
Les instances analytiques basées sur DuckDB comprennent les types suivants :
-
Instance principale analytique basée sur DuckDB
Définition : Instance de base de données autonome, similaire à une instance principale RDS for MySQL classique. Ce type est disponible pour l'édition Cluster de RDS et est déployé avec plusieurs nœuds de secours capables de gérer les requêtes en lecture.
-
Fonctionnalités principales :
Elle conserve toutes les fonctionnalités de base d'une instance RDS for MySQL classique et reste compatible avec les outils et écosystèmes associés. Pour plus d'informations, consultez la rubrique Présentation d'une instance principale analytique basée sur DuckDB.
Elle intègre profondément le moteur analytique DuckDB au noyau MySQL. Elle utilise le stockage en colonnes et la vectorisation comme technologies centrales pour offrir à la fois un support robuste des transactions et des capacités de traitement analytique complexe haute performance.
-
Instance en lecture seule analytique basée sur DuckDB
Définition : Type d'instance en lecture seule attaché à une instance RDS for MySQL classique exécutant l'édition Haute disponibilité.
-
Fonctionnalités principales :
Flux de données transparent : Elle utilise la réplication native basée sur la journalisation binaire (binlog) pour synchroniser automatiquement les données et transformer les schémas de table. Cela élimine le besoin de maintenir un lien de synchronisation de données distinct.
HTAP intégré : Elle prend en charge les requêtes analytiques via des connexions directes à l'instance en lecture seule analytique basée sur DuckDB ou en routant automatiquement les requêtes vers l'instance via un proxy de base de données. Cette architecture offre des capacités intégrées de traitement hybride transactionnel et analytique (HTAP). Elle garantit les performances du traitement transactionnel (TP) de l'instance principale et améliore l'efficacité de l'analyse des données.
|
Élément de comparaison |
Instance principale analytique basée sur DuckDB |
Instance en lecture seule analytique basée sur DuckDB |
Instance en lecture seule RDS for MySQL |
Base de données OLAP |
|
|
Scénario |
Requêtes analytiques complexes |
Requêtes analytiques complexes |
Traitement des transactions |
Requêtes analytiques complexes |
|
|
Performances des requêtes analytiques |
Élevées |
Élevées |
Faibles |
Élevées |
|
|
Méthode de synchronisation des données |
Lien de synchronisation de données DTS |
Réplication native basée sur la journalisation binaire |
Réplication native basée sur la journalisation binaire |
Lien de synchronisation de données DTS |
|
|
Compatibilité MySQL |
Type de données |
Entièrement compatible |
Entièrement compatible |
Entièrement compatible |
Incompatible (nécessite un mappage de champs) |
|
Syntaxe SQL |
Hautement compatible (> 99,9 %) |
Hautement compatible (> 99,9 %) |
Entièrement compatible |
Incompatible (nécessite une réécriture SQL) |
|
|
DDL |
Hautement compatible |
Hautement compatible (prend en charge la reconstruction automatique) |
Entièrement compatible |
Partiellement compatible |
|
|
Coûts d'exploitation et de maintenance |
Faibles |
Faibles |
Faibles |
Élevés |
|
|
Modèle de déploiement |
Déploiement autonome |
Attaché à une instance RDS for MySQL classique |
Attaché à une instance RDS for MySQL classique |
Déploiement autonome |
|
|
Édition prise en charge |
Édition Cluster |
Édition Haute disponibilité |
Édition Basic, Édition Haute disponibilité |
- |
|
Scénarios
Analyse agrégée : Les instances analytiques basées sur DuckDB fournissent des requêtes agrégées efficaces pour l'analyse agrégée en temps réel, telle que l'analyse des journaux.
Requêtes de jointure multi-tables : Pour les services de requête impliquant des opérations
JOINsur plusieurs tables, ces instances peuvent améliorer considérablement les performances analytiques de MySQL.
Principes techniques
Qu'est-ce que DuckDB ?
DuckDB est une base de données OLAP (traitement analytique en ligne) autonome conçue pour les scénarios embarqués. Son architecture centrale équilibre l'analyse haute performance avec le traitement des transactions :
Analyse haute performance : Le stockage en colonnes accélère considérablement les requêtes d'analyse agrégée, et le moteur d'exécution vectorisé traite efficacement les données par lots.
Support robuste des transactions : Il fournit des capacités de transaction ACID complètes (atomicité, cohérence, isolation, durabilité). Il utilise un mécanisme de contrôle de concurrence multiversion (MVCC) pour permettre des opérations de lecture et d'écriture concurrentes efficaces dans un environnement autonome.
Optimisations techniques
ApsaraDB RDS intègre profondément le moteur DuckDB pour combiner l'analyse haute performance de DuckDB avec l'écosystème MySQL. Cette approche équilibre l'analyse haute performance avec le traitement des transactions. Elle répond aux besoins analytiques efficaces des entreprises pour les données à grande échelle tout en garantissant la fiabilité et la cohérence des données de niveau entreprise.
Optimisations techniques générales (pour les instances analytiques principales et en lecture seule)
-
Optimisation du moteur de stockage
Il encapsule le stockage en colonnes de DuckDB en tant que moteur de stockage transactionnel au sein de MySQL et utilise le dictionnaire de données MySQL standard pour gérer les métadonnées. Cela garantit une compatibilité totale avec la sémantique transactionnelle de l'instance principale.
Il améliore la capacité de synchronisation native basée sur la journalisation binaire et utilise la journalisation préalable à l'écriture (WAL) de DuckDB pour la persistance des transactions. Cela garantit la cohérence des données entre l'instance ApsaraDB RDS for MySQL et l'instance analytique basée sur DuckDB.
-
Amélioration du moteur de calcul
Il intègre les composants principaux de DuckDB. L'optimiseur, le moteur d'exécution vectorisé et le compilateur sont profondément intégrés pour prendre en charge la compilation juste-à-temps (JIT) et la vectorisation. Cela améliore les performances des requêtes complexes de deux ordres de grandeur par rapport à InnoDB.
Il adapte l'analyseur SQL pour prendre en charge 99,9 % de la syntaxe et des fonctions MySQL. Cela garantit que les instructions de requête existantes peuvent être exécutées directement sans modification.
Le composant Result Translator convertit automatiquement les résultats de calcul de DuckDB en un format compatible avec le protocole MySQL. Cela permet une intégration client transparente sans nécessiter d'ajustements de la logique applicative existante.
-
Accélération des requêtes
Stockage en colonnes : Les données sont stockées localement au format natif en colonnes de DuckDB. Cela améliore les performances des requêtes agrégées de plus de 100 fois. Par exemple, le temps de réponse pour une requête SUM sur la même quantité de données est réduit à 1/100e du temps requis par InnoDB.
Mise en cache automatique des données fréquentes : Le système utilise le mécanisme Buffer Pool de DuckDB pour mettre automatiquement en cache les données fréquemment interrogées. Cela fournit un support stable pour les scénarios métier à forte concurrence.
Optimisations techniques supplémentaires pour les instances en lecture seule analytiques basées sur DuckDB
-
Amélioration des performances de synchronisation des données
Il introduit un mécanisme de lot qui combine les transactions petites et fréquentes en grandes transactions. Cela réduit considérablement la latence d'écriture.
Relecture idempotente : Le système effectue des contrôles d'idempotence sur les événements du journal binaire pour garantir une forte cohérence dans la synchronisation des données.
-
Optimisation de la synchronisation DDL
Le système identifie automatiquement les opérations Data Definition Language (DDL) prises en charge nativement par DuckDB, telles que la création de tables et l'ajout ou la suppression de champs. Ces opérations sont routées directement vers le moteur DuckDB pour exécution sans conversion. Cela garantit les performances de synchronisation des données.
Pour les opérations DDL non prises en charge par DuckDB, le système déclenche automatiquement une reconstruction de table avant l'exécution. Cela empêche les erreurs d'exécution d'interrompre la réplication et garantit la stabilité du lien de synchronisation.
Isolation des ressources : L'instance en lecture seule analytique basée sur DuckDB est isolée de l'instance principale ApsaraDB RDS for MySQL. Par conséquent, les requêtes analytiques n'affectent pas le traitement des transactions en ligne, garantissant la stabilité des opérations métier principales.
Flux de travail d'une instance analytique basée sur DuckDB
Analyse SQL : L'analyseur MySQL standard analyse la requête SQL de l'utilisateur.
Exécution SQL : Le moteur de calcul DuckDB exécute la requête analysée.
Récupération des données : Le moteur de stockage DuckDB récupère les données en colonnes.
Conversion de format : Le composant
Result Translatorconvertit le résultat du calcul au format du protocole MySQL, puis l'envoie au client.