Enregistrer une table

L'enregistrement d'une table Apache Iceberg existante intègre ses métadonnées dans le catalogue d'exécution de Lakehouse, ce qui rend les données de la table disponibles pour les requêtes et la gestion dans un espace de noms. Ce processus diffère de la création de table, qui initialise une structure de table vide et son espace de stockage associé.

Avant de commencer

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

  2. 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 via le rôle Propriétaire (roles/owner). Sinon, vous pouvez l'obtenir via le rôle Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.

    Activer l'API

  3. Configurez le catalogue d'exécution de 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) : le 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 via 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 commandegcloud 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 Google Cloud projet
  • 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 de 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 POST requête au RegisterIcebergTable point de terminaison :

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 Google Cloud projet
  • 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 de la table
  • OVERWRITE : true pour écraser la table si elle existe, sinon false

Étape suivante