Cette page fournit des solutions et des informations recommandées pour les problèmes et questions courants concernant le moteur de données en colonnes AlloyDB pour PostgreSQL.
Vous avez ajouté des colonnes référencées au moteur de données en colonnes, mais votre requête SELECT ne les utilise pas.
Description : pour utiliser le moteur de données en colonnes, toutes les colonnes référencées dans un fragment de requête (jointures et analyses, par exemple) doivent se trouver dans le store orienté colonnes. Si une colonne référencée ne se trouve pas dans le moteur columnar, le fragment de requête est défini par défaut sur le magasin basé sur les lignes.
Dans ce contexte, un fragment de requête est une requête pouvant comporter plusieurs nœuds d'analyse. Par exemple, le fragment de requête peut comporter deux nœuds d'analyse pour une jointure. Un nœud d'analyse peut utiliser un format non colonnaire, tandis qu'un autre nœud d'analyse peut utiliser un format colonnaire. Toutes les colonnes d'un nœud d'analyse (colonnes de filtre et colonnes de projection) doivent être renseignées au format colonne. De même, une requête peut comporter des partitions au format colonne et d'autres au format non colonne.
Solution recommandée : Pour vérifier que toutes les colonnes référencées se trouvent dans le moteur columnar, procédez comme suit :
Vérifiez les types de données acceptés.
Assurez-vous qu'AlloyDB est compatible avec tous les types de données des colonnes que vous prévoyez d'utiliser avec le moteur de données en colonnes. Pour en savoir plus, consultez Types de données acceptés. Si AlloyDB n'est pas compatible avec un type de données critique, envisagez de contacter l'assistance Google Cloud.
Vérifiez les opérateurs compatibles.
Assurez-vous qu'AlloyDB est compatible avec les opérateurs sur les types de données du moteur de données en colonnes. Pour en savoir plus sur les opérateurs compatibles, consultez Types de requêtes qui bénéficient du moteur de données en colonnes.
Exécutez la commande
EXPLAIN COLUMNAR_ENGINE.Pour identifier et résoudre les problèmes qui empêchent des requêtes spécifiques d'utiliser le moteur columnar, exécutez la commande
EXPLAIN COLUMNAR_ENGINEsuivante :EXPLAIN (COLUMNAR_ENGINE, ANALYZE) SELECT column1, column2 FROM my_table WHERE column3 > 100;
Vous ne pouvez pas ajouter ni supprimer de tables dans le moteur en colonnes.
Description : vous souhaitez ajouter ou supprimer des tables dans le moteur en colonnes.
Solution recommandée : Vérifiez vos autorisations utilisateur. Vous ne pouvez ajouter ou supprimer des tables dans le moteur en colonnes que si vous disposez des droits de lecture sur la table.
La taille des données en colonnes dépasse la mémoire allouée
Description : vous rencontrez des problèmes de performances ou de traitement des données lorsque la taille de vos données en colonnes dépasse la mémoire allouée au moteur de données en colonnes.
Solution recommandée : Pour des performances optimales, utilisez la fonctionnalité de recommandation d'AlloyDB afin d'identifier les tables et les colonnes optimales pour remplir le moteur en colonnes.
Si les tables et colonnes recommandées dépassent la mémoire physique du moteur de données en colonnes, les données en colonnes excédentaires utilisent une partie du cache ultrarapide. Les requêtes sur les données restantes de la table, qui ne se trouvent pas dans le moteur en colonnes, utilisent de manière transparente le magasin de lignes.
Vous pouvez également ajuster l'allocation de mémoire et de cache de stockage du moteur de données en colonnes. Le moteur de données en colonnes est provisionné avec une taille par défaut pour la mémoire et le cache de stockage. Vous pouvez configurer manuellement le cache de mémoire et de stockage. Pour modifier la quantité de mémoire ou de cache de stockage allouée au moteur de données en colonnes, consultez Configurer la mémoire pour le moteur de données en colonnes.