Pour utiliser le moteur de données en colonnes dans AlloyDB Omni, consultez Activer le moteur de données en colonnes dans AlloyDB Omni.
Chacune de ces actions implique de modifier la valeur d'un indicateur de base de données sur l'une de vos instances AlloyDB. Pour en savoir plus sur la définition des indicateurs de base de données, consultez Configurer les indicateurs de base de données d'une instance.
Pour une présentation conceptuelle du moteur de données en colonnes AlloyDB, consultez À propos du moteur de données en colonnes AlloyDB.
Activer le moteur de données en colonnes
Pour utiliser le moteur de données en colonnes sur une instance, définissez l'option google_columnar_engine.enabled de l'instance sur on.
Pour en savoir plus sur la définition des indicateurs de base de données dans AlloyDB, consultez Configurer les indicateurs de base de données d'une instance.
Configurer la taille du store orienté colonnes
Lorsque le moteur de données en colonnes est activé sur une instance, AlloyDB alloue une partie de la mémoire de l'instance pour stocker ses données en colonnes. En dédiant de la RAM haut débit à votre store orienté colonnes, vous vous assurez qu'AlloyDB peut accéder aux données en colonnes le plus rapidement possible.
La mémoire et le cache de stockage représentent ensemble la capacité globale du moteur de données en colonnes.
Configurer la mémoire pour le moteur de données en colonnes
Si le store orienté colonnes devient plus volumineux que la partie allouée de la mémoire de votre instance, AlloyDB utilise automatiquement la couche de cache sous-jacente de l'instance pour stocker les données en colonnes supplémentaires.Dans AlloyDB, vous pouvez charger des relations, des vues matérialisées et des index vectoriels dans le moteur de données en colonnes pour accélérer les performances des requêtes.
Par défaut, AlloyDB alloue 30% de la mémoire de l'instance au store orienté colonnes. Pour une instance à 1 vCPU, l'allocation par défaut est de 10%. AlloyDB ajuste automatiquement l'allocation totale si vous redimensionnez l'instance. Vous pouvez modifier la mémoire de l'instance jusqu'à un maximum recommandé de 50%, bien que 70% soient autorisés. Pour une instance à 1 vCPU, le maximum autorisé est de 20%. Quelle que soit la taille de l'instance, l'allocation minimale est de 128 Mo. Pour connaître la taille de mémoire recommandée pour le moteur de données en colonnes de votre instance, consultez Recommander la taille de mémoire du store orienté colonnes.
Vous pouvez également définir l'allocation sur une taille fixe et spécifique à l'aide de l'option google_columnar_engine.memory_size_in_mb.
Pour qu'AlloyDB revienne à l'allocation par défaut, supprimez l'option de l'instance.
Pour en savoir plus sur la définition ou la suppression d'options, consultez Configurer les options de base de données d'une instance.
Configurer le chargement des index vectoriels dans le moteur de données en colonnes
Le moteur de données en colonnes accélère la recherche Vector Search lorsque des index vectoriels HNSW ou ScaNN y sont renseignés. L'accélération du moteur de données en colonnes pour les index HNSW est en disponibilité générale, tandis que l'accélération pour les index ScaNN est en preview.
Pour activer le cache d'index de colonnes, définissez l'option google_columnar_engine.enable_index_caching sur on.
Pour désactiver cette fonctionnalité, définissez l'option sur off.
Configurer le cache de stockage pour le moteur de données en colonnes
Vous devez dimensionner google_columnar_engine.storage_cache_size par rapport au paramètre google_columnar_engine.memory_size_in_mb, car la mémoire du moteur de données en colonnes est utilisée pour les métadonnées en mémoire du cache de stockage. Le ratio de dimensionnement recommandé est d'environ 100 à 1 000 fois la taille de la mémoire. Par exemple, avec un google_columnar_engine.memory_size_in_mb de 1 024 (1 Go), vous devez définir google_columnar_engine.storage_cache_size entre 100 Go et 1 000 Go.
Le cache de stockage du moteur de données en colonnes est provisionné en fonction du niveau de l'instance.
| Niveau d'instance | Taille par défaut du cache du moteur de données en colonnes | ||
|---|---|---|---|
| N2 | C4A | ||
| Principal | Instance de pool de lecture | Pool principal ou de lecture | |
| 1 vCPU | N/A | N/A | 0 |
| 2 vCPU | 18,75 Go | 37,5 Go | 18,75 Go |
| 4 vCPU | 18,75 Go | 37,5 Go | 18,75 Go |
| 8 vCPU | 18,75 Go | 37,5 Go | 37,5 Go |
| 16 vCPU | 37,5 Go | 37,5 Go | 75 Go |
| 32 processeurs virtuels | 75 Go | 75 Go | 112,5 Go |
| 48 vCPU | N/A | N/A | 187,5 Go |
| 64 vCPU | 150 Go | 150 Go | 262,5 Go |
| 72 vCPU | N/A | N/A | 300 Go |
| 96 vCPU | 300 Go | 300 Go | N/A |
| 128 vCPU | 450 Go | 450 Go | N/A |
L'option google_columnar_engine.storage_cache_size vous permet d'ajuster le cache de stockage du moteur de données en colonnes, avec les limites des valeurs minimales et maximales indiquées dans le tableau suivant :
| Niveau d'instance | Taille minimale du cache du moteur de données en colonnes | Taille maximale du cache du moteur de données en colonnes | ||
|---|---|---|---|---|
| N2 | C4A | |||
| Principal | Instance de pool de lecture | Pool principal ou de lecture | ||
| 1 vCPU | N/A | N/A | N/A | 0 |
| 2 vCPU | 0 | 187,5 Go | 375 Go | 187,5 Go |
| 4 vCPU | 0 | 187,5 Go | 375 Go | 187,5 Go |
| 8 vCPU | 0 | 187,5 Go | 375 Go | 375 Go |
| 16 vCPU | 0 | 375 Go | 375 Go | 750 Go |
| 32 processeurs virtuels | 0 | 750 Go | 750 Go | 1 125 Go |
| 48 vCPU | 0 | N/A | N/A | 1 875 Go |
| 64 vCPU | 0 | 1 500 Go | 1 500 Go | 2 625 Go |
| 72 vCPU | 0 | N/A | N/A | 3 000 Go |
| 96 vCPU | 0 | 3 000 Go | 3 000 Go | N/A |
| 128 vCPU | 0 | 4 500 Go | 4 500 Go | N/A |
Surveiller les données du cache de stockage pour le moteur de données en colonnes
Pour afficher et surveiller les données concernant le cache de stockage du moteur de données en colonnes, vous pouvez utiliser les commandes suivantes :
| Commande | Description |
|---|---|
SELECT google_columnar_engine_storage_cache_used(); |
Renvoie la taille utilisée du cache de stockage du moteur de données en colonnes. |
SELECT google_columnar_engine_storage_cache_available(); |
Renvoie la taille non utilisée du cache de stockage du moteur de données en colonnes. |
SHOW google_columnar_engine.storage_cache_size; |
Renvoie la taille totale du cache de stockage configuré pour le moteur de données en colonnes. |
Activer la jointure vectorisée
Le moteur de données en colonnes dispose d'une fonctionnalité de jointure vectorisée qui peut améliorer les performances des jointures en appliquant un traitement vectorisé aux requêtes éligibles.
Une fois la jointure vectorisée activée, l'outil de planification de requêtes AlloyDB peut appliquer l'opérateur de jointure vectorisée au lieu de l'opérateur de jointure de hachage PostgreSQL standard. Le planificateur prend cette décision en comparant le coût d'exécution de la requête à l'aide de l'une ou l'autre méthode.
Pour activer la jointure vectorisée sur une instance, définissez l'option google_columnar_engine.enable_vectorized_join de l'instance sur on.
AlloyDB alloue par défaut un thread à la fonctionnalité de jointure vectorisée. Vous pouvez augmenter le nombre de threads disponibles pour cette fonctionnalité en définissant l'option google_columnar_engine.vectorized_join_threads sur une valeur plus élevée.
Actualiser manuellement votre moteur de données en colonnes
Par défaut, lorsque vous activez le moteur de données en colonnes, il est configuré pour actualiser automatiquement le store orienté colonnes en arrière-plan.
Pour les charges de travail présentant un taux élevé de modifications de données, telles que des opérations INSERT, UPDATE ou DELETE fréquentes, vous pouvez actualiser manuellement le magasin de colonnes après ces modifications pour maintenir l'index à jour.
Pour actualiser manuellement le moteur de données en colonnes, exécutez la requête SQL suivante :
SELECT google_columnar_engine_refresh('TABLE_NAME');
Remplacez TABLE_NAME par le nom de la table ou de la vue matérialisée que vous souhaitez actualiser manuellement.
Désactiver le moteur de données en colonnes
Pour désactiver le moteur de données en colonnes sur une instance, définissez l'option google_columnar_engine.enabled sur off.
Une fois cette option définie, l'instance redémarre automatiquement.
Résoudre les problèmes liés au moteur de données en colonnes
Si les colonnes ne sont pas renseignées dans le moteur de données en colonnes, l'une des situations suivantes peut se produire :
Les colonnes que vous souhaitez ajouter incluent un type de données non compatible.
Les exigences du moteur de données en colonnes ne sont pas respectées.
Pour identifier la cause de ce problème, essayez les solutions suivantes :
Examinez les journaux d'audit de votre instance.
Vérifiez que les tables ou les vues matérialisées de votre requête se trouvent dans le moteur de données en colonnes.
Vérifiez l'utilisation du moteur de données en colonnes à l'aide de l'instruction
EXPLAIN.
Étapes suivantes
Consultez la liste complète des options de base de données du moteur de données en colonnes.
En savoir plus sur l'organisation automatique en colonnes.
Découvrez comment accélérer les requêtes analytiques à l'aide du moteur de données en colonnes AlloyDB.