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à.
Migrazione in corso AWS Glue per lavori Spark a AWS Glue versione 6.0
Questo argomento descrive le modifiche tra la AWS Glue versione 5.1 e 6.0 per consentire la migrazione delle applicazioni Spark e dei job ETL alla versione 6.0. AWS Glue Descrive inoltre le funzionalità della AWS Glue 6.0 e i vantaggi del suo utilizzo.
Per utilizzare questa funzionalità con i tuoi lavori AWS Glue ETL, scegli 6.0 Glue version quando li crei.
Argomenti
Nuove funzionalità
Questa sezione descrive le nuove funzionalità e i vantaggi della AWS Glue versione 6.0.
-
Aggiornamento di Apache Spark da 3.5.6 in AWS Glue 5.1 a 4.1.1 in 6.0. AWS Glue
-
Aggiornamento di Scala da 2.12.18 a 2.13.17.
-
Aggiornamento Python da 3.11 a 3.13.
-
Open Table Formats (OTF) aggiornato a Hudi 1.1.1, Iceberg 1.11.0 e Delta Lake 4.2.0.
-
Formato Iceberg versione 3: estende i tipi di dati e le strutture di metadati esistenti per aggiungere nuove funzionalità, tra cui:
Tipo di dati VARIANT con variant shredding per una gestione semplificata dei dati semistrutturati e letture più rapide.
Nanosecond-precision timestamp.
Tipi di dati geospaziali (geometria e geografia).
-
Spark Declarative Pipelines (SDP): un nuovo framework dichiarativo per la definizione di pipeline di dati end-to-end utilizzando SQL o API, con supporto per tabelle di streaming e viste materializzate. DataFrame Per ulteriori informazioni, consulta Pipeline dichiarative Spark.
-
Spark Connect for Interactive Sessions: abilita la connettività thin-client alle sessioni interattive tramite il protocollo Spark Connect, supportando i flussi di lavoro di sviluppo remoto AWS Glue .
-
Arrow-native Python UDFs/UDTFs: prestazioni migliorate per le funzioni definite dall'utente di Python utilizzando il formato colonnare Apache Arrow in modo nativo.
-
Customer-managed o ambiente virtuale Python generato dai servizi (
--python-virtual-env): puoi creare e fornire il tuo venv Python che si AWS Glue collega ai driver e agli esecutori di Spark in fase di esecuzione, fornendo il pieno controllo sulla gestione delle dipendenze. Quando i lavori esistenti vengono migrati alla versione 6.0, genera automaticamente questo ambiente virtuale, se necessario. AWS Glue AWS Glue -
Miglioramenti allo streaming: Real-time modalità per lo streaming stateless con latenza di millisecondi. Per ulteriori informazioni, consulta Attivazione della modalità in tempo reale per i lavori in streaming.
-
Aggiornamenti dei connettori: Amazon Redshift, MongoDB, Snowflake e altri connettori aggiornati. Consulta i dettagli completi della versione. Appendice C: Aggiornamenti dei connettori
Problemi noti e limitazioni
Nota i seguenti problemi e limitazioni noti:
-
La modalità ANSI è abilitata per impostazione predefinita in Spark 4.1. Le operazioni che in precedenza restituivano NULL in caso di overflow (ad esempio, aritmetica dei numeri interi, operazioni di cast) ora generano eccezioni. Impostato per ripristinare il comportamento precedente.
spark.sql.ansi.enabled=false -
Spark Declarative Pipelines (SDP) è una nuova funzionalità con supporto limitato per determinati costrutti SQL. Consulta la documentazione per le limitazioni attuali. Pipeline dichiarative Spark
-
Le tabelle Iceberg v3 create nella versione AWS Glue 6.0 non possono essere lette da Athena SQL (errore:).
Cannot read unsupported version 3Usa Iceberg v2 per la compatibilità tra più motori con Athena. -
Python 3.13 rimuove diversi moduli obsoleti e modifica il comportamento di alcune funzioni di libreria standard. Consulta la guida alla migrazione di Python 3.13 per verificare la compatibilità.
-
AWS La compatibilità dell'SDK per Java 2.x con
--user-jars-first— AWS Glue 6.0 include la versione AWS SDK per Java 2.x 2.44.6. Se si utilizza il parametro--user-jars-firstjob con un JAR personalizzato che raggruppa una versione precedente dell' AWS SDK per Java 2.x, il job potrebbe fallire con un errore o un errore simile.java.lang.NoSuchFieldErrorQuesti errori si verificano quando nell'SDK incluso nel JAR personalizzato mancano classi, campi o metodi da cui dipende il runtime. AWS Glue Per evitare questo problema, assicurati che qualsiasi JAR personalizzato fornito--user-jars-firstutilizzi AWS SDK for Java 2.x versione 2.44.6 o successiva.
Modifiche importanti
Notare le seguenti modifiche speciali:
-
EMRFS è stato rimosso. S3A è l'unico filesystem S3 nella versione 6.0. AWS Glue La classe non è più disponibile.
com.amazon.ws.emr.hadoop.fs.EmrFileSystemI lavori che utilizzanos3://i percorsi utilizzano S3A automaticamente. Se in precedenza hai impostato EMRFS-specific delle configurazioni (ad esempio,fs.s3.consistent.*), rimuovile. -
AWS L'SDK per Java v1 è stato rimosso. È disponibile solo AWS SDK v2 (2.44.6). I lavori di importazione dei pacchetti devono migrare a.
com.amazonaws.services.*software.amazon.awssdk.services.* -
Scala è stato aggiornato dalla 2.12 alla 2.13. I JAR personalizzati compilati con Scala 2.12 non funzionano. Ricompila con Scala 2.13.17. Modifiche chiave:
JavaConversionsrimosse (usaCollectionConverters),MutableListrimosse (usaListBuffer), le raccolte parallele richiedono un'importazione separata. -
Modifiche all'API Spark 4.1:
SQLContextrimosso: usaSparkSessiondirettamente.La modalità ANSI è abilitata per impostazione predefinita: le conversioni di tipo implicito e gli overflow si comportano diversamente.
Sono state rimosse diverse API obsolete. Consulta la Guida alla migrazione di Spark 4.1
sul sito Web di Apache Spark.
-
CreateSession Convalida API: convalida aggiuntiva dei parametri di sessione per le sessioni interattive. Le configurazioni non valide che in precedenza erano accettate silenziosamente potrebbero ora restituire errori.
-
getResolvedOptionsmodifica del comportamento: la corrispondenza del prefisso degli argomenti è disabilitata per impostazione predefinita ().allow_abbrev=FalseUsa il nome completo dell'argomento o passaallow_abbrev=Truea pergetResolvedOptions()ripristinare il vecchio comportamento.
Azioni a cui migrare AWS Glue 6.0
Per i processi esistenti, modifica la Glue version dalla versione precedente a Glue 6.0 nella configurazione del processo.
-
In AWS Glue Studio, scegli
Glue 6.0 - Supports Spark 4.1.1, Scala 2, Python 3inGlue version. -
Nell'API, scegli
6.0nel parametroGlueVersionnell'operazione API UpdateJob.
Per i nuovi processi, scegli Glue 6.0 al momento della creazione.
-
Nella console, scegli
Spark 4.1.1, Python 3 (Glue Version 6.0) or Spark 4.1.1, Scala 2 (Glue Version 6.0)inGlue version. -
In AWS Glue Studio, scegli
Glue 6.0 - Supports Spark 4.1.1, Scala 2, Python 3inGlue version. -
Nell'API, scegli
6.0nel parametroGlueVersionnell'operazione API CreateJob.
Per facilitare la migrazione dei tuoi lavori, puoi utilizzare gli aggiornamenti dell'IA generativa per Apache Spark aggiornare i tuoi lavori AWS Glue ETL dalle AWS Glue versioni precedenti (2.0 e successive) alla versione più recente. AWS Glue
Risoluzione dei problemi
Puoi utilizzare Spark Troubleshooting Agent per risolvere i problemi relativi ai job ETL. AWS Glue
Elenco di controllo della migrazione
Rivedi questo elenco di controllo per la migrazione:
-
[Scala] Ricompila i JAR personalizzati con Scala 2.13.17. Sostituisci
JavaConversionsconCollectionConverters. -
[Python] Codice di aggiornamento per la compatibilità con Python 3.13. Rimuovi l'utilizzo di moduli obsoleti (ad esempio,,).
impcgicgitb -
[Python] Aggiorna i riferimenti boto3 da 1.40 a 1.42.
-
[Spark SQL] Esamina le query per verificare l'impatto sulla modalità ANSI. Aggiungi
spark.sql.ansi.enabled=falsese necessario. -
[SDK] Sostituisci qualsiasi importazione AWS SDK v1 (
com.amazonaws.*) con SDK v2 ().software.amazon.awssdk.* -
[S3] Rimuovi le configurazioni. EMRFS-specific S3A è ora il connettore predefinito e l'unico connettore S3.
-
[Dipendenze] Aggiornamento
--extra-jarsalle versioni compilate per Scala 2.13 e Spark 4.1.
Migrazione da AWS Glue 5.1 a AWS Glue 6.0
Tutti i parametri di lavoro esistenti e le principali funzionalità presenti nella AWS Glue versione 5.1 esisteranno nella versione AWS Glue 6.0. Nota le seguenti modifiche durante la migrazione:
-
Filesystem S3: EMRFS non è più disponibile. S3A è l'unico connettore S3. Se l'hai impostato in precedenza
spark.hadoop.fs.s3a.endpoint.region, continua a usarlo. Se non è impostato, assicurati che la configurazione dell'endpoint o della rete VPC consenta a S3A di risolvere la regione corretta. -
Compatibilità binaria con Scala: AWS Glue 6.0 utilizza Scala 2.13. Qualsiasi
--extra-jarscompilato con Scala 2.12 ha esito negativo con o.NoSuchMethodErrorClassNotFoundExceptionRicompila tutti i JAR personalizzati. Scala/Java -
Modifiche al comportamento di Spark SQL:
La modalità ANSI è attivata per impostazione predefinita. L'overflow di numeri interi, i cast non validi e l'indice dell'array out-of-bounds generano eccezioni invece di restituire NULL.
spark.sql.legacy.timeParserPolicyimpostazione predefinita modificata. Date/timel'analisi potrebbe comportarsi diversamente.Le conversioni implicite da stringhe a numeri in SQL potrebbero fallire in modalità ANSI.
-
Versione Python: Python 3.13 è il runtime. La
--additional-python-modulesfunzionalità continua a funzionare ma è obsoleta. Valuta la possibilità di migrare a--python-virtual-envper un controllo completo delle dipendenze. -
AWS SDK: è disponibile solo SDK v2. Se i tuoi script utilizzano boto3 (Python), non è necessaria alcuna modifica: boto3 continua a funzionare. Per i Scala/Java lavori che utilizzano direttamente l' AWS SDK, esegui la migrazione alle API v2.
Consulta la documentazione relativa alla migrazione di Spark:
-
Guida alla migrazione: Spark Core
sul sito Web di Apache Spark -
Guida alla migrazione: SQL, Dataset e DataFrame
sul sito Web di Apache Spark -
Guida alla migrazione: streaming strutturato
sul sito Web di Apache Spark
Migrazione da una versione precedente AWS Glue versioni a AWS Glue 6.0
-
Per le fasi di migrazione relative alla AWS Glue versione da 5.0 a AWS Glue 5.1, vedereMigrazione da AWS Glue 5.0 a AWS Glue 5.1.
-
Per le fasi di migrazione relative alla AWS Glue versione da 4.0 a AWS Glue 5.0, vedereMigrazione da AWS Glue da 4,0 a AWS Glue 5.0.
-
Per le fasi di migrazione relative ai passaggi da AWS Glue 3.0 a AWS Glue 5.0, vedereMigrazione da AWS Glue da 3.0 a AWS Glue 5.0.
-
Per le fasi di migrazione relative ai passaggi da AWS Glue 2.0 a AWS Glue 5.0, vedereMigrazione da AWS Glue da 2.0 a AWS Glue 5.0.
-
Dopo aver completato i passaggi precedenti, completa la migrazione alla versione AWS Glue 6.0 seguendo. Migrazione da AWS Glue 5.1 a AWS Glue 6.0
Migrazione del connettore e del driver JDBC per AWS Glue 6.0
Per le versioni dei connettori JDBC e data lake che sono state aggiornate, consulta:
Le seguenti modifiche si applicano agli aggiornamenti della versione OTF identificati nella Appendice D: Aggiornamenti di formato a tabella aperta versione 6.0. AWS Glue
Apache Iceberg
Nota le seguenti modifiche:
Iceberg è stato aggiornato alla versione 1.11.0 con supporto completo per le specifiche di Apache Iceberg versione 3.
Tipo di dati VARIANT con distruzione delle varianti per interrogazioni di dati semistrutturate ottimizzate.
Nanosecond-precision timestamp.
Tipi di dati geospaziali (geometria e geografia).
Le seguenti funzionalità di Iceberg sono già supportate da AWS Glue ETL a partire dalla AWS Glue versione 5.1: vettori di cancellazione (merge-on-read utilizzando Roaring Bitmaps archiviati nei file Puffin) e tracciamento della discendenza delle righe tramite metadati. first-row-id
Apache Hudi
Nota le seguenti modifiche:
Hudi è stato aggiornato alla versione 1.1.1.
Supporto continuo per l'accesso in lettura e scrittura FTA sulle tabelle registrate. AWS Lake Formation
Delta Lake
Nota le seguenti modifiche:
Delta Lake è stato aggiornato alla versione 4.2.0.
Supporto continuo per l'accesso in lettura e scrittura FTA sulle AWS Lake Formation tabelle registrate.
Limiti noti
Le seguenti limitazioni si applicano alla versione AWS Glue 6.0:
-
Le chiavi di crittografia delle tabelle native di Iceberg non sono supportate.
-
Le trasformazioni Iceberg con più argomenti non sono supportate.
-
I nuovi tipi di dati Iceberg v3 sono supportati solo con Spark. DataFrames Queste funzionalità non funzioneranno con. DynamicFrames
-
Visual ETL in AWS Glue Studio non supporta i nuovi tipi di dati Iceberg v3. Se desideri utilizzare queste nuove funzionalità con Visual ETL, ti consigliamo di migrare i tuoi processi ETL su Amazon Unified Studio. SageMaker
-
Fine-grained il controllo degli accessi (FGAC) non è supportato con le colonne VARIANT.
-
Le tabelle iceberg create con
'format-version'='3'non possono essere lette da Athena SQL (errore:).Cannot read unsupported version 3Usa Iceberg v2 per la compatibilità tra più motori con Athena.
Appendice A: Aggiornamenti importanti delle dipendenze
Di seguito sono riportati gli aggiornamenti delle dipendenze:
| Dipendenza | AWS Glue Versione 6.0 | Versione 5.1 AWS Glue | Versione in AWS Glue 5.0 | Versione AWS Glue 4.0 |
|---|---|---|---|---|
| Java | 17 | 17 | 17 | 8 |
| Spark | 4.1.1 | 3.5.6 | 3.5.4 | 3.3.0-amzn-1 |
| Hadoop | 3.4.2 | 3.4.1 | 3.4.1 | 3.3.3-amzn-0 |
| Scala | 2.13,17 | 2,12,18 | 2,12,18 | 2,12 |
| Jackson | 2.20.0 | 2.15.2 | 2.15.2 | 2,12 |
| Hive | 2.3.10-amzn-1 | 2.3.9-amzn-4 | 2.3.9-amzn-4 | 2.3.9-amzn-2 |
| Arrow | 18.3.0 | 12.0.1 | 12.0.1 | 7.0.0 |
| AWS Glue Client Data Catalog | 4.11.0 | 4.9.0 | 4.5.0 | 3.7.0 |
| AWS SDK per Java | 2.44.6 (solo v2) | 2.35.5 | 2,29,52 | 1.12 |
| Python | 3.13 | 3,11 | 3.11 | 3,10 |
| Boto3 | 1,42,84 | 1,40,61 | 1,34,131 | 1,26 |
| Json4s | 3.7.0-M11 | 3.7.0-M11 | 3.7.0-M11 | 3.7.0-M11 |
| Connettore EMR DynamoDB | 6.1.0 | 5.7.0 | 5.6.0 | 4.16.0 |
| Netty | 4.2.7 | N/A | N/A | N/A |
| Parquet | 1.16.0 | N/A | N/A | N/A |
| NumPy | 2.4.4 | N/A | N/A | N/A |
| Panda | 2.3.3 | N/A | N/A | N/A |
Appendice B: aggiornamenti dei driver JDBC
Di seguito sono riportati gli aggiornamenti dei driver JDBC:
| Driver | Versione del driver JDBC nella versione 6.0 AWS Glue | Versione del driver JDBC nella versione 5.1 AWS Glue | Versione del driver JDBC nella versione 5.0 AWS Glue |
|---|---|---|---|
| MySQL | 8.0.33 | 8,0,33 | 8,0,33 |
| Microsoft SQL Server | 10.2.0 | 10.2.0 | 10.2.0 |
| Database Oracle | 23.4.0.24,05 | 23,30.23,09 | 23,30.23,09 |
| PostgreSQL | 42,7,3 | 42,7,3 | 42,7,3 |
| Amazon Redshift | redshift-jdbc42-2.2.7 |
redshift-jdbc42-2.1.0.29 |
redshift-jdbc42-2.1.0.29 |
| MariaDB | 3.5.7 | N/A | N/A |
Appendice C: Aggiornamenti dei connettori
Di seguito sono riportati gli aggiornamenti dei connettori:
| Connector | Versione in 6.0 AWS Glue | Versione 5.1 AWS Glue | Versione in AWS Glue 5.0 |
|---|---|---|---|
| Spark Redshift | 6.7.0 | 6.4.2 | 6.4.0 |
| Spark SQL Kinesis | 2.1.0 | N/A | N/A |
| MongoDB | 11.0.1 | 10.3.0 | 10.3.0 |
| Snowflake | 317,0 | 3.1.1 | 3.0.0 |
| OpenSearch | 2.0.0 | 1.2.0 | 1.2.0 |
| Connettore EMR DynamoDB | 6.1.0 | 5.7.0 | 5.6.0 |
Appendice D: Aggiornamenti di formato a tabella aperta
Di seguito sono riportati gli aggiornamenti di formato a tabella aperta:
| OTF | Versione in 6.0 AWS Glue | Versione 5.1 AWS Glue | Versione in AWS Glue 5.0 | Versione AWS Glue 4.0 |
|---|---|---|---|---|
| Hudi | 1.1.1 | 1.0.2 | 0.15.0 | 0.12.1 |
| Delta Lake | 4.2.0 | 3.3.2 | 3.3.0 | 2.1.0 |
| Iceberg | 1.11.0 | 1.10.0 | 1.7.1 | 1.0.0 |