Modifier 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 et validées via la spécification de l'API Iceberg REST Catalog Open Source (POST /v1/{prefix}/namespaces/{namespace}/tables/{table} pour CommitTable/UpdateIcebergTable).
Avant de commencer
Consultez l'aperçu des tableaux pour comprendre les différents types de tableaux et les implications de leur utilisation.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud .
-
Activez l'API BigLake.
Rôles requis pour activer les API
Pour activer les API, vous avez besoin du rôle IAM Administrateur Service Usage (
roles/serviceusage.serviceUsageAdmin), qui contient l'autorisationserviceusage.services.enable. Découvrez comment attribuer des rôles.
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) : projet -
Modifier une table en mode de distribution d'identifiants :
- Éditeur BigLake (
roles/biglake.editor) : 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 avec des rôles personnalisés ou d'autres rôles prédéfinis.
Modifier une table
Ajoutez une colonne au tableau :
Console
Dans la console Google Cloud , accédez à Lakehouse.
Sélectionnez un catalogue existant ou créez-en un si vous n'en avez pas.
Dans le tableau Détails de l'espace de noms, sélectionnez un tableau et développez les options du menu.
Cliquez sur Modifier.
Mettez à jour les valeurs du tableau dans la boîte de dialogue.
Cliquez sur Enregistrer.
Spark
spark.sql("ALTER TABLE TABLE_NAME ADD COLUMNS ( desc string);")
spark.sql("DESCRIBE NAMESPACE_NAME.TABLE_NAME").show()
Trino
ALTER TABLE TABLE_NAME ADD COLUMN desc varchar;
DESCRIBE SCHEMA_NAME.TABLE_NAME;
REST
Pour valider les modifications apportées à une table Iceberg à l'aide de l'API REST, envoyez une requête POST au point de terminaison UpdateIcebergTable (CommitTable) :
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 projet Google Cloud .CATALOG_ID: ID de votre catalogue d'exécution Lakehouse.NAMESPACE_NAME: nom de l'espace de noms de votre catalogue.TABLE_NAME: nom de votre table Iceberg.
Étapes suivantes
- Découvrez comment supprimer une table.