Créer une table

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.

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

  2. 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'autorisation serviceusage.services.enable. Découvrez comment attribuer des rôles.

    Activer l'API

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

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

  1. Dans la console Google Cloud , accédez à Lakehouse.

    Accéder à Lakehouse

  2. Sélectionnez un catalogue existant ou créez-en un si vous n'en avez pas.

  3. Dans la barre de menu, cliquez sur + Créer un tableau.

  4. Pour Format de table, sélectionnez Iceberg.

  5. Pour Nom de la table, saisissez un nom de table unique.

  6. 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 noms
  • TABLE_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