La configuration des options de table vous permet d'activer l'interopérabilité en écriture BigQuery ou la gestion des tables (optimisation automatique du stockage) pour vos tables Apache Iceberg dans le catalogue d'exécution Lakehouse. Ces options servent de paramètres de base qui étendent les fonctionnalités des opérations sur la table.
En configurant des propriétés de table spécifiques, vous pouvez activer l'interopérabilité en écriture avec BigQuery DML ou la gestion automatique des tables (optimisation du stockage).
Lorsque vous utilisez des tables dans le catalogue 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.
Avant de commencer
-
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 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 obtenir cette autorisation via le rôle Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles. - Configurez le catalogue d'exécution Lakehouse avec le point de terminaison du catalogue REST Apache Iceberg.
Rôles requis
Pour obtenir les autorisations nécessaires pour configurer les options de table, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet et votre bucket de stockage :
-
Configurer les propriétés de la table en mode de distribution d'identifiants : Éditeur BigLake (
roles/biglake.editor) : le projet -
Configurer les propriétés de la table en mode de distribution d'identifiants :
- Éditeur BigLake (
roles/biglake.editor) : le projet - Utilisateur d'objets Storage (
roles/storage.objectUser) : le bucket Cloud Storage
- Éditeur 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 via des rôles personnalisés ou d'autres rôles prédéfinis.
Points à prendre en compte pour la configuration
Tenez compte des exigences et des comportements par défaut suivants lorsque vous configurez les options de table :
Tables Iceberg compatibles
Seules les tables Apache Iceberg V2 (DG) et V3 (bêta) sont compatibles. Les tables Iceberg V1 ne sont pas compatibles. Pour mettre à niveau les tables V1 existantes, consultez Mettre à niveau les tables Iceberg V1 vers la version 2.
Exigence concernant la distribution d'identifiants
Pour activer la gestion automatique des tables, la distribution d'identifiants doit être activée au niveau du catalogue pour votre catalogue d'exécution Lakehouse. Les tâches d'arrière-plan de gestion des tables utilisent le compte de service de distribution d'identifiants pour s'authentifier et mettre à jour les fichiers de données de stockage sous-jacents.
Activer BigQuery DML
L'activation des instructions du langage de manipulation de données (LMD) BigQuery permet d'activer l'interopérabilité en écriture à partir de BigQuery sur les tables Apache Iceberg créées à l'aide de moteurs Open Source.
Les instructions compatibles incluent INSERT, UPDATE, DELETE et MERGE,
ainsi que les instructions LDD
standards telles que
CREATE TABLE, ALTER TABLE et DROP TABLE, à l'exception de celles qui ne sont
pas compatibles avec les tables Apache Iceberg dans
BigQuery.
Activer BigQuery DML pour les nouvelles tables
Lorsque vous créez une table à partir de
BigQuery, BigQuery DML et la gestion automatique des tables sont activés par
défaut. Lorsque vous créez une table à partir de moteurs Open Source, configurez la propriété de table gcp.biglake.bigquery-dml.enabled = true à l'aide de la syntaxe LDD de votre moteur.
Par exemple, dans Spark SQL :
CREATE TABLE NAMESPACE.TABLE_NAME (id int, data string)
USING ICEBERG
TBLPROPERTIES ('gcp.biglake.bigquery-dml.enabled' = true);
Activer BigQuery DML pour les tables existantes
Pour activer BigQuery DML sur une table existante, mettez à jour la propriété de la table.
Par exemple, dans Spark SQL :
ALTER TABLE NAMESPACE.TABLE_NAME
SET TBLPROPERTIES ('gcp.biglake.bigquery-dml.enabled' = true);
Désactiver BigQuery DML
La désactivation de BigQuery DML rend la table en lecture seule pour BigQuery et arrête la gestion automatique des tables.
Par exemple, dans Spark SQL :
ALTER TABLE NAMESPACE.TABLE_NAME
SET TBLPROPERTIES ('gcp.biglake.bigquery-dml.enabled' = false);
Activer la gestion des tables
La gestion des tables automatise les processus d'arrière-plan pour optimiser le stockage et gérer le cycle de vie des données et des métadonnées, comme la compaction et la récupération de mémoire.
La gestion des tables vous permet d'effectuer les opérations suivantes :
Expiration des instantanés et récupération de mémoire : l'expiration des instantanés gère la conservation et la suppression des fichiers de données et de métadonnées à partir des instantanés de table. Cette opération s'exécute automatiquement en arrière-plan après toute mutation de données. Les instantanés expirent en fonction des propriétés de table Iceberg configurées par l'utilisateur
history.expire.max-snapshot-age-msethistory.expire.min-snapshots-to-keepsur la table. Elle supprime les entrées d'instantané expirées en créant une définition d'instantané supplémentaire qui est manifestée par un nouveau fichier de métadonnées qui n'inclut plus de références aux instantanés supprimés.Limitation : l'expiration des instantanés et la récupération de mémoire associée sont ignorées si la table utilise des tags ou des branches. Pour en savoir plus, consultez la section Limites.
Limitation : la suppression des fichiers orphelins n'est pas gérée par la gestion automatique des tables. Pour en savoir plus, consultez la section Limites.
Fusion (compaction) : la fusion est chargée de maintenir la forme des données en fusionnant les petits fichiers en fichiers plus volumineux. La fusion s'exécute automatiquement en arrière-plan après toute mutation de données. Les fichiers sont sélectionnés pour la compaction si leur taille moyenne non compressée est inférieure à 50% de la taille cible de 256 Mo. Chaque opération de fusion produit un nouvel instantané de table. Les tâches de fusion cèdent généralement la place aux opérations LMD en cours et retentent après celles-ci. Toutefois, pour éviter une privation indéfinie de l'optimisation du stockage, une tâche de fusion est déclenchée de force toutes les 24 heures si les données sont éligibles à la fusion.
Surveillance des tâches de gestion des tables : toutes les tâches de gestion des tables en arrière-plan sont consignées dans la vue
INFORMATION_SCHEMA.JOBSde BigQuery. Vous pouvez interroger cette vue pour suivre ces opérations, comme vous le faites pour surveiller d'autres tâches BigQuery. Pour en savoir plus sur l'interrogation des informations sur les tâches, consultez Obtenir des tâches d'optimisation du stockage Iceberg.La fréquence des tâches de gestion des tables est directement corrélée à l'activité de mutation des données. Les petites insertions ou mises à jour fréquentes déclenchent des tâches d'arrière-plan plus fréquentes. Vous pouvez observer des périodes sans tâches d'arrière-plan si aucune écriture n'est effectuée dans la table. À l'inverse, des volumes d'écriture élevés peuvent entraîner une activité de tâche plus visible dans
INFORMATION_SCHEMA.
Activer la gestion des tables pour les nouvelles tables
Lorsque vous créez une table à partir de
BigQuery, LMD et la gestion automatique des tables sont activés par
défaut. Lorsque vous créez une table à partir de moteurs Open Source, configurez la propriété gcp.biglake.table-management.enabled. L'activation de la gestion des tables active automatiquement BigQuery DML s'il n'est pas déjà activé.
Par exemple, dans Spark SQL :
CREATE TABLE NAMESPACE.TABLE_NAME