Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Lavorare con Apache Iceberg in AWS Glue
AWS Glue
AWS Glue i job incapsulano script che definiscono la logica di trasformazione utilizzando un runtime Apache Spark
Quando si creano lavori Iceberg in AWS Glue, a seconda della versione di AWS Glue, è possibile utilizzare l'integrazione Iceberg nativa o una versione Iceberg personalizzata per allegare le dipendenze di Iceberg al lavoro.
Utilizzo dell'integrazione nativa di Iceberg
AWS Glue le versioni 3.0, 4.0 e 5.0 supportano nativamente formati di data lake transazionali come Apache Iceberg, Apache Hudi e Linux Foundation Delta Lake per Spark. AWS Glue Questa funzionalità di integrazione semplifica i passaggi di configurazione necessari per iniziare a utilizzare questi framework in. AWS Glue
Per abilitare il supporto Iceberg per il tuo AWS Glue lavoro, imposta il lavoro: scegli la scheda Dettagli del lavoro per il tuo AWS Glue lavoro, scorri fino a Parametri del lavoro in Proprietà avanzate e imposta la chiave --datalake-formats
e il suo valore suiceberg
.
Se stai creando un lavoro utilizzando un taccuino, puoi configurare il parametro nella prima cella del notebook usando la %%configure
magia seguente:
%%configure { "--conf" : <job-specific Spark configuration discussed later>, "--datalake-formats" : "iceberg" }
La iceberg
configurazione di --datalake-formats
in AWS Glue
corrisponde a versioni specifiche di Iceberg basate sulla tua AWS Glue versione:
AWS Glue versione | Versione Iceberg predefinita |
---|---|
5.0 |
1.7.1 |
4.0 |
1.0.0 |
3.0 |
0.13.1 |
Utilizzando una versione personalizzata di Iceberg
In alcune situazioni, potresti voler mantenere il controllo sulla versione di Iceberg per il lavoro e aggiornarla secondo i tuoi ritmi. Ad esempio, l'aggiornamento a una versione successiva può sbloccare l'accesso a nuove funzionalità e miglioramenti delle prestazioni. Per utilizzare una versione specifica di Iceberg con AWS Glue, puoi fornire i tuoi file JAR.
Prima di implementare una versione personalizzata di Iceberg, verificate la compatibilità con il vostro AWS Glue ambiente controllando la sezione delle AWS Glue versioni della AWS Glue documentazione. Ad esempio, AWS Glue 5.0 richiede la compatibilità con Spark 3.5.4.
Ad esempio, per eseguire AWS Glue lavori che utilizzano la versione 1.9.1 di Iceberg, segui questi passaggi:
-
Acquisisci e carica i file JAR richiesti su Amazon S3:
-
Scarica iceberg-spark-runtime-3.5_2.12-1.9.1.jar e -1.9.1.jar
dal repository Apache Maven. iceberg-aws-bundle -
Carica questi file nella posizione del bucket S3 designata (ad esempio,).
s3://your-bucket-name/jars/
-
-
Imposta i parametri del lavoro per il tuo AWS Glue lavoro come segue:
-
Specificate il percorso S3 completo di entrambi i file JAR nel
--extra-jars
parametro, separandoli con una virgola (ad esempio,s3://your-bucket-name/jars/iceberg-spark-runtime-3.5_2.12-1.9.1.jar,s3://your-bucket-name/jars/iceberg-aws-bundle-1.9.1.jar
). -
Non includere
iceberg
come valore per il parametro--datalake-formats
. -
Se si utilizza AWS Glue 5.0, è necessario impostare il
--user-jars-first
parametro su.true
-
Configurazioni Spark per Iceberg in AWS Glue
Questa sezione descrive le configurazioni Spark necessarie per creare un job AWS Glue ETL per un set di dati Iceberg. Puoi impostare queste configurazioni utilizzando la chiave Spark con un elenco separato da virgole di tutte le chiavi e i valori di configurazione --conf
Spark. Puoi usare la %%configure
magia in un notebook o nella sezione Job parameters della AWS Glue Studio console.
%glue_version 5.0 %%configure { "--conf" : "spark.sql.extensions=org.apache.iceberg.spark.extensions...", "--datalake-formats" : "iceberg" }
Configura la sessione Spark con le seguenti proprietà:
-
<catalog_name>
è il nome del catalogo della sessione Iceberg Spark. Sostituiscilo con un nome a tua scelta e ricorda di modificare i riferimenti in tutte le configurazioni associate a questo catalogo. Nel codice, puoi fare riferimento alle tue tabelle Iceberg utilizzando il nome completo della tabella, incluso il nome del catalogo della sessione Spark, come segue:<catalog_name>.<database_name>.<table_name>
In alternativa, puoi cambiare il catalogo predefinito con il catalogo Iceberg che hai definito
spark.sql.defaultCatalog
impostando il nome del tuo catalogo. È possibile utilizzare questo secondo approccio per fare riferimento alle tabelle senza il prefisso del catalogo, il che può semplificare le query. -
<catalog_name>.<warehouse>
indica il percorso Amazon S3 in cui desideri archiviare dati e metadati. -
Per rendere il catalogo un AWS Glue Data Catalog, imposta su
spark.sql.catalog.<catalog_name>.type
.glue
Questa chiave è necessaria per indicare una classe di implementazione per qualsiasi implementazione del catalogo personalizzato. Per i cataloghi supportati da Iceberg, consulta la sezione Buone pratiche generali più avanti in questa guida.
Ad esempio, se hai un catalogo chiamatoglue_iceberg
, puoi configurare il tuo lavoro utilizzando più --conf
chiavi come segue:
%%configure { "--datalake-formats" : "iceberg", "--conf" : "spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions --conf spark.sql.catalog.glue_iceberg=org.apache.iceberg.spark.SparkCatalog --conf spark.sql.catalog.glue_iceberg.warehouse=s3://<your-warehouse-dir>/ --conf spark.sql.catalog.glue_iceberg.type=glue" }
In alternativa, puoi usare il codice per aggiungere le configurazioni precedenti allo script Spark come segue:
spark = SparkSession.builder\ .config("spark.sql.extensions","org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions")\ .config("spark.sql.catalog.glue_iceberg", "org.apache.iceberg.spark.SparkCatalog")\ .config("spark.sql.catalog.glue_iceberg.warehouse","s3://<your-warehouse-dir>/")\ .config("spark.sql.catalog.glue_iceberg.type", "glue") \ .getOrCreate()
Le migliori pratiche per le offerte di lavoro AWS Glue
Questa sezione fornisce linee guida generali per ottimizzare la lettura e la scrittura dei dati nelle tabelle Iceberg AWS Glue per ottimizzare la lettura e la scrittura dei dati nelle tabelle Iceberg. Per le best practice specifiche per Iceberg, consulta la sezione Best practice più avanti in questa guida.
-
Utilizza la versione più recente di AWS Glue ed esegui l'aggiornamento quando possibile: le nuove versioni di AWS Glue offrono miglioramenti delle prestazioni, tempi di avvio ridotti e nuove funzionalità. Supportano anche le versioni più recenti di Spark che potrebbero essere necessarie per le ultime versioni di Iceberg. Per un elenco delle AWS Glue versioni disponibili e delle versioni di Spark supportate, consulta la documentazione.AWS Glue
-
Ottimizzazione della memoria di AWS Glue lavoro: segui i consigli contenuti nel post sul AWS blog Ottimizza la gestione della memoria in AWS Glue
. -
Usa AWS Glue Auto Scaling: quando abiliti Auto Scaling AWS Glue , regola automaticamente il numero di lavoratori in modo dinamico in base al AWS Glue carico di lavoro. Questo aiuta a ridurre il costo del AWS Glue lavoro durante i picchi di carico, perché riduce il numero di lavoratori quando il carico di lavoro è AWS Glue ridotto e i lavoratori sono inattivi. Per utilizzare AWS Glue Auto Scaling, è necessario specificare un numero massimo di lavoratori a cui è possibile adattare il AWS Glue lavoro. Per ulteriori informazioni, vedere Utilizzo della scalabilità automaticaAWS Glue nella AWS Glue documentazione.
-
Usa la versione di Iceberg desiderata: l'integrazione AWS Glue nativa per Iceberg è la migliore per iniziare a usare Iceberg. Tuttavia, per i carichi di lavoro di produzione, consigliamo di aggiungere le dipendenze delle librerie (come discusso in precedenza in questa guida) per avere il pieno controllo sulla versione di Iceberg. Questo approccio ti aiuta a trarre vantaggio dalle più recenti funzionalità di Iceberg e dai miglioramenti delle prestazioni nei tuoi lavori. AWS Glue
-
Abilita l'interfaccia utente Spark per il monitoraggio e il debug: puoi anche utilizzare l'interfaccia utente di Spark per AWS Glue ispezionare il tuo lavoro Iceberg visualizzando le diverse fasi di un lavoro Spark in un grafico aciclico diretto (DAG) e monitorando i lavori in dettaglio. L'interfaccia utente di Spark offre un modo efficace per risolvere i problemi e ottimizzare i job Iceberg. Ad esempio, è possibile identificare le fasi che presentano punti critici che presentano grosse variazioni o fuoriuscite del disco per individuare le opportunità di ottimizzazione. Per ulteriori informazioni, consulta Monitoraggio dei lavori utilizzando l'interfaccia utente web di Apache Spark nella documentazione. AWS Glue