Modifier une table

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.

  1. Vérifiez que la facturation est activée pour votre projet Google Cloud .

  2. 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'autorisation serviceusage.services.enable. Découvrez comment attribuer des rôles.

    Activer l'API

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

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

  1. Dans la console Google Cloud , accédez à Lakehouse.

    Accéder à Lakehouse

  2. Sélectionnez un catalogue existant ou créez-en un si vous n'en avez pas.

  3. Dans le tableau Détails de l'espace de noms, sélectionnez un tableau et développez les options du menu.

  4. Cliquez sur Modifier.

  5. Mettez à jour les valeurs du tableau dans la boîte de dialogue.

  6. 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