L'exécution de rapports complexes ou de requêtes analytiques sur une instance ApsaraDB RDS for PostgreSQL peut consommer des ressources considérables, ce qui affecte les performances et la stabilité de votre activité principale. Pour résoudre ce problème, ApsaraDB RDS for PostgreSQL propose l'instance analytique basée sur DuckDB. Cette instance est spécialisée dans les charges de travail analytiques et utilise un nœud dédié pour la séparation lecture/écriture, isolant ainsi les traitements analytiques (AP) des transactions en ligne (TP). Cette approche améliore significativement l'efficacité des requêtes complexes sans impacter les performances de l'instance principale.
Fonctionnalités
Une instance analytique basée sur DuckDB est un type particulier d'instance en lecture seule conçue pour les requêtes analytiques. Elle offre les fonctionnalités suivantes :
Séparation lecture/écriture et isolation des charges de travail : L'instance fonctionne comme un nœud dédié, isolant les requêtes analytiques gourmandes en ressources des charges de travail transactionnelles de l'instance principale. Cela garantit que les performances et la stabilité de votre activité principale ne sont pas affectées.
Conversion columnaire en temps réel sans ETL : L'instance synchronise les données depuis l'instance principale en quasi temps réel grâce à la réplication physique et à l'abonnement logique, puis les convertit automatiquement au format de stockage columnaire. Vous pouvez également configurer des politiques de synchronisation par base de données.
Stockage hybride row/column : L'instance conserve à la fois une copie en stockage row (format original) et une copie en stockage columnaire (format analytique). L'accélération columnaire est activée par défaut, acheminant les requêtes analytiques complexes vers le moteur columnaire. Si le moteur columnaire ne peut pas traiter une requête, le système revient automatiquement au moteur row pour assurer la compatibilité. L'instance prend également en charge la compression du stockage row.
Prérequis
Votre instance principale ApsaraDB RDS for PostgreSQL doit répondre aux exigences suivantes :
État de l'instance : En cours d'exécution.
Version majeure du moteur : ApsaraDB RDS for PostgreSQL 16.0 ou ultérieure.
Édition : Édition Haute disponibilité.
Mode de facturation : Abonnement ou paiement à l'utilisation.
Version mineure du moteur : 20260130 ou ultérieure.
-
Les paramètres d'instance suivants sont configurés :
Le paramètre
wal_levelest défini surlogical;shared_preload_librariesinclutrds_duckdb;hot_standby_feedbackest défini suron; etmax_replication_slots,max_worker_processesainsi quemax_wal_sendersont une valeur supérieure ou égale à1024. L'instance n'est pas une instance de reprise après sinistre.
Facturation
La facturation d'une instance analytique basée sur DuckDB est identique à celle d'une instance en lecture seule standard. Le coût dépend de facteurs tels que l'édition, le type d'instance, le type de stockage et la capacité de stockage. Le prix final s'affiche sur la page d'achat.
Notes d'utilisation
Une fois l'instance analytique basée sur DuckDB créée, ne modifiez pas les paramètres associés sur l'instance principale.
Si vous créez plusieurs instances analytiques basées sur DuckDB pour la même instance principale, la configuration du stockage columnaire (par exemple, les bases de données activées pour la conversion automatique row-to-column) s'applique à toutes les instances analytiques.
Si l'instance principale utilise déjà l'extension rds_duckdb pour l'accélération columnaire, désactivez cette fonctionnalité sur l'instance principale après la création de l'instance analytique basée sur DuckDB afin de garantir une isolation complète des charges de travail.
Pour assurer la compatibilité des requêtes, l'instance analytique basée sur DuckDB conserve une copie des données au format row store. Vous pouvez compresser ces données row store pour réduire les coûts de stockage.
Créer une instance analytique DuckDB
Connectez-vous à la console ApsaraDB RDS. Dans la barre de navigation supérieure, sélectionnez une région, puis cliquez sur l'ID de l'instance cible.
-
Sur la page Basic Information, dans la section Instance Distribution, cliquez sur Add à droite de DuckDB-based analytical instance.

