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 en colonnes sur un cluster de bases de données AlloyDB Omni. Il explique également comment configurer une taille initiale appropriée pour son column store.

Pour obtenir un aperçu conceptuel 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 columnar sur une instance, définissez l'indicateur google_columnar_engine.enabled de l'instance sur on.

Les étapes à suivre pour définir ce indicateur sur une instance dépendent de la façon dont vous exécutez AlloyDB Omni (dans un conteneur ou sur un cluster Kubernetes).

Serveur unique

Pour définir google_columnar_engine.enabled sur on, procédez comme suit :

  1. Exécutez la commande PostgreSQL ALTER SYSTEM :

    ALTER SYSTEM SET google_columnar_engine.enabled = 'on'
    
  2. Si vous souhaitez ajuster la configuration du moteur de colonnes, suivez les instructions de la section suivante avant de redémarrer le serveur de base de données. Sinon, suivez l'étape ci-dessous pour redémarrer le serveur de base de données maintenant.

  3. Pour que la modification des paramètres de configuration prenne effet, redémarrez votre conteneur en cours d'exécution avec AlloyDB Omni.

    Docker

      sudo docker restart CONTAINER_NAME

    Podman

      sudo podman restart CONTAINER_NAME

Kubernetes

Pour définir l'indicateur google_columnar_engine.enabled sur on, modifiez le fichier manifeste de votre cluster de bases de données afin d'ajouter l'attribut parameters à la section primarySpec :

    apiVersion: alloydbomni.dbadmin.goog/v1
    kind: DBCluster
    metadata:
      name: CLUSTER_NAME
    spec:
      databaseVersion: "16.3.0"
      primarySpec:
        parameters:
          google_columnar_engine.enabled: "on"

Remplacez CLUSTER_NAME par le nom de votre cluster de bases de données. Il s'agit du même nom de cluster de base de données que vous avez déclaré lors de sa création.

Configurer la taille du column store

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 haute vitesse à 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.

Les étapes à suivre pour configurer la mémoire du store orienté colonnes pour AlloyDB Omni dépendent de la façon dont vous exécutez AlloyDB Omni (dans un conteneur ou sur un cluster Kubernetes).

Serveur unique

Pour définir l'indicateur google_columnar_engine.memory_size_in_mb sur une instance, procédez comme suit :

  1. Configurez la mémoire en exécutant la commande PostgreSQL ALTER SYSTEM :

    ALTER SYSTEM SET google_columnar_engine.memory_size_in_mb = COLUMN_MEMORY_SIZE;
    

    Remplacez COLUMN_MEMORY_SIZE par la nouvelle taille de stockage de la colonne, en mégaoctets (par exemple, 256).

  2. Pour que la modification des paramètres de configuration prenne effet, redémarrez votre conteneur en cours d'exécution avec AlloyDB Omni.

    Docker

    sudo docker restart CONTAINER_NAME

    Podman

    sudo podman restart CONTAINER_NAME

Kubernetes

Pour définir l'indicateur google_columnar_engine.memory_size_in_mb, modifiez le fichier manifeste de votre cluster de bases de données afin d'ajouter l'attribut parameters à la section primarySpec :

    apiVersion: alloydbomni.dbadmin.goog/v1
    kind: DBCluster
    metadata:
      name: CLUSTER_NAME
    spec:
      databaseVersion: "16.3.0"
      primarySpec:
        parameters:
          google_columnar_engine.memory_size_in_mb: "COLUMN_MEMORY_SIZE"

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom de votre cluster de bases de données. Il s'agit du même nom de cluster de base de données que vous avez déclaré lors de sa création.
  • COLUMN_MEMORY_SIZE : nouvelle taille de l'espace de stockage de la colonne, en mégaoctets (par exemple, 256).

Configurer le cache de stockage

Avant de configurer le cache de stockage, vous devez activer le cache de disque AlloyDB Omni.

Les étapes à suivre pour activer le cache de stockage pour AlloyDB Omni dépendent de la façon dont vous exécutez AlloyDB Omni (dans un conteneur ou sur un cluster Kubernetes).

