Insérer des données dans une table

L'insertion de données ajoute de nouveaux enregistrements à votre table Apache Iceberg.

Avant de commencer

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

  2. 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 grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez l'obtenir grâce au rôle Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.

    Activer l'API

  3. 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 insérer des données dans une table, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet et votre bucket de stockage :

  • Écrire des données de table en mode de distribution d'identifiants: Éditeur BigLake (roles/biglake.editor) : le projet
  • Écrire des données de table en mode de non-distribution d'identifiants :
    • Éditeur BigLake (roles/biglake.editor) : le projet
    • Utilisateur d'objets Storage (roles/storage.objectUser) : le bucket Cloud Storage

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.

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 des fonctionnalités. Pour en savoir plus sur l'utilisation des tables Apache Iceberg, consultez Présentation des tables Apache Iceberg tables.

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 V2.

Utiliser les options de table (bêta)

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 :

  • À partir de BigQuery : le LMD BigQuery et la gestion automatique des tables sont activés par défaut.
  • À partir de moteurs Open Source : pour activer ces fonctionnalités, vous devez configurer explicitement les propriétés de la table. Pour en savoir plus, consultez Configurer les options de table.

Insérer des données dans la table

Insérez des exemples de données dans la table.

Pour insérer des données à partir de BigQuery, le LMD BigQuery doit être activé pour la table (gcp.biglake.bigquery-dml.enabled = true). Pour obtenir des instructions détaillées, consultez Configurer les options de table.

Spark

spark.sql("INSERT INTO TABLE_NAME VALUES (1, \"first row\"), (2, \"second row\"), (3, \"third row\");")

Pour activer l'interopérabilité en lecture/écriture et la gestion des tables (bêta), ajoutez les propriétés à la clause TBLPROPERTIES :

TBLPROPERTIES (
  'gcp.biglake.bigquery-dml.enabled' = true,
  'gcp.biglake.table-management.enabled' = true
)

Trino

INSERT INTO TABLE_NAME VALUES (1, 'first row'), (2, 'second row'), (3, 'third row');

Pour activer l'interopérabilité en lecture/écriture et la gestion des tables (bêta), ajoutez ces propriétés à la clause WITH :

WITH (
  "gcp.biglake.bigquery-dml.enabled" = 'true',
  "gcp.biglake.table-management.enabled" = 'true'
)

BigQuery

Pour insérer des données dans une table Apache Iceberg du catalogue d'environnements d'exécution Lakehouse à partir de BigQuery, le LMD BigQuery doit être activé pour la table. Utilisez l'instruction GoogleSQL INSERT suivante :

INSERT INTO `PROJECT_ID.CATALOG_ID.NAMESPACE.TABLE_NAME` VALUES (1, "foo");

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre Google Cloud projet.
  • 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.

Étape suivante