Gérer manuellement le contenu du magasin de colonnes

Cette page explique comment gérer le contenu du magasin de colonnes du moteur de colonnes en ajoutant et en supprimant manuellement des colonnes.

En fonction de votre charge de travail, vous pouvez ajouter manuellement des colonnes au magasin de colonnes ou supprimer certaines ou toutes les colonnes d'un tableau ou d'une vue matérialisée du magasin de colonnes. L'évaluation des requêtes utilise automatiquement les données en colonnes stockées pour répondre aux requêtes.

Lorsque vous choisissez les tables, les vues matérialisées et les colonnes à ajouter au magasin de colonnes, tenez compte à la fois de la taille du magasin de colonnes et de la forme de la charge de travail. Les tables ou vues volumineuses fréquemment analysées sont des bons candidats. Dans ces tables ou vues, identifiez les index volumineux non uniques utilisés par la charge de travail OLAP. Vous pouvez ajouter les colonnes de ces index au magasin de colonnes et éventuellement supprimer les index, ce qui élimine le coût de performances associé à leur maintenance sur l'instance principale.

Utilisez l'une des méthodes suivantes pour gérer le contenu du magasin de colonnes du moteur en colonnes:

Consultez Données que vous pouvez ajouter au magasin de colonnes pour en savoir plus sur les types et les sources de données que vous pouvez utiliser lorsque vous ajoutez des tables, des colonnes et des vues materialisées au magasin de colonnes.

Avant de commencer

  • Vous devez disposer de l'un des rôles IAM suivants dans le projet Google Cloud que vous utilisez :
    • roles/alloydb.admin (rôle IAM prédéfini "AlloyDB Admin")
    • roles/owner (rôle IAM de base Propriétaire)
    • roles/editor (rôle IAM de base Éditeur)

    Si vous ne disposez d'aucun de ces rôles, contactez l'administrateur de votre organisation pour demander l'accès.

Gérer le contenu du magasin de colonnes en mettant à jour les options de base de données

Vous pouvez gérer manuellement le contenu du magasin de colonnes en mettant à jour l'indicateur de base de données google_columnar_engine.relations. L'indicateur a une seule valeur qui spécifie toutes les sources de données de votre magasin de colonnes. Lors du redémarrage, les colonnes spécifiées dans cet indicateur sont automatiquement renseignées dans le magasin de colonnes.

Vous pouvez utiliser cette option avec la colonnarisation automatique. Si la mémoire du moteur de colonnes est disponible après avoir renseigné les colonnes que vous spécifiez à l'aide de l'indicateur google_columnar_engine.relations, la colonnerisation automatique ajoute d'autres colonnes au magasin de colonnes, si nécessaire.

Pour en savoir plus sur la définition des indicateurs de base de données d'une instance à l'aide de Google Cloud CLI ou de la console Google Cloud , consultez Configurer les indicateurs de base de données d'une instance.

Ajouter des colonnes à l'aide d'options

Pour ajouter des colonnes au magasin de colonnes, définissez l'indicateur google_columnar_engine.relations d'une instance. Définissez sa valeur sur une liste d'éléments séparés par une virgule, chaque élément spécifiant une liste de colonnes à inclure à partir d'une table spécifique, au format suivant:

DATABASE_NAME.SCHEMA_NAME.TABLE_NAME(COLUMN_LIST)

Remplacez les éléments suivants :

  • DATABASE_NAME: base de données contenant les colonnes à ajouter au magasin de colonnes.

  • SCHEMA_NAME: schéma identifiant les tables ou les vues matérialisées à ajouter au magasin de colonnes (par exemple, public).

  • TABLE_NAME: table ou vue matérialisée contenant les colonnes à ajouter au magasin de colonnes.

  • COLUMN_LIST: liste des colonnes à ajouter au magasin de colonnes, séparées par une virgule.

Pour ajouter toutes les colonnes d'une table ou d'une vue materialisée, omettez la liste des colonnes:

DATABASE_NAME.SCHEMA_NAME.TABLE_NAME

Pour en savoir plus sur la configuration des options de base de données sur une instance, consultez la section Configurer les options de base de données d'une instance.

Remarque concernant la syntaxe de la ligne de commande

