Leggere le tabelle gestite Apache Iceberg con Apache Spark
Le sezioni seguenti descrivono come leggere le tabelle gestite utilizzando le tabelle gestite Apache Iceberg (di seguito tabelle gestite Iceberg) con Apache Spark.
Prima di iniziare
Scopri i diversi tipi di tabelle BigLake e le implicazioni del loro utilizzo nella panoramica delle tabelle BigLake.
Prima di leggere le tabelle gestite Iceberg con Apache Spark, assicurati di aver configurato una connessione alla risorsa Cloud a un bucket di archiviazione. La connessione deve disporre delle autorizzazioni di scrittura sul bucket di archiviazione, come specificato nella seguente sezione Ruoli richiesti. Per maggiori informazioni sui ruoli e sulle autorizzazioni richiesti per le connessioni, consulta Gestire le connessioni.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per consentire a BigQuery di gestire le tabelle nel tuo progetto, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Per eseguire una query sui dati:
- Visualizzatore dati BigQuery (
roles/bigquery.dataViewer) sul tuo progetto - Utente BigQuery (
roles/bigquery.user) sul tuo progetto
- Visualizzatore dati BigQuery (
-
Concedi al account di servizio di connessione i seguenti ruoli in modo che possa leggere e scrivere dati in Cloud Storage:
- Storage Object User (
roles/storage.objectUser) sul bucket - Storage Legacy Bucket Reader (
roles/storage.legacyBucketReader) sul bucket
- Storage Object User (
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per consentire a BigQuery di gestire le tabelle nel tuo progetto. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per consentire a BigQuery di gestire le tabelle nel tuo progetto, sono necessarie le seguenti autorizzazioni:
-
bigquery.connections.delegatesul tuo progetto -
bigquery.jobs.createsul tuo progetto -
bigquery.readsessions.createsul tuo progetto -
bigquery.tables.getsul tuo progetto -
bigquery.tables.getDatasul tuo progetto -
storage.buckets.getsul tuo bucket -
storage.objects.createsul tuo bucket -
storage.objects.deletesul tuo bucket -
storage.objects.getsul tuo bucket -
storage.objects.listsul tuo bucket
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Leggere le tabelle gestite Iceberg con Apache Spark
Il seguente esempio configura l'ambiente per utilizzare Spark SQL con Apache Iceberg, quindi esegue una query per recuperare i dati da una tabella gestita Iceberg specificata.
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;
Sostituisci quanto segue:
- ICEBERG_VERSION_NUMBER: la versione attuale del runtime di Apache Spark Iceberg. Scarica l'ultima versione da Spark Releases.
- CATALOG_NAME: il catalogo a cui fare riferimento per la tabella gestita Iceberg.
- BUCKET_PATH: il percorso del bucket contenente i file della tabella. Ad esempio,
gs://mybucket/. - FOLDER_NAME: la cartella contenente i file della tabella.
Ad esempio,
myfolder.