Membaca tabel terkelola Apache Iceberg dengan Apache Spark

Bagian berikut menjelaskan cara membaca tabel terkelola menggunakan tabel terkelola Apache Iceberg (selanjutnya disebut tabel terkelola Iceberg) dengan Apache Spark.

Sebelum memulai

  • Pahami berbagai jenis tabel BigLake dan implikasi penggunaannya, dalam ringkasan tabel BigLake.

  • Sebelum membaca tabel terkelola Iceberg dengan Apache Spark, pastikan Anda telah menyiapkan koneksi resource Cloud ke bucket penyimpanan. Koneksi Anda memerlukan izin tulis pada bucket penyimpanan, seperti yang ditentukan di bagian Peran yang diperlukan berikut. Untuk mengetahui informasi selengkapnya tentang peran dan izin yang diperlukan untuk koneksi, lihat Mengelola koneksi.

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan agar BigQuery dapat mengelola tabel di project Anda, minta administrator Anda untuk memberi Anda peran IAM berikut:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk mengizinkan BigQuery mengelola tabel di project Anda. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan agar BigQuery dapat mengelola tabel di project Anda:

  • bigquery.connections.delegate di project Anda
  • bigquery.jobs.create di project Anda
  • bigquery.readsessions.create di project Anda
  • bigquery.tables.get di project Anda
  • bigquery.tables.getData di project Anda
  • storage.buckets.get di bucket Anda
  • storage.objects.create di bucket Anda
  • storage.objects.delete di bucket Anda
  • storage.objects.get di bucket Anda
  • storage.objects.list di bucket Anda

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Membaca tabel terkelola Iceberg dengan Apache Spark

Contoh berikut menyiapkan lingkungan Anda untuk menggunakan Spark SQL dengan Apache Iceberg, lalu menjalankan kueri untuk mengambil data dari tabel terkelola Iceberg yang ditentukan.

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;

Ganti kode berikut:

  • ICEBERG_VERSION_NUMBER: versi runtime Apache Spark Iceberg saat ini. Download versi terbaru dari Rilis Spark.
  • CATALOG_NAME: katalog untuk mereferensikan tabel terkelola Iceberg Anda.
  • BUCKET_PATH: jalur ke bucket yang berisi file tabel. Contoh, gs://mybucket/.
  • FOLDER_NAME: folder yang berisi file tabel. Contoh, myfolder.

Langkah berikutnya