Cómo leer tablas administradas de Apache Iceberg con Apache Spark

En las siguientes secciones, se describe cómo leer tablas administradas con tablas administradas de Apache Iceberg (en adelante, tablas administradas de Iceberg) con Apache Spark.

Antes de comenzar

Roles obligatorios

Para obtener los permisos que necesitas para permitir que BigQuery administre las tablas de tu proyecto, pídele a tu administrador que te otorgue los siguientes roles de IAM:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Estos roles predefinidos contienen los permisos necesarios para permitir que BigQuery administre las tablas de tu proyecto. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para permitir que BigQuery administre las tablas de tu proyecto:

  • bigquery.connections.delegate en tu proyecto
  • bigquery.jobs.create en tu proyecto
  • bigquery.readsessions.create en tu proyecto
  • bigquery.tables.get en tu proyecto
  • bigquery.tables.getData en tu proyecto
  • storage.buckets.get en tu bucket
  • storage.objects.create en tu bucket
  • storage.objects.delete en tu bucket
  • storage.objects.get en tu bucket
  • storage.objects.list en tu bucket

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Cómo leer tablas administradas de Iceberg con Apache Spark

En el siguiente ejemplo, se configura tu entorno para usar Spark SQL con Apache Iceberg y, luego, se ejecuta una consulta para recuperar datos de una tabla administrada de Iceberg especificada.

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;

Reemplaza lo siguiente:

  • ICEBERG_VERSION_NUMBER: Es la versión actual del entorno de ejecución de Apache Spark Iceberg. Descarga la versión más reciente de Spark Releases.
  • CATALOG_NAME: Es el catálogo para hacer referencia a tu tabla administrada de Iceberg.
  • BUCKET_PATH: Es la ruta de acceso al bucket que contiene los archivos de la tabla. Por ejemplo, gs://mybucket/
  • FOLDER_NAME: Es la carpeta que contiene los archivos de la tabla. Por ejemplo, myfolder

¿Qué sigue?