Verwaltete Apache Iceberg-Tabellen mit Apache Spark lesen
In den folgenden Abschnitten wird beschrieben, wie Sie verwaltete Tabellen mit verwalteten Apache Iceberg-Tabellen (im Folgenden verwaltete Iceberg-Tabellen) mit Apache Spark lesen.
Hinweis
Informationen zu den verschiedenen Arten von BigLake-Tabellen und den Auswirkungen ihrer Verwendung finden Sie in der Übersicht zu BigLake-Tabellen.
Bevor Sie verwaltete Iceberg-Tabellen mit Apache Spark lesen, stellen Sie sicher, dass Sie eine Cloud-Ressourcen verbindung zu einem Storage Bucket eingerichtet haben. Ihre Verbindung benötigt Schreibberechtigungen für den Storage-Bucket, wie im folgenden Abschnitt Erforderliche Rollen angegeben. Weitere Informationen zu den erforderlichen Rollen und Berechtigungen für Verbindungen finden Sie unter Verbindungen verwalten.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, damit BigQuery Tabellen in Ihrem Projekt verwalten kann:
-
Zum Abfragen von Daten:
- BigQuery-Datenbetrachter (
roles/bigquery.dataViewer) für Ihr Projekt - BigQuery-Nutzer (
roles/bigquery.user) für Ihr Projekt
- BigQuery-Datenbetrachter (
-
Weisen Sie dem Dienstkonto der Verbindung die folgenden Rollen zu, damit es Daten in Cloud Storage lesen und schreiben kann:
- Storage Object User (
roles/storage.objectUser) für den Bucket - Leser von Legacy-Storage-Buckets (
roles/storage.legacyBucketReader) für den Bucket
- Storage Object User (
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierten Rollen enthalten die Berechtigungen, die erforderlich sind, damit BigQuery Tabellen in Ihrem Projekt verwalten kann. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, damit BigQuery Tabellen in Ihrem Projekt verwalten kann:
-
bigquery.connections.delegatefür Ihr Projekt -
bigquery.jobs.createfür Ihr Projekt -
bigquery.readsessions.createfür Ihr Projekt -
bigquery.tables.getfür Ihr Projekt -
bigquery.tables.getDatafür Ihr Projekt -
storage.buckets.getfür Ihren Bucket -
storage.objects.createfür Ihren Bucket -
storage.objects.deletefür Ihren Bucket -
storage.objects.getfür Ihren Bucket -
storage.objects.listfür Ihren Bucket
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Verwaltete Iceberg-Tabellen mit Apache Spark lesen
Im folgenden Beispiel wird Ihre Umgebung für die Verwendung von Spark SQL mit Apache Iceberg eingerichtet und dann eine Abfrage ausgeführt, um Daten aus einer angegebenen verwalteten Iceberg-Tabelle abzurufen.
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;
Ersetzen Sie Folgendes:
- ICEBERG_VERSION_NUMBER: die aktuelle Version der Apache Spark Iceberg-Laufzeit. Laden Sie die neueste Version von Spark Releases herunter.
- CATALOG_NAME: der Katalog, auf den Sie in Ihrer verwalteten Iceberg-Tabelle verweisen möchten.
- BUCKET_PATH: der Pfad zum Bucket mit den
Tabellendateien. Beispiel:
gs://mybucket/. - FOLDER_NAME: der Ordner mit den Tabellendateien.
Beispiel:
myfolder.