La modification d'une table vous permet de faire évoluer le schéma (par exemple, en ajoutant des colonnes) et de mettre à jour les propriétés des métadonnées de la table.
Les modifications sont gérées par le catalogue d'environnements d'exécution Lakehouse.
Avant de commencer
-
Vérifiez que la facturation est activée pour votre Google Cloud projet.
-
Activez l'API BigLake.
Rôles requis pour activer les API
Pour activer les API, vous avez besoin de l'autorisation
serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez l'obtenir grâce au rôle Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles. - Configurez le catalogue d'environnements d'exécution Lakehouse avec le point de terminaison du catalogue REST Apache Iceberg.
Rôles requis
Pour obtenir les autorisations nécessaires pour modifier une table, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet et votre bucket de stockage :
-
Modifier une table en mode de distribution d'identifiants:
Éditeur BigLake (
roles/biglake.editor) – le projet -
Modifier une table en mode de distribution sans identifiants :
- Éditeur BigLake (
roles/biglake.editor) – le projet - Utilisateur d'objets Storage (
roles/storage.objectUser) – le bucket Cloud Storage
- Éditeur BigLake (
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Fonctionnalités et compatibilité des tables
Lorsque vous utilisez des tables dans le catalogue d'environnements d'exécution Lakehouse, il est utile de comprendre les différents types de tables et leurs fonctionnalités d'activation des fonctionnalités. Pour en savoir plus sur l'utilisation des tables Apache Iceberg, consultez Présentation des tables Apache Iceberg tables.
Tables Iceberg compatibles
Seules les tables Apache Iceberg V2 (DG) et V3 (bêta) sont compatibles. Les tables Iceberg V1 ne sont pas compatibles. Pour mettre à niveau des tables V1 existantes, consultez Mettre à niveau des tables Iceberg V1 vers la version 2.
Utiliser les options de table (bêta)
Vous pouvez choisir d'utiliser les fonctionnalités gérées de BigQuery, telles que le langage de manipulation de données (LMD) BigQuery et la gestion automatique des tables, en configurant des propriétés de table spécifiques. Ces fonctionnalités sont activées de différentes manières selon l'endroit où la table est créée :
- À partir de BigQuery : le LMD BigQuery et la gestion automatique des tables sont activés par défaut.
- À partir de moteurs Open Source : pour activer ces fonctionnalités, vous devez configurer explicitement les propriétés de la table. Pour en savoir plus, consultez Configurer les options de table.
Pour obtenir des instructions détaillées, consultez Configurer les options de table.
Modifier une table
Ajoutez une colonne à la table :
Console
Dans la Google Cloud console, accédez à Lakehouse.
Sélectionnez un catalogue existant ou créez-en un si vous n'en avez pas.
Dans la table Namespace details (Détails de l'espace de noms), sélectionnez une table et développez les options du menu.
Cliquez sur Edit (Modifier).
Mettez à jour les valeurs de la table dans la boîte de dialogue. Dans la section Properties (Propriétés), vous pouvez ajouter ou modifier des propriétés telles que
gcp.biglake.bigquery-dml.enabledetgcp.biglake.table-management.enabledpour activer ou désactiver le LMD BigQuery ou la gestion automatique des tables.Par exemple, vous pouvez définir ces valeurs sur
truepour activer ces fonctionnalités. Pour en savoir plus, consultez Configurer les options de table.Cliquez sur Enregistrer.
Spark
spark.sql("ALTER TABLE TABLE_NAME ADD COLUMNS ( desc string);")
spark.sql("DESCRIBE NAMESPACE_NAME.TABLE_NAME").show()
Pour activer l'interopérabilité en lecture/écriture et la gestion des tables, définissez les propriétés à l'aide de la clause SET TBLPROPERTIES :
SET TBLPROPERTIES (
'gcp.biglake.bigquery-dml.enabled' = true,
'gcp.biglake.table-management.enabled' = true
)
Trino
ALTER TABLE TABLE_NAME ADD COLUMN desc varchar;
DESCRIBE SCHEMA_NAME.TABLE_NAME;
Pour activer l'interopérabilité en lecture/écriture et la gestion des tables, vous pouvez configurer les propriétés de table suivantes :
'gcp.biglake.bigquery-dml.enabled' = true'gcp.biglake.table-management.enabled' = true
gcloud
Pour mettre à jour les propriétés de la table à l'aide de gcloud, exécutez la gcloud biglake iceberg tables update commande.
gcloud biglake iceberg tables update TABLE_NAME \ --project="PROJECT_ID" \ --catalog="CATALOG_ID" \ --namespace="NAMESPACE_NAME" \ --update-properties="KEY=VALUE,..."
Remplacez les éléments suivants :
TABLE_NAME: nom de votre table Iceberg.PROJECT_ID: ID de votre Google Cloud projet.CATALOG_ID: ID de votre catalogue.NAMESPACE_NAME: nom de l'espace de noms de votre catalogue.KEY=VALUE,...: propriétés de table à ajouter ou à mettre à jour.
BigQuery
Pour mettre à jour les propriétés d'une table Apache Iceberg dans le catalogue d'environnements d'exécution Lakehouse à partir de BigQuery (par exemple, pour activer le LMD BigQuery ou la gestion automatique des tables), utilisez l'instruction GoogleSQL ALTER TABLE suivante :
ALTER TABLE `PROJECT_ID.CATALOG_ID.NAMESPACE.TABLE_NAME`
SET OPTIONS (`properties.gcp.biglake.table-management` = "enabled");
Pour mettre à jour le schéma et ajouter une colonne dans une table Apache Iceberg du catalogue d'environnements d'exécution Lakehouse à partir de BigQuery, utilisez l'instruction GoogleSQL ALTER TABLE suivante :
ALTER TABLE `PROJECT_ID.CATALOG_ID.NAMESPACE.TABLE_NAME`
ADD COLUMN new_column STRING;
Remplacez les éléments suivants :
PROJECT_ID: ID de votre Google Cloud projet.CATALOG_ID: ID de votre catalogue d'environnements d'exécution Lakehouse.NAMESPACE: nom de votre espace de noms Iceberg.TABLE_NAME: nom de votre table Iceberg.
REST
Pour valider les modifications apportées à une table Iceberg à l'aide de l'API REST, envoyez une POST
requête au UpdateIcebergTable (CommitTable) point de terminaison :
POST /iceberg/v1/restcatalog/v1/projects/PROJECT_ID/catalogs/CATALOG_ID/namespaces/NAMESPACE_NAME/tables/TABLE_NAME
Le corps de la requête doit contenir une charge utile JSON CommitTableRequest Iceberg valide définissant l'exigence de base et la liste des mises à jour de métadonnées à appliquer.
Remplacez les éléments suivants :
PROJECT_ID: ID de votre Google Cloud projet.CATALOG_ID: ID de votre catalogue.NAMESPACE_NAME: nom de l'espace de noms de votre catalogue.TABLE_NAME: nom de votre table Iceberg.
Étape suivante
- Découvrez comment supprimer une table.