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
-
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 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. - 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
- Administrateur 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.
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éePROJECT_ID: ID du Google Cloud projetCATALOG_ID: ID du catalogueNAMESPACE_NAME: nom de l'espace de noms du catalogueMETADATA_LOCATION: URI Cloud Storage du dernier fichier JSON de métadonnées de la table, par exemplegs://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 projetCATALOG_ID: ID du catalogueNAMESPACE_NAME: nom de l'espace de noms du catalogueTABLE_NAME: nom de la table enregistréeMETADATA_LOCATION: URI Cloud Storage du dernier fichier JSON de métadonnées de la tableOVERWRITE:truepour écraser la table si elle existe, sinonfalse
Étape suivante
- Découvrez comment lister les tables.
- Découvrez comment interroger une table.
- Découvrez comment gérer les LCA de table.