-
Une pré-vérification s'exécute automatiquement. Une fois la pré-vérification réussie, cliquez sur confirm.
En cas d'échec de la pré-vérification, cliquez sur One-click Fix et sélectionnez un créneau pour la correction. Le système configure automatiquement les dépendances requises. Une fois la correction terminée, cliquez à nouveau sur Add à droite de DuckDB-based analytical instance pour revenir à la page de pré-vérification. Cliquez ensuite sur confirm.
ImportantSi la version majeure du moteur de votre instance ne répond pas aux exigences, vous devez manuellement mettre à niveau la version majeure du moteur.
-
Définissez les paramètres de l'instance analytique basée sur DuckDB.
Parameter
Description
Billing Method
-
Subscription : Convient pour une utilisation à long terme (paiement unique).
-
Pay-as-you-go : Convient pour une utilisation à court terme (facturation horaire). Vous pouvez d'abord créer une instance analytique basée sur DuckDB en paiement à l'utilisation, puis la convertir en abonnement une fois que vous avez confirmé qu'elle répond à vos besoins.
Edition
-
Basic Edition : Une instance analytique basée sur DuckDB à nœud unique, économique et adaptée à l'apprentissage ou aux tests. La récupération après incident et les redémarrages sont lents.
-
High-availability Edition (Par défaut) : Comprend un nœud principal et un nœud secondaire pour offrir une haute disponibilité à l'instance analytique basée sur DuckDB. Cette édition convient aux environnements de production et est recommandée pour la plupart des scénarios.
RemarqueSi vous sélectionnez Edition, vous devez également spécifier la zone du nœud principal, le type de déploiement (déploiement multi-zones ou mono-zone) et la zone du nœud secondaire.
Product Type
Seule l'Standard Edition est prise en charge.
Pour plus d'informations, consultez Types de produits.
Zone
Une zone est une zone physique indépendante au sein d'une région. Différentes zones d'une même région sont fonctionnellement identiques. Un déploiement multi-zones offre une reprise après sinistre au niveau de la zone, contrairement à un déploiement mono-zone.
Instance Type
Seuls les types d'instances Dedicated sont pris en charge. Les spécifications disponibles sont les mêmes que celles des types d'instances en lecture seule ApsaraDB RDS for PostgreSQL.
Storage Capacity
La capacité de stockage inclut l'espace pour les données, les fichiers système, les fichiers WAL (Write-Ahead Logging) et les fichiers de transaction. L'incrément minimal pour les ajustements de capacité de stockage est de 5 Go.
RemarqueLa capacité de stockage d'une instance analytique basée sur DuckDB doit être au moins aussi grande que celle de l'instance principale. Pour obtenir des informations sur la capacité de stockage de chaque type d'instance, consultez Types d'instances en lecture seule ApsaraDB RDS for PostgreSQL.
-
-
Cliquez sur Next: Instance Configuration et définissez les paramètres suivants.
Parameter
Description
Network Type
Ceci correspond par défaut au même type de réseau, au même VPC et au même vSwitch of Primary Node que l'instance principale.
Release Protection
Si le billing method est en paiement à l'utilisation, vous pouvez activer la Release Protection pour l'instance afin d'éviter sa libération accidentelle. Pour plus d'informations, consultez Activer ou désactiver la protection contre la libération.
Resource Group
Par défaut, il s'agit du même groupe de ressources que celui de l'instance principale et il ne peut pas être modifié.
Time Zone
Par défaut, il s'agit du même fuseau horaire que celui de l'instance principale.
SLR Authorization
Aucune configuration n'est requise. L'autorisation a été accordée lors de l'achat de l'instance principale.
Instance name
Définissez un nom pour l'instance afin de l'identifier facilement.
Cliquez sur Tags.
Confirmez les Next: Confirm Order, sélectionnez la Parameter Configurations et la Quantity si vous avez choisi un plan d'abonnement, puis cliquez sur Subscription Duration pour effectuer le paiement.
Configurer le stockage columnaire
Pour accélérer les requêtes analytiques, une instance analytique basée sur DuckDB utilise le stockage columnaire, ce qui nécessite de convertir d'abord les données du format row store de l'instance principale.
Vous pouvez convertir une seule table à la demande ou convertir automatiquement une base de données entière, selon vos besoins métier et la disponibilité des ressources.
Prérequis
Avant de commencer, assurez-vous que l'instance principale ApsaraDB RDS for PostgreSQL répond aux exigences suivantes :
Une instance analytique basée sur DuckDB a été créée et son état est En cours d'exécution.
Un compte privilégié a été créé.
La base de données cible contient au moins une table.
Notes d'utilisation
La génération de données de stockage columnaire consomme de l'espace de stockage supplémentaire, généralement entre 20 % et 50 % du volume de données original. Assurez-vous que l'instance analytique basée sur DuckDB dispose d'un espace de stockage disponible suffisant.
Pour les grandes bases de données, la conversion de la base entière peut prendre beaucoup de temps. La durée de conversion dépend de facteurs tels que les spécifications de l'instance, y compris la bande passante du disque et la mémoire.
Méthode 1 : Convertir des tables à la demande
Cette méthode convertit des tables spécifiées en stockage columnaire. Elle convient à l'optimisation ciblée des requêtes SQL lentes (en convertissant les tables impliquées dans la requête) ou à l'économie d'espace de stockage lorsque les ressources de l'instance analytique sont limitées. Si une requête implique des tables qui n'ont pas été converties, le système revient automatiquement au moteur row store pour maintenir la compatibilité.
Procédure
Connectez-vous à l'instance principale ApsaraDB RDS for PostgreSQL et exécutez les instructions SQL suivantes dans la base de données cible :
-- Create the rds_duckdb extension if it does not already exist.
CREATE EXTENSION IF NOT EXISTS rds_duckdb;
-- Convert the specified table to columnar storage format.
SELECT rds_duckdb.create_duckdb_table('your_table_name');
Méthode 2 : Convertir une base de données entière
Cette méthode utilise la console pour convertir automatiquement toutes les tables actuelles d'une base de données spécifiée au format de stockage columnaire. Elle convient aux scénarios nécessitant une analyse complète d'une base de données entière.
Ce processus ne convertit pas automatiquement les tables ajoutées ultérieurement. Vous devez reconfigurer les nouvelles tables via la console.
Connectez-vous à la console ApsaraDB RDS. Dans le volet de navigation de gauche, cliquez sur Confirm Order. Dans la barre de navigation supérieure, sélectionnez une région.
Dans la liste des instances, repérez l'instance principale (indiquée par l'icône
) et développez sa liste déroulante.-
Cliquez sur l'ID de l'instance analytique basée sur DuckDB.

Dans le volet de navigation de gauche, cliquez sur Instances.
-
Sur la page Databases, cochez les cases des bases de données que vous souhaitez convertir automatiquement en stockage columnaire, puis cliquez sur Databases.
Dans la boîte de dialogue qui s'affiche, cliquez sur Batch Configure Columnar Storage.