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
-
Vérifiez que la facturation est activée pour votre projet Google Cloud .
-
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. - 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
- 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 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 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 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:truepour écraser la table si elle existe, sinonfalse.
Étapes suivantes
- Découvrez comment lister les tables.
- Découvrez comment interroger une table.
- Découvrez comment gérer les LCA des tables.