Gérer manuellement le contenu du magasin de colonnes

Cette page explique comment gérer le contenu du column store du moteur columnar en ajoutant et en supprimant manuellement des colonnes.

En fonction de votre charge de travail, vous pouvez ajouter manuellement des colonnes au column store ou supprimer tout ou partie des colonnes d'une table ou d'une vue matérialisée du column store. 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 column store, tenez compte de la taille du column store et de la forme de la charge de travail. Il est recommandé de sélectionner les grandes tables ou vues qui sont fréquemment analysées. 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 column store et éventuellement supprimer les index, ce qui élimine le coût de performance 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 :

Pour savoir quels types de données et sources de données vous pouvez utiliser lorsque vous ajoutez des tables, des colonnes et des vues matérialisées au column store, consultez Données que vous pouvez ajouter au column store.

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 "Administrateur AlloyDB")
    • 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 column store en modifiant les options de base de données

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

Vous pouvez utiliser cet indicateur avec auto-columnarization. Si le moteur de colonnes dispose de mémoire après avoir rempli les colonnes que vous spécifiez à l'aide de l'indicateur google_columnar_engine.relations, la columnarisation automatique ajoute d'autres colonnes au magasin de colonnes, si nécessaire.

Pour savoir comment définir les indicateurs de base de données d'une instance à l'aide de Google Cloud CLI ou de la console, consultez Configurer les indicateurs de base de données d'une instance. Google Cloud

Ajouter des colonnes à l'aide d'options

Pour ajouter des colonnes au column store, 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 column store.

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

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

  • COLUMN_LIST : liste des colonnes à ajouter au column store, séparées par des virgules.

Pour ajouter toutes les colonnes d'une table ou d'une vue matérialisé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 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 délimiteur 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, ce qui vous oblige à utiliser un caractère autre qu'une virgule lorsque vous spécifiez des indicateurs dans le même argument de ligne de commande.

L'exemple suivant montre comment utiliser gcloud CLI pour ajouter deux colonnes dans le schéma public au column store. L'exemple définit un indicateur distinct pour activer le moteur en colonnes, car l'utilisation de la commande gcloud alloydb instance update pour définir une option de base de données doit également définir toutes les autres options de base de données dont vous souhaitez modifier la valeur par défaut, même si elles sont déjà définies.

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 column store, 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 column store, désactivez l'indicateur google_columnar_engine.relations de votre instance.

Pour savoir comment définir des options de base de données sur une instance, consultez Configurer les options de base de données d'une instance.

Gérer le contenu du column store à l'aide de fonctions SQL

Vous pouvez gérer manuellement le contenu du column store à 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 column store.

Cette méthode ajoute les colonnes spécifiées au column store et gère les colonnes uniquement dans le nœud connecté. Les nouvelles colonnes ne sont pas conservées 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 columnarisation 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 sensible à la casse des noms des colonnes que vous souhaitez ajouter, séparés par une virgule. Si vous souhaitez ajouter toutes les colonnes de la table ou de la vue matérialisée au column store, 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 sensible à la casse des noms des colonnes que vous souhaitez ajouter, séparés par une virgule. Si vous souhaitez ajouter toutes les colonnes de la table ou de la vue matérialisée au column store, 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, lorsque vous le faites, ces colonnes sont réajoutées au magasin de colonnes lorsque l'instance est redémarrée.