Lire des tables gérées Apache Iceberg avec Apache Spark

Les sections suivantes décrivent comment lire des tables gérées à l'aide de tables gérées Apache Iceberg (ci-après tables gérées Iceberg) avec Apache Spark.

Avant de commencer

  • Découvrez les différents types de tables BigLake et les implications de leur utilisation dans la présentation des tables BigLake.

  • Avant de lire des tables gérées Iceberg avec Apache Spark, assurez-vous d'avoir configuré une connexion à une ressource cloud sur un bucket de stockage. Votre connexion a besoin d'autorisations en écriture sur le bucket de stockage, comme indiqué dans la section Rôles requis ci-dessous. Pour en savoir plus sur les rôles et autorisations requis pour les connexions, consultez Gérer les connexions.

Rôles requis

Pour obtenir les autorisations nécessaires pour autoriser BigQuery à gérer les tables de votre projet, demandez à votre administrateur de vous accorder les rôles IAM suivants :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ces rôles prédéfinis contiennent les autorisations requises pour permettre à BigQuery de gérer les tables de votre projet. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour autoriser BigQuery à gérer les tables de votre projet :

  • bigquery.connections.delegate sur votre projet
  • bigquery.jobs.create sur votre projet
  • bigquery.readsessions.create sur votre projet
  • bigquery.tables.get sur votre projet
  • bigquery.tables.getData sur votre projet
  • storage.buckets.get sur votre bucket
  • storage.objects.create sur votre bucket
  • storage.objects.delete sur votre bucket
  • storage.objects.get sur votre bucket
  • storage.objects.list sur votre bucket

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Lire des tables gérées Iceberg avec Apache Spark

L'exemple suivant configure votre environnement pour utiliser Spark SQL avec Apache Iceberg, puis exécute une requête pour extraire les données d'une table gérée Iceberg spécifiée.

spark-sql \
  --packages org.apache.iceberg:iceberg-spark-runtime-ICEBERG_VERSION_NUMBER \
  --conf spark.sql.catalog.CATALOG_NAME=org.apache.iceberg.spark.SparkCatalog \
  --conf spark.sql.catalog.CATALOG_NAME.type=hadoop \
  --conf spark.sql.catalog.CATALOG_NAME.warehouse='BUCKET_PATH' \

# Query the table
SELECT * FROM CATALOG_NAME.FOLDER_NAME;

Remplacez les éléments suivants :

  • ICEBERG_VERSION_NUMBER : version actuelle de l'environnement d'exécution Apache Spark/Iceberg. Téléchargez la dernière version sur la page Spark Releases (versions Spark).
  • CATALOG_NAME : catalogue permettant de référencer votre table gérée Iceberg.
  • BUCKET_PATH : chemin d'accès au bucket contenant les fichiers de table. Exemple :gs://mybucket/
  • FOLDER_NAME : dossier contenant les fichiers de table. Exemple :myfolder

Étapes suivantes