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:
- Gérer le contenu du magasin de colonnes en mettant à jour les indicateurs de base de données
- Gérer le contenu du magasin de colonnes à l'aide de fonctions SQL
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' );
- "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.