Si vous utilisez Google Cloud CLI pour définir l'option google_columnar_engine.relations, vous devez utiliser la syntaxe de séparateur alternatif pour séparer les options de base de données que vous définissez. En effet, la liste des colonnes est séparée par des virgules. Vous devez donc utiliser un autre caractère que la virgule lorsque vous spécifiez des options dans le même argument de ligne de commande.

L'exemple suivant montre comment utiliser gcloud CLI pour ajouter deux colonnes du schéma public au magasin de colonnes. L'exemple définit un indicateur distinct pour activer le moteur de colonnes, car l'utilisation de la commande gcloud alloydb instance update pour définir un indicateur de base de données doit également définir tous les autres indicateurs de base de données pour lesquels vous souhaitez définir des valeurs autres que celles par défaut, même s'ils sont déjà définis.

gcloud alloydb instances update INSTANCE_NAME \
    --database-flags=^:^\
google_columnar_engine.relations='DATABASE_NAME.public.TABLE_NAME(COLUMN_1,COLUMN_2)'\
:google_columnar_engine.enabled=on\
[:FLAG_3=VALUE_3 ...] \
    --region=REGION_ID \
    --cluster=CLUSTER_ID

Supprimer des colonnes à l'aide d'options

Pour supprimer des colonnes du magasin de colonnes, définissez une nouvelle valeur pour l'indicateur google_columnar_engine.relations décrit dans la section précédente, en omettant les colonnes que vous souhaitez supprimer.

Pour supprimer toutes les colonnes du magasin de colonnes, rétablissez l'indicateur google_columnar_engine.relations de votre instance.

Pour en savoir plus sur la configuration d'options de base de données sur une instance, consultez la section Configurer les options de base de données d'une instance.

Gérer le contenu du magasin de colonnes à l'aide de fonctions SQL

Vous pouvez gérer manuellement le contenu du magasin de colonnes à l'aide de fonctions SQL.

Ajouter des colonnes à l'aide de fonctions SQL

Exécutez la fonction SQL google_columnar_engine_add pour ajouter des colonnes au magasin de colonnes.

Cette méthode ajoute les colonnes spécifiées au magasin de colonnes et ne gère les colonnes que dans le nœud connecté. Les nouvelles colonnes ne persistent pas dans le magasin lors des redémarrages d'instance.

Cette méthode ne modifie pas l'indicateur de base de données google_columnar_engine.relations. La colonnarisation automatique ne tient pas compte des colonnes ajoutées par cette fonction SQL.

Client psql

SELECT google_columnar_engine_add(
    relation => 'TABLE_NAME',
    columns => 'COLUMN_LIST'
);
    Remplacez les éléments suivants:
  • "TABLE_NAME": chaîne contenant le nom de la table ou de la vue matérialisée. Si la table ou la vue se trouve dans un schéma autre que public, spécifiez le nom du schéma, un point et le nom de la table ou de la vue (par exemple, 'myschema.mytable').
  • 'COLUMN_LIST': chaîne contenant une liste des noms des colonnes que vous souhaitez ajouter, séparés par une virgule et sensibles à la casse. Si vous souhaitez ajouter toutes les colonnes de la table ou de la vue materialisée au magasin de colonnes, omettez ce paramètre.

Supprimer des colonnes à l'aide de fonctions SQL

Exécutez la fonction SQL google_columnar_engine_drop comme suit:

Client psql

SELECT google_columnar_engine_drop(
    relation => 'TABLE_NAME',
    columns => 'COLUMN_LIST'
);
Remplacez les éléments suivants :
  • "TABLE_NAME": chaîne contenant le nom de la table ou de la vue matérialisée. Si la table ou la vue se trouve dans un schéma autre que public, spécifiez le nom du schéma, un point et le nom de la table ou de la vue (par exemple, 'myschema.mytable').
  • 'COLUMN_LIST': chaîne contenant une liste des noms des colonnes que vous souhaitez ajouter, séparés par une virgule et sensibles à la casse. Si vous souhaitez ajouter toutes les colonnes de la table ou de la vue materialisée au magasin de colonnes, omettez ce paramètre.

Vous pouvez utiliser la fonction google_columnar_engine_drop pour supprimer les colonnes ajoutées en modifiant l'indicateur de base de données google_columnar_engine.relations. Toutefois, ces colonnes seront de nouveau ajoutées au magasin de colonnes lorsque l'instance sera redémarrée.