Enregistrer une table

L'enregistrement d'une table Apache Iceberg existante intègre ses métadonnées au catalogue d'exécution Lakehouse, ce qui permet d'interroger et de gérer les données de la table dans un espace de noms. Ce processus diffère de la création de tables, qui initialise une nouvelle structure de table vide et son stockage associé.

Avant de commencer

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

  2. Activez l'API BigLake si ce n'est pas déjà fait.

    Rôles requis pour activer les API

    Pour activer les API, vous devez disposer 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 obtenir cette autorisation grâce au rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.

    Activer l'API

  3. 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 enregistrer une table, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet et votre bucket de stockage :

  • Enregistrer une table :
    • Administrateur BigLake (roles/biglake.admin) – votre projet
    • Administrateur de l'espace de stockage (roles/storage.admin) : bucket Cloud Storage cible

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.

Enregistrer une table

Enregistrez une table Iceberg existante.

gcloud

Pour enregistrer une table à l'aide de gcloud, exécutez la commande gcloud biglake iceberg tables register.

gcloud biglake iceberg tables register TABLE_NAME \
    --project="PROJECT_ID" \
    --catalog="CATALOG_ID" \
    --namespace="NAMESPACE_NAME" \
    --metadata-location="METADATA_LOCATION" \
    [--overwrite]

Remplacez les éléments suivants :

  • TABLE_NAME : nom à attribuer à la table enregistrée.
  • PROJECT_ID : ID du projet Google Cloud .
  • CATALOG_ID : ID du catalogue.
  • NAMESPACE_NAME : nom de l'espace de noms du catalogue.
  • METADATA_LOCATION : URI Cloud Storage du dernier fichier JSON de métadonnées pour la table, par exemple gs://my-bucket/path/to/metadata/00001.metadata.json.
  • --overwrite : (facultatif) écrase la table si elle existe déjà.

REST

Pour enregistrer une table Iceberg à l'aide de l'API REST, envoyez une requête POST au point de terminaison RegisterIcebergTable :

POST /iceberg/v1/restcatalog/v1/projects/PROJECT_ID/catalogs/CATALOG_ID/namespaces/NAMESPACE_NAME/register

Le corps de la requête doit contenir une charge utile JSON avec la structure suivante :

{
  "name": "TABLE_NAME",
  "metadata-location": "METADATA_LOCATION",
  "overwrite": OVERWRITE
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet Google Cloud .
  • CATALOG_ID : ID du catalogue.
  • NAMESPACE_NAME : nom de l'espace de noms du catalogue.
  • TABLE_NAME : nom de la table enregistrée.
  • METADATA_LOCATION : URI Cloud Storage du dernier fichier JSON de métadonnées pour la table.
  • OVERWRITE : true pour écraser la table si elle existe, sinon false.

Étapes suivantes