View a markdown version of this page

Migrazione in corso AWS Glue per lavori Spark a AWS Glue versione 6.0 - AWS Aderenza

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.

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 3 Usa 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-first job 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.NoSuchFieldError Questi 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-first utilizzi 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.EmrFileSystem I lavori che utilizzano s3:// 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: JavaConversions rimosse (usaCollectionConverters), MutableList rimosse (usaListBuffer), le raccolte parallele richiedono un'importazione separata.

  • Modifiche all'API Spark 4.1:

    • SQLContextrimosso: usa SparkSession direttamente.

    • 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=False Usa il nome completo dell'argomento o passa allow_abbrev=True a per getResolvedOptions() 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 3 inGlue version.

  • Nell'API, scegli 6.0 nel parametro GlueVersion nell'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) in Glue version.

  • In AWS Glue Studio, scegli Glue 6.0 - Supports Spark 4.1.1, Scala 2, Python 3 inGlue version.

  • Nell'API, scegli 6.0 nel parametro GlueVersion nell'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 JavaConversions con CollectionConverters.

  • [Python] Codice di aggiornamento per la compatibilità con Python 3.13. Rimuovi l'utilizzo di moduli obsoleti (ad esempio,,). imp cgi cgitb

  • [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=false se 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-jars alle 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 precedenzaspark.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-jars compilato con Scala 2.12 ha esito negativo con o. NoSuchMethodError ClassNotFoundException Ricompila 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-modules funzionalità continua a funzionare ma è obsoleta. Valuta la possibilità di migrare a --python-virtual-env per 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:

Migrazione da una versione precedente AWS Glue versioni 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 3 Usa 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