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 membuat kueri data:
- BigQuery Data Viewer (
roles/bigquery.dataViewer) di project Anda - Pengguna BigQuery (
roles/bigquery.user) di project Anda
- BigQuery Data Viewer (
-
Beri akun layanan koneksi peran berikut agar dapat membaca dan menulis data di Cloud Storage:
- Storage Object User (
roles/storage.objectUser) di bucket - Storage Legacy Bucket Reader (
roles/storage.legacyBucketReader) di bucket
- Storage Object User (
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.delegatedi project Anda -
bigquery.jobs.createdi project Anda -
bigquery.readsessions.createdi project Anda -
bigquery.tables.getdi project Anda -
bigquery.tables.getDatadi project Anda -
storage.buckets.getdi bucket Anda -
storage.objects.createdi bucket Anda -
storage.objects.deletedi bucket Anda -
storage.objects.getdi bucket Anda -
storage.objects.listdi 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.