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.
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.
Avant de commencer
-
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. - 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 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.
Fonctionnalités et compatibilité des tableaux
Lorsque vous utilisez des tables dans le catalogue Lakehouse Runtime, 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 (bêta) sont acceptées. Les tables Iceberg V1 ne sont pas acceptées. Pour mettre à niveau les tables V1 existantes, consultez Mettre à niveau les tables Iceberg V1 vers V2.
Utiliser les options de tableau (aperçu)
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ù le tableau est créé :
- Depuis BigQuery : le langage DML 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 des tables. Pour en savoir plus, consultez Configurer les options de tableau.
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;")
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 (aperçu), 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 (aperçu), 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 gcloud, 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 du runtime Lakehouse à partir de BigQuery, utilisez l'instruction GoogleSQL CREATE TABLE suivante. Lorsque vous créez une table à partir de BigQuery, BigQuery DML et la gestion automatique des tables sont activés par défaut.
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 CloudCATALOG_ID: ID de votre catalogue d'environnements d'exécution LakehouseNAMESPACE: nom de votre espace de noms IcebergTABLE_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 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.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.
- Découvrez comment gérer les LCA de table.