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. Il explique également comment configurer une taille initiale appropriée pour son magasin de 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'option google_columnar_engine.enabled de l'instance 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 au répertoire de spécification du déploiement.
    • DBCLUSTER_SPECIFICATION : chemin d'accès au fichier manifeste DBCluster que vous avez modifié.

    Ansible

    1. Créez un fichier 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 via SSH.
      • SSH_KEY_PATH : chemin d'accès local au fichier de clé privée SSH utilisé pour se 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 au répertoire de spécification du 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. En dédiant de la RAM haut débit à votre store orienté colonnes, vous vous assurez qu'AlloyDB Omni 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

Vous pouvez définir l'allocation sur une taille fixe à l'aide de l'option google_columnar_engine.memory_size_in_mb.

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 au répertoire de spécification du déploiement.
    • DBCLUSTER_SPECIFICATION : chemin d'accès au fichier manifeste DBCluster que vous avez modifié.

    Ansible

    1. Créez un fichier 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 via SSH.
      • SSH_KEY_PATH : chemin d'accès local au fichier de clé privée SSH utilisé pour se 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 au répertoire de spécification du 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 au répertoire de spécification du déploiement.
    • DBCLUSTER_SPECIFICATION : chemin d'accès au fichier manifeste DBCluster que vous avez modifié.

    Ansible

    1. Créez un fichier 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 via SSH.
      • SSH_KEY_PATH : chemin d'accès local au fichier de clé privée SSH utilisé pour se 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 au répertoire de spécification du 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 du disque sont alloués par défaut au moteur de données en colonnes.
    • ULTRAFAST_CACHE_SIZE : taille maximale du tampon de cache ultrarapide réservé par AlloyDB Omni (par exemple, 100Gi). Si ce paramètre n'est pas défini, tout l'espace disque restant sur localVolume.path est utilisé.
    • DISK_CACHE_DIR_PATH : chemin d'accès au dossier des fichiers de cache ultrarapide (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 au répertoire de spécification du déploiement.
    • DBCLUSTER_SPECIFICATION : chemin d'accès au fichier manifeste DBCluster que vous avez modifié.

    Ansible

    1. Créez un fichier 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 via SSH.
      • SSH_KEY_PATH : chemin d'accès local au fichier de clé privée SSH utilisé pour se 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 au répertoire de spécification du 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 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 chaque 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.

Pour définir ce paramètre sur un cluster de bases de données, ajoutez google_columnar_engine.enable_vectorized_join: "on" à la section parameters de votre fichier manifeste DBCluster. Pour en savoir plus, consultez Configurer les paramètres de base de données AlloyDB Omni.

AlloyDB Omni 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. 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'option 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 au répertoire de spécification du déploiement.
    • DBCLUSTER_SPECIFICATION : chemin d'accès au fichier manifeste DBCluster que vous avez modifié.

    Ansible

    1. Créez un fichier 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 via SSH.
      • SSH_KEY_PATH : chemin d'accès local au fichier de clé privée SSH utilisé pour se 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 au répertoire de spécification du déploiement.
      • DBCLUSTER_SPECIFICATION : chemin d'accès au fichier manifeste DBCluster que vous avez modifié.

Étapes suivantes