La création d'une table Apache Iceberg initialise les métadonnées et le stockage d'une nouvelle table dans un espace de noms du catalogue d'environnements d'exécution Lakehouse.
Si vous souhaitez rendre une table Apache Iceberg existante disponible dans le catalogue, consultez Enregistrer une table.
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 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.
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 des API, vous devez disposer 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 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. Pour activer la gestion automatique des tables, assurez-vous que le catalogue utilise le mode de distribution des identifiants.
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 :
-
Créer 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.
Fonctionnalités et compatibilité des tables
Lorsque vous utilisez des tables dans le catalogue d'environnements d'exécution Lakehouse, il est utile de comprendre les différents types de tables et leurs fonctionnalités d'activation. Pour en savoir plus sur l'utilisation des tables Apache Iceberg, consultez Présentation des tables Apache Iceberg.
Tables Iceberg compatibles
Seules les tables Apache Iceberg V2 (disponibilité générale) et V3 (preview) sont acceptées. Les tables Iceberg V1 ne sont pas compatibles. Pour mettre à niveau des tables V1 existantes, consultez Mettre à niveau des tables Iceberg V1 vers la version V2.
Utiliser les options de tableau (preview)
Vous pouvez choisir d'utiliser les fonctionnalités gérées de BigQuery, telles que le langage de manipulation de données (LMD) BigQuery et la gestion automatique des tables, en configurant des propriétés de table spécifiques. Ces fonctionnalités sont activées de différentes manières selon l'endroit où la table est créée :
- Depuis BigQuery : le LMD BigQuery et la gestion automatique des tables sont activés par défaut.
- À partir de moteurs Open Source : pour activer cette fonctionnalité, vous devez configurer explicitement les propriétés de la table. Pour en savoir plus, consultez Configurer les options de table.
Créer une table
Créer une table Iceberg. Pour activer la gestion automatique des tables (gcp.biglake.table-management.enabled), le catalogue doit utiliser le mode de distribution des identifiants.
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.
Sélectionnez un espace de noms 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 table, sélectionnez Iceberg.
Dans le champ Nom de la table, saisissez un nom de table unique.
Facultatif : Dans la section Propriétés, configurez les propriétés de la table. Cette section liste les propriétés prédéfinies telles que
gcp.biglake.bigquery-dml.enabledetgcp.biglake.table-management.enabled.Par exemple, vous pouvez remplacer ces valeurs par
truepour activer le LMD BigQuery ou la gestion des tables. La gestion des tables effectue des tâches en arrière-plan, telles que la compaction et l'expiration des instantanés. Pour en savoir plus, consultez Configurer les options de table.Cliquez sur Créer.
Votre table 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;")
Remplacez les valeurs suivantes :
NAMESPACE_NAME: nom de votre espace de noms.TABLE_NAME: nom de votre table.
Pour activer l'interopérabilité en lecture/écriture et la gestion des tables (preview), ajoutez les propriétés à la clause TBLPROPERTIES :
TBLPROPERTIES (
'gcp.biglake.bigquery-dml.enabled' = true,
'gcp.biglake.table-management.enabled' = true
)
Trino
CREATE TABLE SCHEMA_NAME.TABLE_NAME (id int, data varchar);
Remplacez les valeurs suivantes :
SCHEMA_NAME: nom de votre schéma.TABLE_NAME: nom de votre table.
Pour activer l'interopérabilité en lecture/écriture et la gestion des tables (preview), ajoutez ces propriétés à la clause WITH :
WITH (
"gcp.biglake.bigquery-dml.enabled" = 'true',
"gcp.biglake.table-management.enabled" = 'true'
)
gcloud
Pour créer une table à l'aide de la Google Cloud CLI, exécutez la commande gcloud biglake iceberg tables create :
gcloud biglake iceberg tables create \
--project="PROJECT_ID" \
--catalog="CATALOG_ID" \
--namespace="NAMESPACE_NAME" \
--create-from-file="TABLE_DEFINITION_FILE"
Remplacez les éléments suivants :
PROJECT_ID: ID de votre projet Google Cloud.CATALOG_ID: ID de votre catalogue.NAMESPACE_NAME: nom de l'espace de noms de votre catalogue.TABLE_DEFINITION_FILE: chemin d'accès à un fichier JSON contenant la définition de la table Iceberg.
BigQuery
Pour créer une table Apache Iceberg dans le catalogue d'environnements d'exécution Lakehouse à partir de BigQuery, utilisez l'instruction GoogleSQL CREATE TABLE suivante. Lorsque vous créez une table à partir de BigQuery, le LMD BigQuery et la gestion des tables sont activés par défaut. Pour utiliser la gestion automatique des tables, le catalogue doit utiliser le mode de distribution des identifiants.
CREATE TABLE `PROJECT_ID.CATALOG_ID.NAMESPACE.TABLE_NAME` (id int, data string);
Remplacez les éléments suivants :
PROJECT_ID: ID de votre projet Google Cloud .CATALOG_ID: ID de votre catalogue d'environnements d'exécution Lakehouse.NAMESPACE: nom de votre espace de noms Iceberg.TABLE_NAME: nom de votre table Iceberg.
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 Iceberg CreateTableRequest 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.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 une table.
- Découvrez comment gérer les LCA de table.