Lorsque vous créez une table Apache Iceberg, les métadonnées de la table sont enregistrées dans un espace de noms du catalogue d'exécution de Lakehouse.
Si vous ne spécifiez pas d'emplacement de stockage explicite au niveau de l'espace de noms ou de la table lors de la création de la table, le système crée automatiquement les métadonnées de la table et les répertoires de données sous l'emplacement par défaut du catalogue (dérivé du bucket Cloud Storage de base du catalogue) en ajoutant les identifiants de l'espace de noms et de la table.
En plus des intégrations du moteur de requête, le catalogue d'exécution de Lakehouse implémente la spécification de l'API REST du catalogue Iceberg Open Source (POST /v1/{prefix}/namespaces/{namespace}/tables), ce qui permet aux clients REST compatibles de créer des tables directement.
Avant de commencer
Consultez la présentation des tables pour comprendre les différents types de tables et les implications de leur utilisation.
-
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 du rôle IAM Administrateur d'utilisation du service (
roles/serviceusage.serviceUsageAdmin), qui contient l'autorisationserviceusage.services.enable. Découvrez comment attribuer des rôles.
Rôles requis
Pour obtenir les autorisations nécessaires pour créer une table, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet et votre bucket de stockage :
-
Tous :
- 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 avec des rôles personnalisés ou d'autres rôles prédéfinis.
Créer une table
Créez une table Iceberg.
Console
Dans la Google Cloud console, accédez à Lakehouse.
Sélectionnez un catalogue existant ou créez-en un si vous n'en avez pas.
Dans la barre de menu, cliquez sur +Créer une table.
Pour Format de la table, sélectionnez Iceberg.
Pour Nom de la table, saisissez un nom de table unique.
Cliquez sur Créer.
Votre table s'affiche sur la page Informations sur l'espace de noms.
Spark
spark.sql("CREATE TABLE NAMESPACE_NAME.TABLE_NAME (id int, data string) USING ICEBERG;")
spark.sql("DESCRIBE NAMESPACE_NAME.TABLE_NAME").show()
Remplacez les valeurs suivantes :
NAMESPACE_NAME: nom de votre espace de nomsTABLE_NAME: nom de votre table
Trino
CREATE TABLE SCHEMA_NAME.TABLE_NAME (id int, data varchar);
DESCRIBE SCHEMA_NAME.TABLE_NAME;
Remplacez les valeurs suivantes :
SCHEMA_NAME: nom de votre schémaTABLE_NAME: nom de votre table
Si vous utilisez la fédération de catalogues BigQuery avec Trino, vous ne pouvez pas spécifier d'emplacement pour la table. L'emplacement par défaut du schéma est toujours utilisé.
REST
Pour créer une table Iceberg à l'aide de l'API REST, envoyez une requête POST au point de terminaison CreateIcebergTable :
POST /iceberg/v1/restcatalog/v1/projects/PROJECT_ID/catalogs/CATALOG_ID/namespaces/NAMESPACE_NAME/tables
Le corps de la requête doit contenir une charge utile JSON CreateTableRequest Iceberg valide définissant le schéma de la table, la spécification de partition et les propriétés initiales.
Remplacez les éléments suivants :
PROJECT_ID: ID de votre Google Cloud projet.CATALOG_ID: ID de votre catalogue d'exécution Lakehouse.NAMESPACE_NAME: nom de l'espace de noms de votre catalogue.
Étape suivante
- Découvrez comment lister des tables.
- Découvrez comment insérer des données dans une table.