Configurer le moteur de données en colonnes dans AlloyDB Omni

Sélectionnez une version de la documentation :

Cette page explique comment activer ou désactiver le moteur de données en colonnes sur un cluster de bases de données AlloyDB Omni. Elle explique également comment configurer une taille initiale appropriée pour son store orienté colonnes.

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 :

  1. Ouvrez le fichier manifeste de votre cluster de bases de données DBCluster.

  2. Dans la section primarySpec, ajoutez le paramètre google_columnar_engine.enabled au bloc parameters :

    DBCluster:
      metadata:
        name: DB_CLUSTER_NAME
      spec:
        # ... existing cluster configuration ...
        primarySpec:
          # ... existing primary configuration ...
          parameters:
            google_columnar_engine.enabled: "on"
    

    Remplacez DB_CLUSTER_NAME par le nom du cluster de bases de données.

  3. L'orchestrateur RPM redémarre automatiquement la base de données pour appliquer les modifications de paramètres. Appliquez le fichier manifeste DBCluster mis à jour à l'aide de l'une des méthodes suivantes :

    alloydbctl

    alloydbctl 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 manifeste DBCluster que vous avez modifié.

    Ansible

    1. 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.update
      

      Remplacez 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.
    2. 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 manifeste DBCluster que 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 :

  1. Ouvrez le fichier manifeste de votre cluster de bases de données DBCluster.

  2. Dans la section primarySpec, ajoutez la configuration du moteur de données en colonnes au bloc parameters :

    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.
  3. L'orchestrateur RPM redémarre automatiquement la base de données pour appliquer les modifications de paramètres. Appliquez le fichier manifeste DBCluster mis à jour à l'aide de l'une des méthodes suivantes :

    alloydbctl

    alloydbctl 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 manifeste DBCluster que vous avez modifié.

    Ansible

    1. 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.update
      

      Remplacez 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.
    2. 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 manifeste DBCluster que 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 :

  1. Ouvrez le fichier manifeste de votre cluster de bases de données DBCluster.

  2. Dans la section primarySpec, ajoutez l'attribut columnarSpillToDisk avec cacheSize et localVolume.path au bloc features :

    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_PATH
    

    Remplacez 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 exemple 50Gi.
    • 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.
  3. Appliquez le fichier manifeste DBCluster mis à jour à l'aide de alloydbctl ou d'Ansible :

    alloydbctl

    alloydbctl 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 manifeste DBCluster que vous avez modifié.

    Ansible

    1. 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.update
      

      Remplacez 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.
    2. 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 manifeste DBCluster que 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 :

  1. Ouvrez le fichier manifeste de votre cluster de bases de données DBCluster.

  2. Dans la section primarySpec, ajoutez les attributs columnarSpillToDisk et ultraFastCache au bloc features :

    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_PATH
    

    Remplacez 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 exemple 50Gi. 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 exemple 100Gi. Si cette option n'est pas définie, tout l'espace disque restant dans localVolume.path est utilisé.
    • DISK_CACHE_DIR_PATH: chemin d'accès au dossier des fichiers de cache ultra rapide, par exemple /mnt/disks/chillcache.
  3. Appliquez le fichier manifeste DBCluster mis à jour à l'aide de alloydbctl ou d'Ansible :

    alloydbctl

    alloydbctl 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 manifeste DBCluster que vous avez modifié.

    Ansible

    1. 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.update
      

      Remplacez 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.
    2. 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 manifeste DBCluster que 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 :

  1. Ouvrez le fichier manifeste de votre cluster de bases de données DBCluster.

  2. Dans la section primarySpec, définissez le paramètre google_columnar_engine.enabled sur off dans le bloc parameters :

    DBCluster:
      metadata:
        name: DB_CLUSTER_NAME
      spec:
        # ... existing cluster configuration ...
        primarySpec:
          # ... existing primary configuration ...
          parameters:
            google_columnar_engine.enabled: "off"
    

    Remplacez DB_CLUSTER_NAME par le nom du cluster de bases de données.

  3. L'orchestrateur RPM redémarre automatiquement la base de données pour appliquer les modifications de paramètres. Appliquez le fichier manifeste DBCluster mis à jour à l'aide de l'une des méthodes suivantes :

    alloydbctl

    alloydbctl 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 manifeste DBCluster que vous avez modifié.

    Ansible

    1. 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.update
      

      Remplacez 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.
    2. 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 manifeste DBCluster que vous avez modifié.

Étape suivante