Créer et gérer des tables
Cette page explique comment créer et effectuer des opérations sur des tables Bigtable à l'aide de la console Google Cloud, de Google Cloud CLI ou de la CLI cbt
.
La CLI cbt
accepte plusieurs commandes qui ne sont pas décrites sur cette page. Pour obtenir la liste complète des commandes, consultez la documentation de référence sur cbt
.
Vous pouvez également créer et gérer des tables de manière automatisée avec les bibliothèques clientes ou les API de service Cloud Bigtable.
Pour savoir comment créer et gérer des vues autorisées d'une table, consultez la section Vues autorisées.
Avant de commencer
Si vous envisagez d'utiliser vos tables à l'aide d'outils de ligne de commande, suivez la procédure décrite dans cette section.
Installer gcloud CLI
Facultatif: Si vous prévoyez d'utiliser la CLI
cbt
, suivez les instructions de la section Installer la CLIcbt
, y compris l'étape de création d'un fichier.cbtrc
.Les instructions concernant la CLI
cbt
décrites sur cette page supposent que vous avez défini l'ID de projet et l'ID d'instance dans votre fichier.cbtrc
. Vous pouvez également utiliser les options-project
et-instance
pour définir ces valeurs lors de chaque exécution d'une commande de CLIcbt
.
Créer une table
Lorsque vous créez une table, vous n'avez pas besoin de spécifier les familles de colonnes qui doivent y être utilisées. Vous pourrez en ajouter ou en supprimer ultérieurement.
Console
Pour créer une table dans une instance, procédez comme suit :
Ouvrez la liste des instances Bigtable dans la console Google Cloud.
Cliquez sur l'instance dont vous souhaitez consulter les tables.
Cliquez sur Tables dans le volet de gauche.
La page Tables affiche une liste des tables de l'instance.
Saisissez un ID de table.
Ajouter des familles de colonnes (facultatif)
Vous pouvez ajouter des colonnes maintenant ou ultérieurement. Une table doit comporter au moins une famille de colonnes pour que vous puissiez y écrire des données. Une table doit comporter au moins une famille de colonnes pour que vous puissiez y écrire des données ou en lire un flux de modifications.
Facultatif: Activez un flux de modifications pour la table. Avant d'activer un flux de modifications, assurez-vous de comprendre les implications, y compris les coûts de stockage accrus et les exigences d'utilisation des profils d'application. Pour consulter ces informations, consultez la section Présentation des flux de modifications.
Sélectionnez Activer le flux de modifications.
Dans le champ Expiration, saisissez un nombre compris entre 1 et 7 pour spécifier le nombre de jours pendant lesquels les données du flux de modifications doivent être conservées.
Cliquez sur Créer.
Facultatif: Si vous ne souhaitez pas que Bigtable crée une sauvegarde quotidienne de la table, décochez la case à côté de Activer la sauvegarde automatique. Pour en savoir plus, consultez Utiliser la sauvegarde automatique (version Preview).
Cliquez sur Créer une table.
gcloud
Pour créer une table, exécutez la commande suivante. Pour obtenir la liste complète des options, consultez gcloud bigtable instances tables create.
gcloud bigtable instances tables create TABLE_ID \
--instance=INSTANCE_ID \
--project=PROJECT_ID \
--column-families=COLUMN-FAMILIES
Remplacez les éléments suivants :
- TABLE_ID : ID unique pour la nouvelle table.
- INSTANCE_ID: ID de l'instance
- PROJECT_ID : projet qui contiendra la nouvelle table.
- COLUMN-FAMILIES : liste de noms de familles de colonnes, séparés par des virgules. Vous pourrez en ajouter d'autres ultérieurement.
Facultatif :
Pour protéger la table contre la suppression, ajoutez
--deletion-protection
à la commande. Si vous n'appliquez pas ce paramètre, la table peut être supprimée. Vous pouvez également autoriser explicitement la suppression de la table en ajoutant--no-deletion-protection
.Pour activer un flux de modifications pour la table, spécifiez une durée de conservation pour les données du flux de modifications. Avant d'activer un flux de modifications, assurez-vous de bien comprendre les conséquences, y compris l'augmentation des coûts de stockage et les exigences d'utilisation des profils d'application. Pour en savoir plus, consultez la section Présentation des flux de modifications.
--change-stream-retention-period=RETENTION_PERIOD
Remplacez RETENTION_PERIOD par la durée pendant laquelle Bigtable doit conserver les données du flux de modifications pour la table. La durée doit être comprise entre un et sept jours. Les unités acceptables sont les jours (d), les heures (h), les minutes (m) et les secondes (s). Exemples:
48h
ou6d
Pour autoriser Bigtable à créer une sauvegarde quotidienne de votre table, activez la sauvegarde automatique (bêta):
gcloud bigtable instances tables create TABLE_ID \ --instance=INSTANCE_ID \ --project=PROJECT_ID \ --column-families=COLUMN-FAMILIES \ --enable-automated-backup
cbt
Utilisez la commande suivante, en remplaçant TABLE_NAME
par le nom de votre table. Vous ne pouvez pas utiliser la CLI cbt
pour créer une table avec un flux de modifications activé.
cbt createtable TABLE_ID
Facultatif: Pour créer une famille de colonnes agrégative dans le tableau, ajoutez le type d'agrégation au nom de la famille de colonnes. L'exemple suivant crée une famille de colonnes agrégative avec une stratégie de récupération de mémoire de never
.
cbt createtable TABLE_ID families=FAMILY_NAME:never:TYPE
Remplacez les éléments suivants :
- TABLE_ID : ID unique pour la nouvelle table.
- FAMILY_NAME : liste de noms de familles de colonnes, séparés par des virgules. Vous pourrez en ajouter d'autres ultérieurement.
- TYPE: type d'agrégation. Doit être
intsum
,intmin
,intmax
ouinthll
.
Pour en savoir plus, consultez Créer une table dans la documentation de référence de la CLI cbt
.
Si vous avez supprimé une table par erreur, n'essayez pas de la créer manuellement. Exécutez la commande gcloud CLI bigtable instances tables undelete
pour récupérer la table.
Facultatif : Diviser la table en fonction d'une clé de ligne
Pour optimiser les performances, Bigtable divise en permanence les tables sur plusieurs nœuds, répartit de manière uniforme la quantité de données stockées sur chaque nœud et sépare, dans la mesure du possible, les lignes fréquemment consultées. Ce processus en cours est automatique.
Lorsque vous créez une table, vous pouvez spécifier des divisions initiales. Bigtable divise la table en fonction des clés de ligne que vous fournissez. Si les espaces de clés sont trop volumineux, Bigtable divise davantage la table. Les divisions initiales sont conservées pendant environ 24 heures après la création de la table. Vous pouvez fournir jusqu'à 100 clés de ligne dans lesquelles les divisions initiales doivent être effectuées.
Par exemple, vous pouvez désigner des lignes spécifiques pour pré-diviser votre table si vous êtes sur le point d'y écrire de nombreuses lignes.
Cette division préalable de la table n'est pas indispensable, mais elle présente des avantages, car elle fournit à Bigtable des informations sur l'endroit susceptible d'être impacté par la charge et le volume de données lors de la création de la table. La division préalable épargne à Bigtable la division des tables et le rééquilibrage de la charge concomitant à l'arrivée des données.
Console
Vous ne pouvez pas effectuer une division préalable des lignes lorsque vous créez une table à l'aide de Google Cloud Console.
gcloud
Pour diviser une table par clé de ligne, exécutez la commande suivante. Pour obtenir la liste complète des options, consultez gcloud bigtable instances tables create.
gcloud bigtable instances tables create TABLE_ID\
--instance=INSTANCE_ID \
--project=PROJECT_ID \
--column-families=COLUMN-FAMILIES \
--splits=SPLITS
Remplacez les éléments suivants :
- TABLE_ID : ID unique pour la nouvelle table.
- INSTANCE_ID: ID de l'instance
- PROJECT_ID : projet qui contiendra la nouvelle table.
- COLUMN-FAMILIES : liste de noms de familles de colonnes, séparés par des virgules. Vous pourrez en ajouter d'autres ultérieurement.
- SPLITS: clés de ligne à partir desquelles la table doit être divisée au départ (par exemple,
10,20
).
cbt
Pour effectuer une division préalable d'une table en fonction de la clé de ligne, utilisez la syntaxe suivante pour créer la table. Remplacez [TABLE_NAME]
par le nom de la table et [SPLITS]
par une liste de préfixes de clés de ligne séparés par une virgule à utiliser pour les divisions préalables.
```
cbt createtable [TABLE_NAME] splits=[SPLITS]
```
Par exemple, pour effectuer une division préalable de la table my-table
au niveau des clés de ligne commençant par 10
et 20
:
```
cbt createtable my-table splits=10,20
```
Modifier les familles de colonnes d'une table
Vous pouvez ajouter des familles de colonnes dans une table existante. Si la protection contre la suppression n'est pas activée pour la table, vous pouvez supprimer des familles de colonnes dans la table.
Ajouter des familles de colonnes
Console
Ouvrez la liste des instances Bigtable dans la console Google Cloud.
Cliquez sur l'instance dont vous souhaitez consulter les tables.
Cliquez sur Tables dans le volet de gauche.
La page Tables affiche une liste des tables de l'instance.
Cliquez sur
Modifier pour la table que vous souhaitez modifier.Pour chaque famille de colonnes que vous souhaitez ajouter, procédez comme suit :
- Cliquez sur Ajouter une famille de colonnes.
- Fournissez un identifiant unique pour la famille de colonnes.
- Définissez la stratégie de récupération de mémoire pour la famille de colonnes.
- Cliquez sur OK.
- Cliquez sur Enregistrer.
gcloud
Vous ne pouvez pas utiliser la gcloud CLI pour ajouter des familles de colonnes à une table.
cbt
Pour ajouter une famille de colonnes à une table, utilisez la commande suivante:
cbt createfamily TABLE_ID FAMILY_NAME
Par exemple, pour ajouter les familles de colonnes cf1
et cf2
à la table my-table
:
cbt createfamily my-table cf1
cbt createfamily my-table cf2
Facultatif: Pour ajouter une famille de colonnes agrégatives à la table, ajoutez le type d'agrégation au nom de la famille de colonnes. Le code suivant crée une table avec une famille de colonnes agrégatives avec une stratégie de récupération de mémoire de never
.
cbt createfamily TABLE_ID FAMILY_NAME:never:TYPE
Remplacez les éléments suivants :
- TABLE_ID : ID de la table
- FAMILY_NAME : liste de noms de familles de colonnes, séparés par des virgules. Vous pourrez en ajouter d'autres ultérieurement.
- TYPE: type d'agrégation. La valeur doit être
intsum
,intmin
,intmax
ouinthll
.
Supprimer des familles de colonnes
Vous pouvez supprimer des familles de colonnes dans une table pour laquelle la protection contre la suppression n'est pas activée.
Console
Ouvrez la liste des instances Bigtable dans la console Google Cloud.
Cliquez sur l'instance dont vous souhaitez consulter les tables.
Cliquez sur Tables dans le volet de gauche.
La page Tables affiche une liste des tables de l'instance.
Cliquez sur
Modifier pour la table que vous souhaitez modifier.Pour chaque famille de colonnes que vous souhaitez supprimer, procédez comme suit :
- Passez la souris sur la ligne de la famille de colonnes que vous souhaitez supprimer.
- Cliquez sur .
Cliquez sur Enregistrer.
Pour confirmer que vous comprenez que la suppression d'une famille de colonnes est définitive et que toutes les données de la famille de colonnes seront supprimées, saisissez "Supprimer les familles de colonnes" dans le champ de texte.
Cliquez sur Confirmer.
gcloud
Vous ne pouvez pas utiliser gcloud CLI pour supprimer des familles de colonnes d'une table.
cbt
Pour supprimer une famille de colonnes d'une table, utilisez la commande suivante, en remplaçant [TABLE_NAME]
par le nom de la table et [FAMILY_NAME]
par le nom de la famille de colonnes :
cbt deletefamily [TABLE_NAME] [FAMILY_NAME]
Par exemple, pour supprimer la famille de colonnes cf2
de la table my-table
:
cbt deletefamily my-table cf2
Afficher la liste des tables
Console
Pour afficher la liste de tables dans une instance :
Ouvrez la liste des instances Bigtable dans la console Google Cloud.
Cliquez sur l'instance dont vous souhaitez consulter les tables.
Cliquez sur Tables dans le volet de gauche.
La page Tables affiche une liste des tables de l'instance.
- Cliquez sur la flèche en regard de l'ID de la table pour développer la liste des réplications de la table.
- Cliquez sur Afficher les métriques à côté du nom d'une table pour afficher les données de surveillance de la table en question.
gcloud
Pour afficher la liste des tables, exécutez la commande gcloud bigtable instances tables list.
gcloud bigtable instances tables list --instances=INSTANCE_IDS
Remplacez les éléments suivants :
- INSTANCE_IDS: liste d'ID d'instance séparés par une virgule.
cbt
Pour afficher la liste des tables, exécutez la commande suivante :
cbt ls INSTANCE_ID
Remplacez les éléments suivants :
INSTANCE_ID
: identifiant permanent de l'instance.
C++
Pour savoir comment installer et utiliser la bibliothèque cliente pour Bigtable, consultez la section Bibliothèques clientes Bigtable.
Pour vous authentifier auprès de Bigtable, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
C#
Pour savoir comment installer et utiliser la bibliothèque cliente pour Bigtable, consultez la section Bibliothèques clientes Bigtable.
Pour vous authentifier auprès de Bigtable, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour Bigtable, consultez la section Bibliothèques clientes Bigtable.
Pour vous authentifier auprès de Bigtable, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour Bigtable, consultez la section Bibliothèques clientes Bigtable.
Pour vous authentifier auprès de Bigtable, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
PHP
Pour savoir comment installer et utiliser la bibliothèque cliente pour Bigtable, consultez la section Bibliothèques clientes Bigtable.
Pour vous authentifier auprès de Bigtable, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour Bigtable, consultez la section Bibliothèques clientes Bigtable.
Pour vous authentifier auprès de Bigtable, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ruby
Pour savoir comment installer et utiliser la bibliothèque cliente pour Bigtable, consultez la section Bibliothèques clientes Bigtable.
Pour vous authentifier auprès de Bigtable, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Afficher les informations d'une table
Console
Pour afficher des informations sur une table, procédez comme suit :
Ouvrez la liste des instances Bigtable dans la console Google Cloud.
Cliquez sur l'instance dont vous souhaitez consulter les tables.
Cliquez sur Tables dans le volet de gauche.
La page Tables affiche une liste des tables de l'instance. Pour chaque table, la console Google Cloud affiche le nombre de clusters sur lesquels la table est stockée, son état, son utilisation du stockage et les identifiants de toutes les sauvegardes actuelles de la table.
Pour afficher les noms des familles de colonnes de la table, cliquez sur
. Pour fermer le volet Modifier la table, cliquez sur Annuler.Pour afficher des détails supplémentaires sur la table, y compris les métriques au niveau de la table et l'état de la réplication, cliquez sur le nom de la table.
gcloud
Pour afficher des informations sur une table, exécutez la commande gcloud bigtable instances tables describe.
gcloud bigtable instances tables describe TABLE_ID \
--instance=INSTANCE_ID
Remplacez les éléments suivants :
- TABLE_ID: ID unique de la table
- INSTANCE_ID: ID de l'instance
cbt
Vous pouvez utiliser la CLI cbt
pour obtenir la liste des familles de colonnes existantes d'une table.
Utilisez la commande suivante en remplaçant [TABLE_NAME]
par le nom de la table :
cbt ls [TABLE_NAME]
Définir des stratégies de récupération de mémoire
Une stratégie de récupération de mémoire indique à Bigtable quelles données conserver et quelles données marquer pour suppression. Les règles de récupération de mémoire sont définies au niveau de la famille de colonnes. Vous pouvez les définir lors de la création de la table ou ultérieurement.
Lorsque vous créez une famille de colonnes, vous pouvez spécifier le nombre de cellules que vous souhaitez conserver dans chaque colonne de cette famille. Si vous ne définissez pas ce paramètre, Bigtable utilise l'un des paramètres par défaut suivants :
Si vous créez la famille de colonnes avec le client Cloud Bigtable HBase pour Java, de l'interface système HBase, ou d'un autre outil qui utilise le client HBase pour Java, Bigtable ne conserve qu'une seule cellule pour chaque intersection de ligne/colonne dans la famille de colonnes. Ce paramètre par défaut est conforme à HBase.
Si vous créez la famille de colonnes à l'aide de la console Google Cloud, de toute autre bibliothèque cliente ou de la CLI
cbt
, Bigtable conserve un nombre infini de cellules dans chaque colonne.
Consultez la page Configurer des stratégies de récupération de mémoire pour obtenir des instructions détaillées sur l'affichage, la définition et la mise à jour des stratégies de récupération de mémoire.
Sauvegarder et restaurer une table
Pour savoir comment sauvegarder et restaurer une table à partir d'une sauvegarde, consultez la page Gérer des sauvegardes.
Si vous avez activé la sauvegarde automatique lors de la création d'une table, vous pouvez modifier la configuration de la sauvegarde automatique pour une table afin d'activer ou de désactiver la sauvegarde automatique, ou de modifier la période de conservation jusqu'à 90 jours à compter de la date de création de la sauvegarde. Pour en savoir plus, consultez Utiliser la sauvegarde automatique.
Activer, désactiver ou configurer un flux de modifications
Pour obtenir des instructions sur les tâches suivantes, consultez la section Configurer un flux de modifications.
- Activer un flux de modifications sur une table existante
- Désactiver un flux de modifications
- Mettre à jour la durée de conservation d'un flux de modifications
Supprimer une table
La suppression d'une table entraîne également la suppression de toutes les vues autorisées de la table. Vous ne pouvez pas supprimer une table si la protection contre la suppression est activée pour certaines de ses vues autorisées.
Console
Ouvrez la liste des instances Bigtable dans la console Google Cloud.
Cliquez sur l'instance dont vous souhaitez consulter les tables.
Cliquez sur Tables dans le volet de gauche.
La page Tables affiche une liste des tables de l'instance.
Cliquez sur
pour la table que vous souhaitez supprimer.Cliquez sur Supprimer.
Pour confirmer que vous reconnaissez que cette action supprimera la table de tous les clusters de l'instance et que vous ne disposez que de sept jours pour annuler la suppression de la table, saisissez son ID dans la zone de texte.
Cliquez sur Supprimer.
gcloud
Pour supprimer des tables, exécutez la commande gcloud bigtable instances tables delete.
gcloud bigtable instances tables delete --instance=INSTANCE_ID
Remplacez les éléments suivants :
- INSTANCE_ID: ID de l'instance
Dans le terminal, saisissez
y
pour confirmer la suppression de la table.
cbt
Pour supprimer une table, utilisez la commande suivante, en remplaçant [TABLE_NAME]
par le nom de la table :
cbt deletetable [TABLE_NAME]
Annulez la suppression d'une table.
Si vous supprimez accidentellement une table, vous pouvez utiliser la commande bigtable instances tables undelete
de gcloud CLI pour annuler la suppression de la table ou la récupérer. N'essayez pas de créer manuellement la table supprimée.
Pour annuler la suppression d'une table, exécutez la commande suivante dans le terminal:
gcloud bigtable instances tables undelete TABLE_ID --instance=INSTANCE_ID
Remplacez les éléments suivants :
- TABLE_ID: identifiant unique de la table.
- INSTANCE_ID: ID de l'instance
Les limites suivantes s'appliquent :
- La possibilité d'annuler la suppression d'une table est disponible environ sept jours à compter de la date de suppression de la table.
- Vous ne pouvez pas annuler la suppression d'une table à l'aide de la console Google Cloud, des bibliothèques clientes Cloud Bigtable ou de la CLI
cbt
. - Vous ne pouvez pas annuler la suppression d'une table d'une instance qui a été supprimée.
- Vous ne pouvez pas annuler la suppression d'une table sur laquelle CMEK est activé.
- Les liaisons de stratégie IAM précises qu'une table possède avant la suppression ne sont pas restaurées lorsque la table est annulée.
Vous pouvez éventuellement vérifier l'état de l'opération undelete
dans les journaux d'audit.
Modifier la protection contre la suppression
Vous pouvez activer ou désactiver la protection contre la suppression d'une table si vous êtes un principal dans un rôle qui inclut l'autorisation bigtable.tables.update
, comme roles/bigtable.admin
. La protection contre la suppression empêche la suppression de la table, de toutes les familles de colonnes de la table et de l'instance qui la contient.
L'activation de la protection contre la suppression pour une table ne l'active pas pour les vues autorisées de la table. De même, la désactivation de la protection contre la suppression d'une table ne la désactive pas pour les vues autorisées de la table. Vous devez mettre à jour les vues autorisées de la table séparément.
Console
Ouvrez la liste des instances Bigtable dans la console Google Cloud.
Cliquez sur l'instance dont vous souhaitez consulter les tables.
Cliquez sur Tables dans le volet de gauche.
La page Tables affiche une liste des tables de l'instance.
Cliquez sur
à côté de l'ID de la table.Pour activer la protection contre la suppression, cliquez sur Empêcher la suppression. Pour désactiver la protection contre la suppression, cliquez sur Activer la suppression. Seule l'option valide est visible.
gcloud
Pour activer la protection contre la suppression d'une table, exécutez la commande gcloud bigtable instances
table update
:
gcloud bigtable instances tables update TABLE_ID \
--instance=INSTANCE_ID \
--deletion-protection
Pour désactiver la protection contre la suppression pour une table, exécutez la commande suivante :
gcloud bigtable instances tables update TABLE_ID \
--instance=INSTANCE_ID \
--no-deletion-protection
Remplacez les éléments suivants :
+ TABLE_ID: the unique identifier for the table
+ INSTANCE_ID: the ID of the instance
cbt
Vous ne pouvez pas utiliser la CLI cbt
pour activer ou désactiver la protection contre la suppression.