Serveur unique

  1. Configurez le cache de stockage comme suit :

    ALTER SYSTEM SET google_columnar_engine.storage_cache_size = STORAGE_CACHE_SIZE;
    

    Remplacez STORAGE_CACHE_SIZE par la taille du cache de stockage souhaitée, en mégaoctets. Par défaut, 5 % du cache de disque sont alloués au moteur en colonnes. La valeur maximale autorisée pour ce paramètre est de 50 % du cache disque total ou de 1 000 * google_columnar_engine.memory_size_in_mb, selon la valeur la plus faible.

  2. Pour que la modification des paramètres de configuration prenne effet, redémarrez votre conteneur en cours d'exécution avec AlloyDB Omni.

    Docker

    sudo docker restart CONTAINER_NAME

    Podman

    sudo podman restart CONTAINER_NAME

Kubernetes

Pour activer le cache de stockage pour votre base de données, modifiez le fichier manifeste de votre cluster de base de données afin d'ajouter l'attribut columnarSpillToDisk à la section features de la section primarySpec :

apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
  name: CLUSTER_NAME
spec:
  databaseVersion: "16.3.0"
  primarySpec:
    features:
      columnarSpillToDisk:
        cacheSize: STORAGE_CACHE_SIZE
      ultraFastCache:
        cacheSize: ULTRAFAST_CACHE_SIZE
        genericVolume:
          storageClass: "STORAGE_CLASS_NAME"
...

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom de votre cluster de bases de données. Il s'agit du même nom de cluster de base de données que vous avez déclaré lors de sa création.
  • STORAGE_CACHE_SIZE : taille du cache de stockage en colonnes, par exemple 5Gi. Si vous ne spécifiez aucune valeur pour ce champ, 5 % du cache disque sont alloués au moteur en colonnes par défaut.
  • ULTRAFAST_CACHE_SIZE : taille du cache, par exemple 100Gi. Il doit être supérieur à shared_buffers. Ce champ est facultatif. Si vous ne spécifiez pas la valeur de ce champ, AlloyDB Omni utilise tout l'espace disque restant, ce qui s'applique à la fois à AlloyDB Omni dans un conteneur et sur un cluster Kubernetes. Pour en savoir plus sur les unités de mesure, consultez Unités de ressource de mémoire.
  • STORAGE_CLASS_NAME : nom de la classe de stockage du volume de cache ultra rapide, par exemple local-storage.

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'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';

Par défaut, AlloyDB Omni alloue un thread à la fonctionnalité de jointure vectorisée. Vous pouvez augmenter le nombre de threads disponibles pour cette fonctionnalité en définissant l'indicateur google_columnar_engine.vectorized_join_threads sur une valeur plus élevée. La valeur maximale est de 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 column store en arrière-plan.

Pour actualiser manuellement le moteur de 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 Columbar sur une instance, définissez l'indicateur google_columnar_engine.enabled sur off.

La procédure à suivre pour définir cet indicateur sur une instance dépend de la façon dont vous exécutez AlloyDB Omni : dans un conteneur sur un seul serveur ou sur un cluster Kubernetes.

Serveur unique

Pour définir google_columnar_engine.enabled sur off, procédez comme suit :

  1. Exécutez la commande PostgreSQL ALTER SYSTEM :
ALTER SYSTEM SET google_columnar_engine.enabled = 'off'
  1. Pour que la modification des paramètres de configuration prenne effet, redémarrez votre conteneur en cours d'exécution avec AlloyDB Omni.

Docker

Pour redémarrer un conteneur AlloyDB Omni, exécutez la commande docker container restart :

  sudo docker restart CONTAINER_NAME

Remplacez CONTAINER_NAME par le nom que vous avez attribué au conteneur AlloyDB Omni lors de son installation.

Podman

Pour redémarrer un conteneur AlloyDB Omni, exécutez la commande podman container start :

  sudo podman restart CONTAINER_NAME

Remplacez CONTAINER_NAME par le nom que vous avez attribué au conteneur AlloyDB Omni lors de son installation.

Kubernetes

Pour définir l'indicateur google_columnar_engine.enabled sur off, modifiez le fichier manifeste de votre cluster de bases de données afin d'ajouter l'attribut parameters à la section primarySpec :

  apiVersion: alloydbomni.dbadmin.goog/v1
  kind: DBCluster
  metadata:
    name: CLUSTER_NAME
  spec:
    databaseVersion: "16.3.0"
    primarySpec:
      parameters:
        google_columnar_engine.enabled: "off"

Remplacez CLUSTER_NAME par le nom de votre cluster de bases de données. Il s'agit du même nom de cluster de base de données que vous avez déclaré lors de sa création.

Étapes suivantes