Pour une présentation conceptuelle du moteur de données en colonnes AlloyDB, consultez Présentation du moteur de données en colonnes AlloyDB Omni.
Activer le moteur de données en colonnes
Pour utiliser le moteur de données en colonnes sur une instance, définissez l'indicateur
google_columnar_engine.enabled
sur on.
Pour définir le paramètre google_columnar_engine.enabled sur on, procédez comme suit :
Ouvrez le fichier manifeste de votre cluster de bases de données
DBCluster.Dans la section
primarySpec, ajoutez le paramètregoogle_columnar_engine.enabledau blocparameters:DBCluster: metadata: name: DB_CLUSTER_NAME spec: # ... existing cluster configuration ... primarySpec: # ... existing primary configuration ... parameters: google_columnar_engine.enabled: "on"Remplacez
DB_CLUSTER_NAMEpar le nom du cluster de bases de données.L'orchestrateur RPM redémarre automatiquement la base de données pour appliquer les modifications de paramètres. Appliquez le fichier manifeste
DBClustermis à jour à l'aide de l'une des méthodes suivantes :alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Remplacez les éléments suivants :
DEPLOYMENT_SPEC_PATH: chemin d'accès à votre répertoire de spécification de déploiement.DBCLUSTER_SPECIFICATION: chemin d'accès au fichier manifesteDBClusterque vous avez modifié.
Ansible
Créez un fichier de playbook
update.yml:--- - hosts: localhost vars: update_action: "update_resource_spec" ansible_user: SSH_USER ansible_ssh_private_key_file: SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.updateRemplacez les éléments suivants :
SSH_USER: nom d'utilisateur que vous utilisez pour vous connecter aux nœuds de votre cluster à l'aide de SSH.SSH_KEY_PATH: chemin d'accès local au fichier de clé privée SSH utilisé pour vous connecter à vos nœuds.
Exécutez le playbook à partir de votre nœud de contrôle, en transmettant la spécification de ressource en tant que variable supplémentaire :
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"Remplacez les éléments suivants :
DEPLOYMENT_SPEC_PATH: chemin d'accès à votre répertoire de spécification de déploiement.DBCLUSTER_SPECIFICATION: chemin d'accès au fichier manifesteDBClusterque vous avez modifié.
Configurer la taille du store orienté colonnes
Lorsque le moteur de données en colonnes est activé sur une instance, AlloyDB Omni alloue une partie de la mémoire de l'instance pour stocker ses données en colonnes. Le fait de dédier de la RAM haute vitesse à votre store orienté colonnes garantit qu'AlloyDB Omni peut accéder aux données en colonnes aussi rapidement que 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
Vous pouvez définir l'allocation sur une taille fixe à l'aide de l'
google_columnar_engine.memory_size_in_mb indicateur.
Pour définir le paramètre google_columnar_engine.memory_size_in_mb, procédez comme suit :
Ouvrez le fichier manifeste de votre cluster de bases de données
DBCluster.Dans la section
primarySpec, ajoutez la configuration du moteur de données en colonnes au blocparameters:DBCluster: metadata: name: DB_CLUSTER_NAME spec: # ... existing cluster configuration ... primarySpec: # ... existing primary configuration ... parameters: google_columnar_engine.enabled: "on" google_columnar_engine.memory_size_in_mb: "MEMORY_SIZE_MB"Remplacez les éléments suivants :
DB_CLUSTER_NAME: nom du cluster de bases de données.MEMORY_SIZE_MB: quantité de mémoire, en mégaoctets, à allouer au moteur de données en colonnes.
L'orchestrateur RPM redémarre automatiquement la base de données pour appliquer les modifications de paramètres. Appliquez le fichier manifeste
DBClustermis à jour à l'aide de l'une des méthodes suivantes :alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Remplacez les éléments suivants :
DEPLOYMENT_SPEC_PATH: chemin d'accès à votre répertoire de spécification de déploiement.DBCLUSTER_SPECIFICATION: chemin d'accès au fichier manifesteDBClusterque vous avez modifié.
Ansible
Créez un fichier de playbook
update.yml:--- - hosts: localhost vars: update_action: "update_resource_spec" ansible_user: SSH_USER ansible_ssh_private_key_file: SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.updateRemplacez les éléments suivants :
SSH_USER: nom d'utilisateur que vous utilisez pour vous connecter aux nœuds de votre cluster à l'aide de SSH.SSH_KEY_PATH: chemin d'accès local au fichier de clé privée SSH utilisé pour vous connecter à vos nœuds.
Exécutez le playbook à partir de votre nœud de contrôle, en transmettant la spécification de ressource en tant que variable supplémentaire :
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"Remplacez les éléments suivants :
DEPLOYMENT_SPEC_PATH: chemin d'accès à votre répertoire de spécification de déploiement.DBCLUSTER_SPECIFICATION: chemin d'accès au fichier manifesteDBClusterque vous avez modifié.
Configurer le cache de stockage
Vous pouvez configurer le cache de stockage du moteur de données en colonnes sur des appareils dédiés ou partagés.
Appareils dédiés
Pour configurer un appareil dédié pour le cache de stockage du moteur de données en colonnes, procédez comme suit :
Ouvrez le fichier manifeste de votre cluster de bases de données
DBCluster.Dans la section
primarySpec, ajoutez l'attributcolumnarSpillToDiskaveccacheSizeetlocalVolume.pathau blocfeatures:DBCluster: metadata: name: DB_CLUSTER_NAME spec: # ... existing cluster configuration ... primarySpec: # ... existing primary configuration ... features: columnarSpillToDisk: cacheSize: STORAGE_CACHE_SIZE localVolume: path: COLUMNAR_CACHE_DIR_PATHRemplacez les éléments suivants :
DB_CLUSTER_NAME: nom du cluster de bases de données.STORAGE_CACHE_SIZE: limite de taille du cache de stockage du moteur de données en colonnes, par exemple50Gi.COLUMNAR_CACHE_DIR_PATH: chemin d'accès au système de fichiers du répertoire dédié au cache de stockage du moteur de données en colonnes, par exemple/mnt/disks/columnarcache.
Appliquez le fichier manifeste
DBClustermis à jour à l'aide dealloydbctlou d'Ansible :alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Remplacez les éléments suivants :
DEPLOYMENT_SPEC_PATH: chemin d'accès à votre répertoire de spécification de déploiement.DBCLUSTER_SPECIFICATION: chemin d'accès au fichier manifesteDBClusterque vous avez modifié.
Ansible
Créez un fichier de playbook
update.yml:--- - hosts: localhost vars: update_action: "update_resource_spec" ansible_user: SSH_USER ansible_ssh_private_key_file: SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.updateRemplacez les éléments suivants :
SSH_USER: nom d'utilisateur que vous utilisez pour vous connecter aux nœuds de votre cluster à l'aide de SSH.SSH_KEY_PATH: chemin d'accès local au fichier de clé privée SSH utilisé pour vous connecter à vos nœuds.
Exécutez le playbook à partir de votre nœud de contrôle, en transmettant la spécification de ressource en tant que variable supplémentaire :
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"Remplacez les éléments suivants :
DEPLOYMENT_SPEC_PATH: chemin d'accès à votre répertoire de spécification de déploiement.DBCLUSTER_SPECIFICATION: chemin d'accès au fichier manifesteDBClusterque vous avez modifié.
Appareils partagés
Si vous ne spécifiez pas localVolume.path sous columnarSpillToDisk, le cache de stockage du moteur de données en colonnes partage le stockage du cache de disque configuré sous ultraFastCache.
Pour configurer le cache de stockage du moteur de données en colonnes sur des appareils partagés, procédez comme suit :
Ouvrez le fichier manifeste de votre cluster de bases de données
DBCluster.Dans la section
primarySpec, ajoutez les attributscolumnarSpillToDisketultraFastCacheau blocfeatures:DBCluster: metadata: name: DB_CLUSTER_NAME spec: # ... existing cluster configuration ... primarySpec: # ... existing primary configuration ... features: columnarSpillToDisk: cacheSize: STORAGE_CACHE_SIZE ultraFastCache: cacheSize: ULTRAFAST_CACHE_SIZE localVolume: path: DISK_CACHE_DIR_PATHRemplacez les éléments suivants :
DB_CLUSTER_NAME: nom du cluster de bases de données.STORAGE_CACHE_SIZE: taille du cache de stockage en colonnes, par exemple50Gi. Si vous ne spécifiez pas de valeur pour ce champ, 5% du cache de disque sont alloués au moteur de données en colonnes par défaut.ULTRAFAST_CACHE_SIZE: taille maximale du tampon de cache ultra rapide réservé par AlloyDB Omni, par exemple100Gi. Si cette option n'est pas définie, tout l'espace disque restant danslocalVolume.pathest utilisé.DISK_CACHE_DIR_PATH: chemin d'accès au dossier des fichiers de cache ultra rapide, par exemple/mnt/disks/chillcache.
Appliquez le fichier manifeste
DBClustermis à jour à l'aide dealloydbctlou d'Ansible :alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Remplacez les éléments suivants :
DEPLOYMENT_SPEC_PATH: chemin d'accès à votre répertoire de spécification de déploiement.DBCLUSTER_SPECIFICATION: chemin d'accès au fichier manifesteDBClusterque vous avez modifié.
Ansible
Créez un fichier de playbook
update.yml:--- - hosts: localhost vars: update_action: "update_resource_spec" ansible_user: SSH_USER ansible_ssh_private_key_file: SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.updateRemplacez les éléments suivants :
SSH_USER: nom d'utilisateur que vous utilisez pour vous connecter aux nœuds de votre cluster à l'aide de SSH.SSH_KEY_PATH: chemin d'accès local au fichier de clé privée SSH utilisé pour vous connecter à vos nœuds.
Exécutez le playbook à partir de votre nœud de contrôle, en transmettant la spécification de ressource en tant que variable supplémentaire :
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"Remplacez les éléments suivants :
DEPLOYMENT_SPEC_PATH: chemin d'accès à votre répertoire de spécification de déploiement.DBCLUSTER_SPECIFICATION: chemin d'accès au fichier manifesteDBClusterque vous avez modifié.
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, le planificateur de requêtes AlloyDB a la possibilité d'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 chaque méthode.
Pour activer la jointure vectorisée sur une instance, définissez l'indicateur
google_columnar_engine.enable_vectorized_join
de l'instance sur on.
Pour définir cet indicateur sur une instance, exécutez la commande PostgreSQL ALTER SYSTEM :
ALTER SYSTEM SET google_columnar_engine.enable_vectorized_join = 'on';
AlloyDB Omni alloue un thread à la fonctionnalité de jointure vectorisée par défaut. Vous pouvez augmenter le nombre de threads disponibles pour
cette fonctionnalité en définissant l'
google_columnar_engine.vectorized_join_threads
indicateur sur une valeur plus élevée. La valeur maximale est cpu_count * 2.
Actualiser manuellement votre moteur de données en colonnes
Par défaut, lorsque le moteur de données en colonnes est activé, il actualise le store orienté colonnes en arrière-plan.
Pour actualiser manuellement le moteur de données en colonnes, exécutez la requête SQL suivante :
SELECT google_columnar_engine_refresh(relation =>'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'indicateur google_columnar_engine.enabled sur off.
Pour définir le paramètre google_columnar_engine.enabled sur off, procédez comme suit :
Ouvrez le fichier manifeste de votre cluster de bases de données
DBCluster.Dans la section
primarySpec, définissez le paramètregoogle_columnar_engine.enabledsuroffdans le blocparameters:DBCluster: metadata: name: DB_CLUSTER_NAME spec: # ... existing cluster configuration ... primarySpec: # ... existing primary configuration ... parameters: google_columnar_engine.enabled: "off"Remplacez
DB_CLUSTER_NAMEpar le nom du cluster de bases de données.L'orchestrateur RPM redémarre automatiquement la base de données pour appliquer les modifications de paramètres. Appliquez le fichier manifeste
DBClustermis à jour à l'aide de l'une des méthodes suivantes :alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Remplacez les éléments suivants :
DEPLOYMENT_SPEC_PATH: chemin d'accès à votre répertoire de spécification de déploiement.DBCLUSTER_SPECIFICATION: chemin d'accès au fichier manifesteDBClusterque vous avez modifié.
Ansible
Créez un fichier de playbook
update.yml:--- - hosts: localhost vars: update_action: "update_resource_spec" ansible_user: SSH_USER ansible_ssh_private_key_file: SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.updateRemplacez les éléments suivants :
SSH_USER: nom d'utilisateur que vous utilisez pour vous connecter aux nœuds de votre cluster à l'aide de SSH.SSH_KEY_PATH: chemin d'accès local au fichier de clé privée SSH utilisé pour vous connecter à vos nœuds.
Exécutez le playbook à partir de votre nœud de contrôle, en transmettant la spécification de ressource en tant que variable supplémentaire :
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"Remplacez les éléments suivants :
DEPLOYMENT_SPEC_PATH: chemin d'accès à votre répertoire de spécification de déploiement.DBCLUSTER_SPECIFICATION: chemin d'accès au fichier manifesteDBClusterque vous avez modifié.
Étape suivante
Consultez la liste complète des indicateurs de base de données du moteur de données en colonnes.
Essayez l'atelier de programmation Accélérer les requêtes analytiques avec le moteur de données en colonnes dans AlloyDB Omni.