La création d'une table Apache Iceberg enregistre les métadonnées de la table dans un espace de noms du catalogue d'exécution Lakehouse.
Formats de tableaux acceptés
Seules les tables Apache Iceberg V2 sont acceptées. Les tables Iceberg V1 ne le sont pas. Si vous disposez de tables Iceberg V1, vous devez les mettre à niveau vers la version V2 (par exemple, en exécutant ALTER TABLE catalog.schema.table SET TBLPROPERTIES ('format-version'='2'); ou en utilisant des opérations de moteur similaires) avant de les enregistrer ou de les utiliser.
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 construit automatiquement les répertoires de métadonnées et de données de la table 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'environnements d'exécution Lakehouse implémente la spécification de l'API Iceberg REST Catalog 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 l'aperçu des tableaux pour comprendre les différents types de tableaux et les implications de leur utilisation.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud .
-
Activez l'API BigLake.
Rôles requis pour activer les API
Pour activer les API, vous avez besoin du rôle IAM Administrateur Service Usage (
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 console Google Cloud , 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 un tableau.
Pour Format de table, sélectionnez Iceberg.
Pour Nom de la table, saisissez un nom de table unique.
Cliquez sur Créer.
Votre tableau s'affiche sur la page Détails de 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éma.TABLE_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 projet Google Cloud .CATALOG_ID: ID de votre catalogue d'exécution Lakehouse.NAMESPACE_NAME: nom de l'espace de noms de votre catalogue.
Étapes suivantes
- Découvrez comment lister des tables.
- Découvrez comment insérer des données dans un tableau.