

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à.

# AWS Glue versioni
<a name="release-notes"></a>

È possibile configurare il parametro della AWS Glue versione quando si aggiunge o si aggiorna un lavoro. La AWS Glue versione determina le versioni di Apache Spark e Python supportate. AWS Glue La versione Python indica la versione supportata per i processi di tipo Spark. La tabella seguente elenca le versioni AWS Glue disponibili, le versioni Spark e Python corrispondenti e altre modifiche di funzionalità.

Puoi utilizzare gli [aggiornamenti Generative AI per Apache Spark per](upgrade-analysis.md) aggiornare i tuoi job Glue ETL dalle versioni precedenti di Glue (≥ 2.0) all'ultima versione di Glue.

## AWS Glue versioni
<a name="release-notes-versions"></a>

<a name="table-glue-versions"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/release-notes.html)

**Nota**  
Le seguenti versioni di Glue supportano queste versioni di PythonShell:  
PythonShell la versione 3.6 è supportata nella versione 1.0 di Glue.
PythonShell la versione 3.9 è supportata nella versione 3.0 di Glue.
Inoltre, gli endpoint di sviluppo sono supportati solo nelle versioni 1.0 e 0.9 di Glue.

# Policy di supporto versione AWS Glue
<a name="glue-version-support-policy"></a>

AWS Glue è un servizio di integrazione dati serverless che semplifica l'individuazione, la preparazione e la combinazione di dati per analisi dei dati, machine learning e sviluppo di applicazioni. Un *processo AWS Glue* contiene la logica di business che esegue le attività di integrazione dei dati in AWS Glue. Esistono tre tipi di processi in AWS Glue: *Spark (in batch e in streaming)*, *Ray* e *shell Python*. Quando definisci il processo, specifica la versione di AWS Glue che configura le versioni dell'ambiente di runtime Spark, Ray o Python sottostante. Ad esempio: un job Spark AWS Glue versione 5.0 supporta Spark 3.5.4 e Python 3.11.

## Policy di supporto
<a name="glue-version-support-policy-milestones"></a>

AWS Glue le versioni sono basate su una combinazione di sistema operativo, linguaggio di programmazione e librerie software soggette a manutenzione e aggiornamenti di sicurezza. AWS Glue la politica di supporto delle versioni prevede di interrompere il supporto per una versione quando uno dei componenti principali della versione raggiunge la fine del supporto comunitario a lungo termine (LTS) e gli aggiornamenti di sicurezza non sono più disponibili. AWS Glue la politica di supporto delle versioni include i seguenti stati: 

**End of Support (EOS):** quando una AWS Glue versione raggiunge EOS:
+ AWS Glue non applicherà più patch di sicurezza o altri aggiornamenti alle versioni EOS.
+ AWS Glue le offerte di lavoro sulle versioni EOS non sono idonee al supporto tecnico.
+ AWS Glue potrebbe non funzionare SLAs quando i lavori vengono eseguiti su versioni EOS.

**Fine del ciclo di vita (EOL) -** Quando una AWS Glue versione raggiunge la fine del ciclo di vita (EOL):
+ Non è più possibile creare nuovi AWS Glue lavori o sessioni interattive nelle versioni EOL.
+ Non è più possibile avviare le esecuzioni di job su queste AWS Glue versioni.
+ AWS Glue interromperà le esecuzioni di job e le sessioni interattive esistenti nelle versioni EOL.
+ Le versioni EOL verranno rimosse da AWS Glue SDKs e. APIs

Le seguenti versioni AWS Glue hanno raggiunto la fine del supporto e non saranno più disponibili dopo la data di fine del ciclo di vita. Le modifiche allo stato di supporto di una versione iniziano a mezzanotte (fuso orario del Pacifico) della data specificata.


| **Tipo** | **Versione Glue** | **Fine del supporto** | **Fine del ciclo di vita** | 
| --- | --- | --- | --- | 
| **Tipo** | **Versione di Python** | **Fine del supporto** | **Fine del ciclo di vita** | 
| --- | --- | --- | --- | 
| **Tipo** | **Versione notebook** | **Fine del supporto** | **Fine del ciclo di vita** | 
| --- | --- | --- | --- | 
| Spark | Glue version 0.9 (Spark 2.2, Scala 2, Python 2) | 01/06/2022 | 01/04/2026 | 
| Spark | Glue version 1.0 (Spark 2.4, Python 2) | 01/06/2022 | 01/04/2026 | 
| Spark | Glue version 1.0 (Spark 2.4, Scala 2, Python 3) | 30/09/2022 | 01/04/2026 | 
| Spark | Glue version 2.0 (Spark 2.4, Python 3) | 31/2024 | 1/4/2026 | 
| Shell Python | Python 2 (AWS Glue versione 1.0) | 01/06/2022 | 01/04/2026 | 
| Shell Python | PythonShell 3.6 (Glue versione 1.0) | 31/03/2026 | N/A | 
| Endpoint di sviluppo | Notebook Zeppelin | 30/09/2022 | N/A | 

**Nota**  
 La creazione di nuovi lavori in AWS Glue Python Shell 3.6 non sarà consentita una volta raggiunta la fine del supporto il 31 marzo 2026, ma puoi continuare ad aggiornare ed eseguire i lavori esistenti. Tuttavia, i lavori eseguiti su versioni fuori produzione non sono idonei al supporto tecnico. AWS Glue non applicherà patch di sicurezza o altri aggiornamenti alle versioni fuori produzione. AWS Glue inoltre non verrà rispettato SLAs quando i job vengono eseguiti su versioni fuori produzione. 

AWS consiglia la migrazione dei processi alle versioni supportate.

Per informazioni sulla migrazione dei job Spark alla AWS Glue versione più recente, consulta [Migrazione dei AWS Glue job](https://docs.aws.amazon.com/glue/latest/dg/migrating-version-51.html) alla versione 5.1. AWS Glue 

Per eseguire la migrazione dei processi di shell Python all'ultima versione di AWS Glue:
+ Nella console, scegli `Python 3 (Glue Version 4.0)`.
+ Nell'[UpdateJob](https://docs.aws.amazon.com/glue/latest/webapi/API_UpdateJob.html)API [CreateJob](https://docs.aws.amazon.com/glue/latest/webapi/API_CreateJob.html)/, imposta il `GlueVersion` parametro su e il `2.0` `PythonVersion` to `3` sotto il parametro. `Command` La configurazione `GlueVersion` non influisce sul comportamento dei processi della shell Python, quindi non c'è alcun vantaggio nell'incrementare `GlueVersion`.
+ Devi rendere lo script del tuo processo compatibile con Python 3.

# Migrazione AWS Glue per i job Spark alla versione 5.1 AWS Glue
<a name="migrating-version-51"></a>

Questo argomento descrive le modifiche tra AWS Glue le versioni 0.9, 1.0, 2.0, 3.0, 4.0 e 5.0 per consentire la migrazione delle applicazioni Spark e dei lavori ETL alla 5.1. AWS Glue Descrive inoltre le funzionalità della AWS Glue versione 5.1 e i vantaggi del suo utilizzo. 

Per utilizzare questa funzionalità con i tuoi lavori AWS Glue ETL, scegli `Glue version` quando **5.1** crei i tuoi lavori.

**Topics**
+ [Nuove funzionalità](#migrating-version-51-features)
+ [Azioni per migrare alla versione 5.1 AWS Glue](#migrating-version-51-actions)
+ [Elenco di controllo della migrazione](#migrating-version-51-checklist)
+ [Migrazione da 5.0 a 5.1 AWS Glue AWS Glue](#migrating-version-51-from-50)
+ [Migrazione dalle AWS Glue versioni precedenti alla 5.1 AWS Glue](#migrating-older-versions-to-51)
+ [Migrazione di connettori e driver JDBC per 5.1 AWS Glue](#migrating-version-51-connector-driver-migration)

## Nuove funzionalità
<a name="migrating-version-51-features"></a>

Questa sezione descrive le nuove funzionalità e i vantaggi della AWS Glue versione 5.1.
+ Aggiornamento di Apache Spark dalla versione 3.5.4 della AWS Glue versione 5.0 alla versione 3.5.6 della versione 5.1. AWS Glue 
+ Open Table Formats (OTF) aggiornati a Hudi 1.0.2, Iceberg 1.10.0 e Delta Lake 3.3.2
+ **Iceberg Materialized Views - Crea e gestisci Iceberg Materialized Views** (MV). [Per ulteriori informazioni, consulta il post del blog](https://aws.amazon.com/blogs/big-data/introducing-apache-iceberg-materialized-views-in-aws-glue-data-catalog/) 
+ **Formato Iceberg versione 3.0**: estende i tipi di dati e le strutture di metadati esistenti per aggiungere nuove funzionalità. Per ulteriori informazioni, consulta [Iceberg](https://iceberg.apache.org/spec/) Table Spec. 
+ **Hudi Full Table Access** - Controllo completo dell'accesso alla tabella (FTA) per Apache Hudi in Apache Spark in base alle politiche definite in. AWS Lake Formation Questa funzionalità consente le operazioni di lettura e scrittura dai lavori AWS Glue ETL su tabelle AWS Lake Formation registrate quando il ruolo lavorativo ha accesso completo alla tabella.
+ **Supporto nativo di Spark per il controllo granulare degli accessi (FGAC) tramite AWS Lake Formation** DDL/DML operazioni (come CREATE, ALTER, DELETE, DROP) con controllo granulare degli accessi per le tabelle Apache Hive, Apache Iceberg e Delta Lake registrate in. AWS Lake Formation
+ **Contesto di controllo per i lavori Spark: il contesto di controllo per i lavori** AWS Glue ETL sarà disponibile per le chiamate API nei log. AWS Glue AWS Lake Formation AWS CloudTrail 

**Problemi noti e limitazioni**  
Tieni presente i seguenti problemi e limitazioni noti:
+ Supporto limitato per la clausola View SQL per la creazione di viste materializzate, la riscrittura delle query e l'aggiornamento incrementale. Maggiori dettagli sono disponibili nella pagina di documentazione della [funzionalità Iceberg](https://docs.aws.amazon.com/lake-formation/latest/dg/materialized-views.html#materialized-views-considerations-limitations) Materialized Views 
+ Le **scritture Hudi FTA** richiedono l'utilizzo HoodieCredentialedHadoopStorage per la vendita di credenziali durante l'esecuzione del lavoro. Imposta la seguente configurazione durante l'esecuzione dei job Hudi:

  `hoodie.storage.class=org.apache.spark.sql.hudi.storage.HoodieCredentialedHadoopStorage` 
+ Il supporto di scrittura Hudi FTA funziona solo con le configurazioni Hudi predefinite. Le impostazioni Hudi personalizzate o non predefinite potrebbero non essere completamente supportate e potrebbero causare un comportamento imprevisto. Inoltre, il clustering for Hudi Merge-On-Read (MOR) non è supportato nella modalità di scrittura FTA.

**Modifiche importanti**  
Notare le seguenti modifiche speciali:
+  Il file system S3A ha sostituito EMRFS come connettore S3 predefinito. Per informazioni su come effettuare la migrazione, consulta. [Migrazione da 5.0 a 5.1 AWS Glue AWS Glue](#migrating-version-51-from-50) 

## Azioni per migrare alla versione 5.1 AWS Glue
<a name="migrating-version-51-actions"></a>

Per i processi esistenti, modifica la `Glue version` dalla versione precedente a `Glue 5.1` nella configurazione del processo.
+ In AWS Glue Studio, scegli `Glue 5.1 - Supports Spark 3.5.6, Scala 2, Python 3` in`Glue version`.
+ Nell'API, scegli **5.1** nel parametro `GlueVersion` nell'operazione API [https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-UpdateJob](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-UpdateJob).

Per i nuovi processi, scegli `Glue 5.1` al momento della creazione.
+ Nella console, scegli `Spark 3.5.6, Python 3 (Glue Version 5.1) or Spark 3.5.6, Scala 2 (Glue Version 5.1)` in `Glue version`.
+ In AWS Glue Studio, scegli `Glue 5.1 - Supports Spark 3.5.6, Scala 2, Python 3` in`Glue version`.
+ Nell'API, scegli **5.1** nel parametro `GlueVersion` nell'operazione API [https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-CreateJob](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-CreateJob).

Per visualizzare i registri degli eventi di Spark della AWS Glue versione 5.1 della versione AWS Glue 2.0 o precedente, [avvia un server di cronologia Spark aggiornato per AWS Glue 5.1](https://docs.aws.amazon.com/glue/latest/dg/monitor-spark-ui-history.html) utilizzando o Docker. CloudFormation 

## Elenco di controllo della migrazione
<a name="migrating-version-51-checklist"></a>

Rivedi questo elenco di controllo per la migrazione:
+ [Python] Aggiorna i riferimenti di avvio da 1.34 a 1.40.

## Migrazione da 5.0 a 5.1 AWS Glue AWS Glue
<a name="migrating-version-51-from-50"></a>

Tutti i parametri di lavoro e le funzionalità principali esistenti in AWS Glue 5.0 esisteranno nella versione AWS Glue 5.1. Nota le seguenti modifiche durante la migrazione:
+ Nella AWS Glue versione 5.1, il filesystem S3A ha sostituito EMRFS come connettore S3 predefinito. Se entrambi `spark.hadoop.fs.s3a.endpoint` e 3 non `spark.hadoop.fs.s3a.endpoint.region` sono impostati, la regione predefinita utilizzata da S3A è. `us-east-2` Ciò può causare problemi, come errori di timeout di caricamento di S3, in particolare per i processi VPC. Per mitigare i problemi causati da questa modifica, imposta la configurazione `spark.hadoop.fs.s3a.endpoint.region` Spark quando usi il file system S3A nella versione 5.1. AWS Glue 
+ Per continuare a utilizzare EMRFS anziché S3A, imposta le seguenti configurazioni spark:

  ```
      --conf spark.hadoop.fs.s3.impl=com.amazon.ws.emr.hadoop.fs.EmrFileSystem
      --conf spark.hadoop.fs.s3n.impl=com.amazon.ws.emr.hadoop.fs.EmrFileSystem
      --conf spark.hadoop.fs.AbstractFileSystem.s3.impl=org.apache.hadoop.fs.s3.EMRFSDelegate
  ```

Consulta la documentazione relativa alla migrazione di Spark:
+ [Guida alla migrazione: Spark Core](https://spark.apache.org/docs/3.5.6/core-migration-guide.html)
+ [Guida alla migrazione: SQL, set di dati e DataFrame](https://spark.apache.org/docs/3.5.6/sql-migration-guide.html)
+ [Guida alla migrazione: streaming strutturato](https://spark.apache.org/docs/3.5.6/ss-migration-guide.html)
+ [Aggiornamento PySpark](https://spark.apache.org/docs/3.5.6/api/python/migration_guide/pyspark_upgrade.html)

## Migrazione dalle AWS Glue versioni precedenti alla 5.1 AWS Glue
<a name="migrating-older-versions-to-51"></a>
+ Per i passaggi di migrazione relativi alla versione AWS Glue 4.0 alla AWS Glue 5.0, consulta [Migrazione da AWS Glue 4.0 a AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/migrating-version-50.html#migrating-version-50-from-40) 5.0.
+ Per le fasi di migrazione relative alla AWS Glue versione 3.0 alla AWS Glue 5.0, consulta [Migrazione da AWS Glue 3.0 a AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/migrating-version-50.html#migrating-version-50-from-30) 5.0.
+ Per le fasi di migrazione relative alla versione AWS Glue 2.0 alla AWS Glue 5.0 e un elenco delle differenze di migrazione tra la AWS Glue versione 2.0 e 4.0, consulta [Migrazione dalla AWS Glue 2.0 alla AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/migrating-version-50.html#migrating-version-50-from-20) 5.0. 

## Migrazione di connettori e driver JDBC per 5.1 AWS Glue
<a name="migrating-version-51-connector-driver-migration"></a>

Per le versioni dei connettori JDBC e data lake che sono state aggiornate, consulta:
+ [Appendice B: aggiornamenti dei driver JDBC](#migrating-version-51-appendix-jdbc-driver)
+ [Appendice C: Aggiornamenti dei connettori](#migrating-version-51-appendix-connector)
+ [Appendice D: Aggiornamenti di formato a tabella aperta](#migrating-version-51-appendix-open-table-formats)

Le seguenti modifiche si applicano agli aggiornamenti della versione OTF identificati nella [Appendice D: Aggiornamenti di formato a tabella aperta](#migrating-version-51-appendix-open-table-formats) versione 5.1. AWS Glue 

**Apache Hudi**  
Nota le seguenti modifiche:
+ Supporta l'accesso in lettura e scrittura FTA sulle tabelle registrate di Lake Formation.

**Apache Iceberg**  
Nota le seguenti modifiche:
+ Supporta la versione 3 del formato Iceberg. Sono supportate le seguenti funzionalità:
  + Trasformazioni multiargomento per il partizionamento e l'ordinamento.
  + Tracciamento del lignaggio delle righe.
  + Vettori di cancellazione. Scopri di più nel [post del blog](https://aws.amazon.com/blogs/big-data/unlock-the-power-of-apache-iceberg-v3-deletion-vectors-on-amazon-emr/) 
  + Chiavi di crittografia delle tabelle.
  + Supporto dei valori predefiniti per le colonne.
+ Supporta le scritture FGAC native di Spark su tabelle registrate. AWS Lake Formation 
+ Compatibilità con Athena SQL - Impossibile leggere le tabelle Iceberg V3 create da EMR Spark a causa di un errore: `GENERIC_INTERNAL_ERROR: Cannot read unsupported version 3`

**Delta Lake**  
Nota le seguenti modifiche:
+ Supporta l'accesso in lettura e scrittura FTA sulle tabelle registrate di Lake Formation.

### Appendice A: Aggiornamenti importanti delle dipendenze
<a name="migrating-version-51-appendix-dependencies"></a>

Di seguito sono riportati gli aggiornamenti delle dipendenze:


| Dipendenza | Versione in 5.1 AWS Glue  | Versione in AWS Glue 5.0 | Versione in AWS Glue 4.0 | Versione in AWS Glue 3.0 | Versione in AWS Glue 2.0 | Versione in AWS Glue 1.0 | 
| --- | --- | --- | --- | --- | --- | --- | 
| Java | 17 | 17 | 8 | 8 | 8 | 8 | 
| Spark | 3.5.6 | 3,5,4 | 3.3.0-amzn-1 | 3.1.1-amzn-0 | 2.4.3 | 2.4.3 | 
| Hadoop | 3.4.1 | 3.4.1 | 3.3.3-amzn-0 | 3.2.1-amzn-3 | 2.8.5-amzn-5 | 2.8.5-amzn-1 | 
| Scala | 2,12,18 | 2,12,18 | 2,12 | 2,12 | 2.11 | 2.11 | 
| Jackson | 2,15,2 | 2,15,2 | 2,12 | 2,12 | 2.11 | 2.11 | 
| Hive | 2.3.9-amzn-4 | 2.3.9-amzn-4 | 2.3.9-amzn-2 | 2.3.7-amzn-4 | 1.2 | 1.2 | 
| EMRFS | 2,73,0 | 2,69,0 | 2,54,0 | 2,46,0 | 2.38.0 | 2.30.0 | 
| Json4s | 3.7.0-M11 | 3.7.0-M11 | 3.7.0-M11 | 36.6 | 3.5.x | 3.5.x | 
| Arrow | 120,1 | 12,0.1 | 7,0,0 | 2.0.0 | 0.10.0 | 0.10.0 | 
| AWS Glue Client Data Catalog | 4.9.0 | 4.5.0 | 3.7.0 | 3.0.0 | 1.10.0 | N/D | 
| AWS SDK per Java | 2.35.5 | 2,29,52 | 1.12 | 1.12 |  |  | 
| Python | 3,11 | 3,11 | 3,10 | 3.7 | 2.7 e 3.6 | 2.7 e 3.6 | 
| Boto | 1,40,61 | 1,34,131 | 1,26 | 1,18 | 1.12 | N/D | 
| Connettore EMR DynamoDB | 5.7.0 | 5.6.0 | 4,16,0 |  |  |  | 

### Appendice B: aggiornamenti dei driver JDBC
<a name="migrating-version-51-appendix-jdbc-driver"></a>

Di seguito sono riportati gli aggiornamenti dei driver JDBC:


| Driver | Versione del driver JDBC in 5.1 AWS Glue  | Versione del driver JDBC nella versione 5.0 AWS Glue  | Versione del driver JDBC nella versione 4.0 AWS Glue  | Versione del driver JDBC nella versione 3.0 AWS Glue  | Versione del driver JDBC nelle versioni precedenti AWS Glue  | 
| --- | --- | --- | --- | --- | --- | 
| MySQL | 8.0.33 | 8,0,33 | 8.0.23 | 8.0.23 | 5.1 | 
| Microsoft SQL Server | 102,0 | 10.2,0 | 9,40 | 7,0,0 | 6.1.0 | 
| Database Oracle | 23,3,023,09 | 23,3,023,09 | 21,7 | 21,1 | 11.2 | 
| PostgreSQL | 42,7,3 | 42,7,3 | 42,36 | 4,2,18 | 42,1,0 | 
| Amazon Redshift |  redshift-jdbc42-2.1.0.29  |  redshift-jdbc42-2.1.0.29  |  redshift-jdbc42-2.1.0.16  |  redshift-jdbc41-1.2.12.1017   |  redshift-jdbc41-1.2.12.1017   | 
| SAP Hana | 2,20,17 | 2,20,17 | 2,17,12 |  |  | 
| Teradata | 20,00,00,33 | 20,00,00,33 | 20,00,00,06 |  |  | 

### Appendice C: Aggiornamenti dei connettori
<a name="migrating-version-51-appendix-connector"></a>

Di seguito sono riportati gli aggiornamenti dei connettori:


| Driver | Versione del connettore in 5.1 AWS Glue  | Versione del connettore in AWS Glue 5.0 | Versione del connettore in AWS Glue 4.0 | Versione del connettore in AWS Glue 3.0 | 
| --- | --- | --- | --- | --- | 
| Connettore EMR DynamoDB | 5.7.0 | 5.6.0 | 4.16.0 |  | 
| Amazon Redshift | 6.4.2 | 64,0 | 6.1.3 |  | 
| OpenSearch | 1.2.0 | 1.2.0 | 1.0.1 |  | 
| MongoDB | 10.3.0 | 10.3.0 | 10.0.4 | 3.0.0 | 
| Snowflake | 3.1.1 | 3.0.0 | 2.12.0 |  | 
| Google BigQuery | 0.32.2 | 0,32,2 | 0,32,2 |  | 
| AzureCosmos | 4,33,0 | 4,33,0 | 42,0 |  | 
| AzureSQL | 1.3.0 | 1.3.0 | 1.3.0 |  | 
| Vertica | 33,5 | 3.3.5 | 3.3.5 |  | 

### Appendice D: Aggiornamenti di formato a tabella aperta
<a name="migrating-version-51-appendix-open-table-formats"></a>

Di seguito sono riportati gli aggiornamenti di formato a tabella aperta:


| OTF | Versione del connettore in 5.1 AWS Glue  | Versione del connettore in AWS Glue 5.0 | Versione del connettore in AWS Glue 4.0 | Versione del connettore in AWS Glue 3.0 | 
| --- | --- | --- | --- | --- | 
| Hudi | 1.0.2 | 0.15.0 | 0.12.1 | 0,10,1 | 
| Delta Lake | 3.3.2 | 3.3.0 | 2.1.0 | 1.0.0 | 
| Iceberg | 1.10.0 | 1.7.1 | 1.0.0 | 0.13.1 | 

# Migrazione AWS Glue per i job Spark alla versione 5.0 AWS Glue
<a name="migrating-version-50"></a>

Questo argomento descrive le modifiche tra AWS Glue le versioni 0.9, 1.0, 2.0, 3.0 e 4.0 per consentire la migrazione delle applicazioni Spark e dei lavori ETL alla 5.0. AWS Glue Descrive inoltre le funzionalità della AWS Glue versione 5.0 e i vantaggi del suo utilizzo. 

Per utilizzare questa funzionalità con i tuoi lavori AWS Glue ETL, scegli `Glue version` quando **5.0** crei i tuoi lavori.

**Topics**
+ [Nuove funzionalità](#migrating-version-50-features)
+ [Azioni per migrare alla versione 5.0 AWS Glue](#migrating-version-50-actions)
+ [Elenco di controllo della migrazione](#migrating-version-50-checklist)
+ [AWS Glue Funzionalità 5.0](#migrating-version-50-features)
+ [Migrazione da 4.0 a 5.0 AWS Glue AWS Glue](#migrating-version-50-from-40)
+ [Migrazione da AWS Glue 3.0 a 5.0 AWS Glue](#migrating-version-50-from-30)
+ [Migrazione da AWS Glue 2.0 a 5.0 AWS Glue](#migrating-version-50-from-20)
+ [Modifiche al comportamento di registrazione nella versione 5.0 AWS Glue](#enable-continous-logging-changes-glue-50)
+ [Migrazione di connettori e driver JDBC per 5.0 AWS Glue](#migrating-version-50-connector-driver-migration)

## Nuove funzionalità
<a name="migrating-version-50-features"></a>

Questa sezione descrive le nuove funzionalità e i vantaggi della AWS Glue versione 5.0.
+ Aggiornamento di Apache Spark dalla versione 3.3.0 della versione AWS Glue 4.0 alla versione 3.5.4 della versione 5.0. AWS Glue Per informazioni, consulta [Miglioramenti principali da Spark 3.3.0 a Spark 3.5.4](#migrating-version-50-features-spark). 
+ Controllo granulare degli accessi (FGAC) nativo di Spark con Lake Formation. Ciò include FGAC per le tabelle Iceberg, Delta e Hudi. Per ulteriori informazioni, consulta [Using AWS Glue with AWS Lake Formation](https://docs.aws.amazon.com/glue/latest/dg/security-lf-enable.html) per il controllo granulare degli accessi. 

  Tenere a mente le seguenti considerazioni o limitazioni per l'FGAC nativo di Spark:
  + Attualmente la scrittura dei dati non è supportata
  + Scrivere in Iceberg `GlueContext` tramite Lake Formation richiede invece l'uso del controllo degli accessi IAM

  Per un elenco completo delle limitazioni e delle considerazioni relative all'utilizzo di FGAC nativo di Spark, consultare [Considerazioni e limitazioni](security-lf-enable-considerations.md).
+ Supporto per Amazon S3 Access Grants come soluzione scalabile di controllo degli accessi ai tuoi dati Amazon S3 da. AWS Glue Per ulteriori informazioni, consulta [Utilizzo di Amazon S3 Access Grants con AWS Glue](security-s3-access-grants.md).
+ Formati a tabella aperta (OTF) aggiornati a Hudi 0.15.0, Iceberg 1.7.1 e Delta Lake 3.3.0
+ Supporto per Amazon SageMaker Unified Studio.
+ Amazon SageMaker Lakehouse e l'integrazione dell'astrazione dei dati. Per ulteriori informazioni, consulta [Interrogazione dei cataloghi di dati dei metastore da ETL AWS Glue](#migrating-version-50-features-metastore).
+ Supporto per l'installazione di librerie Python aggiuntive utilizzando `requirements.txt`. Per ulteriori informazioni, consulta [Installazione di librerie Python aggiuntive in AWS Glue 5.0 o versioni successive utilizzando requirements.txt](aws-glue-programming-python-libraries.md#addl-python-modules-requirements-txt).
+ AWS Glue 5.0 supporta la derivazione dei dati in Amazon DataZone. Puoi AWS Glue configurare la raccolta automatica delle informazioni sulla derivazione durante le esecuzioni dei job Spark e inviare gli eventi di derivazione da visualizzare in Amazon. DataZone Per ulteriori informazioni, consulta [Data lineage in Amazon DataZone](https://docs.aws.amazon.com/datazone/latest/userguide/datazone-data-lineage.html).

  Per configurarlo sulla AWS Glue console, attiva **Generate lineage events** e inserisci il tuo ID di DataZone dominio Amazon nella scheda **Job details**.  
![\[Lo screenshot mostra l'attivazione di Amazon DataZone date lineage per. AWS Glue\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/images/glue-50-data-lineage.png)

  In alternativa, puoi fornire il seguente parametro di lavoro (inserisci il tuo ID di DataZone dominio):
  + Chiave: `--conf`
  + Valore:

    ```
    extraListeners=io.openlineage.spark.agent.OpenLineageSparkListener
    —conf spark.openlineage.transport.type=amazon_datazone_api
    -conf spark.openlineage.transport.domainId=<your-domain-ID>
    ```
+ Aggiornamenti del connettore e dei driver JDBC. Per ulteriori informazioni, consultare [Appendice B: aggiornamenti dei driver JDBC](#migrating-version-50-appendix-jdbc-driver) e [Appendice C: Aggiornamenti dei connettori](#migrating-version-50-appendix-connector).
+ Aggiornamento Java da 8 a 17.
+ Maggiore spazio di archiviazione AWS Glue `G.1X` e `G.2X` lavoro per i lavoratori con spazio su disco che è aumentato rispettivamente a 94 GB e 138 GB. Inoltre, `R.8X` sono disponibili nuovi tipi di `G.12X` worker e versioni ottimizzate per `R.1X` la `R.2X` memoria nella versione AWS Glue 4.0 e successive. `G.16X` `R.4X` Per ulteriori informazioni, consulta [Jobs](aws-glue-api-jobs-job.md) 
+ **Support for AWS SDK for Java, versione 2 AWS Glue - 5.0,** i job possono utilizzare le [versioni](https://github.com/aws/aws-sdk-java/tree/1.12.569) Java 1.12.569 [o](https://github.com/aws/aws-sdk-java-v2/tree/2.28.8) 2.28.8 se il job supporta la versione 2. L' AWS SDK for Java 2.x è un'importante riscrittura del codice base della versione 1.x. È stata sviluppata su base Java 8\$1 e aggiunge diverse caratteristiche richieste frequentemente. Queste includono il supporto per I/O senza blocchi e la possibilità di connettere un'implementazione HTTP diversa durante il runtime. Per ulteriori informazioni, inclusa una Guida alla migrazione da SDK per Java v1 a v2, consultare la guida [AWS SDK per Java, versione 2](https://docs.aws.amazon.com/sdk-for-java).

**Modifiche importanti**  
Notare le seguenti modifiche speciali:
+  Nella AWS Glue versione 5.0, quando si utilizza il file system S3A e se sia `fs.s3a.endpoint` che `fs.s3a.endpoint.region` non sono impostati, la regione predefinita utilizzata da S3A è `us-east-2`. Ciò può causare problemi, come errori di timeout di caricamento di S3, in particolare per i processi VPC. Per mitigare i problemi causati da AWS Glue questa modifica, imposta la configurazione Spark `fs.s3a.endpoint.region` quando usi il file system S3A nella versione 5.0. 
+ Controllo granulare degli accessi (FGAC) di Lake Formation
  + AWS Glue 5.0 supporta solo il nuovo DataFrames FGAC nativo di Spark che utilizza Spark. Non supporta l'utilizzo di FGAC. AWS Glue DynamicFrames
    + L'uso di FGAC nella versione 5.0 richiede la migrazione da Spark AWS Glue DynamicFrames DataFrames
    + Se non hai bisogno di FGAC, non è necessario migrare a Spark DataFrame e le GlueContext funzionalità, come i segnalibri di lavoro e i predicati push down, continueranno a funzionare.
  + I processi con FGAC nativo di Spark richiedono un minimo di 4 worker: un driver utente, un driver di sistema, un esecutore di sistema e un esecutore utente in standby.
  + Per ulteriori informazioni, consulta [Using AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/security-lf-enable.html) with per un controllo granulare degli accessi. AWS Lake Formation 
+ Accesso completo alla tabella (FTA) con Lake Formation
  + AWS Glue 5.0 supporta FTA con Spark native DataFrames (nuove) e GlueContext DynamicFrames (legacy, con limitazioni)
  + FTA nativo di Spark
    + Se utilizzi lo script 4.0 GlueContext, esegui la migrazione all'utilizzo di Spark nativo. 
    + Questa funzionalità è limitata alle tabelle hive e iceberg
    + Per maggiori informazioni sulla configurazione di un processo 5.0 per usare FTA nativo di Spark, consultare 
  + GlueContext DynamicFrame FTA
    + Non è necessaria alcuna modifica del codice
    + Questa funzionalità è limitata alle tabelle non OTF: non funzionerà con Iceberg, Delta Lake e Hudi.
+ [Il lettore SIMD CSV vettorializzato](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format-csv-home.html#aws-glue-programming-etl-format-simd-csv-reader) non è supportato.
+ La [registrazione continua](https://docs.aws.amazon.com/glue/latest/dg/monitor-continuous-logging-enable.html) nel gruppo di log di output non è supportata. Utilizzare invece il gruppo di log `error`.
+ Il AWS Glue job run insights `job-insights-rule-driver` è stato obsoleto. Il flusso di log `job-insights-rca-driver` si trova ora nel gruppo di log di errore.
+ I custom/marketplace connettori basati su Athena non sono supportati.
+ I connettori Adobe Marketo Engage, Facebook Ads, Google Ads, Google Analytics 4, Google Sheets, Hubspot, Instagram Ads, Intercom, Jira Cloud, Oracle, Salesforce, Salesforce Marketing Cloud NetSuite, Salesforce Marketing Cloud Account Engagement, SAP, Slack, Snapchat Ads, Stripe, Zendesk e Zoho CRM non sono OData supportati ServiceNow.
+ Le AWS Glue proprietà log4j personalizzate non sono supportate nella versione 5.0.

### Miglioramenti principali da Spark 3.3.0 a Spark 3.5.4
<a name="migrating-version-50-features-spark"></a>

Nota i seguenti miglioramenti:
+ Client Python per Spark Connect ([SPARK-39375](https://issues.apache.org/jira/browse/SPARK-39375)).
+ Implementare il supporto per i valori DEFAULT per le colonne nelle tabelle ([SPARK-38334).](https://issues.apache.org/jira/browse/SPARK-38334)
+ Supportare i “riferimenti agli alias delle colonne laterali” ([SPARK-27561](https://issues.apache.org/jira/browse/SPARK-27561)).
+ Rafforzare l'utilizzo di SQLSTATE per le classi di errore ([SPARK-41994).](https://issues.apache.org/jira/browse/SPARK-41994)
+ Abilitare i join del filtro Bloom per impostazione predefinita ([SPARK-38841](https://issues.apache.org/jira/browse/SPARK-38841)).
+ Migliore scalabilità dell'interfaccia utente Spark e stabilità dei driver per applicazioni di grandi dimensioni ([SPARK-41053](https://issues.apache.org/jira/browse/SPARK-41053)).
+ Monitoraggio asincrono dei progressi nello streaming strutturato ([SPARK-39591](https://issues.apache.org/jira/browse/SPARK-39591)).
+ Elaborazione stateful arbitraria in Python nello streaming strutturato ([SPARK-40434](https://issues.apache.org/jira/browse/SPARK-40434)).
+ [Miglioramenti della copertura dell'API Pandas ([SPARK-42882) e supporto di input in (SPARK-39405](https://issues.apache.org/jira/browse/SPARK-42882)). NumPy PySpark ](https://issues.apache.org/jira/browse/SPARK-39405)
+ [Fornisci un profiler di memoria per le funzioni definite dall'utente (SPARK-40281). PySpark ](https://issues.apache.org/jira/browse/SPARK-40281)
+  PyTorch [Implementa il distributore (SPARK-41589).](https://issues.apache.org/jira/browse/SPARK-41589)
+ Pubblicare artefatti SBOM ([SPARK-41893](https://issues.apache.org/jira/browse/SPARK-41893)).
+ Ambiente IPv6 di solo supporto ([SPARK-39457](https://issues.apache.org/jira/browse/SPARK-39457)).
+ [Scheduler K8s personalizzato ( YuniKorn Apache e Volcano) GA (SPARK-42802).](https://issues.apache.org/jira/browse/SPARK-42802)
+ Supporto client di Scala and Go in Spark Connect ([SPARK-42554](https://issues.apache.org/jira/browse/SPARK-42554)) e ([SPARK-43351](https://issues.apache.org/jira/browse/SPARK-43351)).
+ PyTorchsupporto ML distribuito basato su Spark Connect ([SPARK-42471](https://issues.apache.org/jira/browse/SPARK-42471)).
+ Supporto dello streaming strutturato per Spark Connect in Python e Scala ([SPARK-42938](https://issues.apache.org/jira/browse/SPARK-42938)).
+ Supporto dell'API Pandas per il client Python Spark Connect ([SPARK-42497](https://issues.apache.org/jira/browse/SPARK-42497)).
+ Introduci Arrow Python UDFs ([SPARK-40307](https://issues.apache.org/jira/browse/SPARK-40307)).
+ Supportare le funzioni di tabella definite dall'utente in Python ([SPARK-43798](https://issues.apache.org/jira/browse/SPARK-43798)).
+ [Migra PySpark gli errori nelle classi di errore (SPARK-42986).](https://issues.apache.org/jira/browse/SPARK-42986)
+ PySpark [framework di test (SPARK-44042).](https://issues.apache.org/jira/browse/SPARK-44042)
+ [Aggiungi il supporto per HllSketch Datasketches (SPARK-16484).](https://issues.apache.org/jira/browse/SPARK-16484)
+ Miglioramento della funzione SQL integrata ([SPARK-41231](https://issues.apache.org/jira/browse/SPARK-41231)).
+ Clausola IDENTIFIER ([SPARK-43205](https://issues.apache.org/jira/browse/SPARK-43205)).
+ Aggiungere funzioni SQL nelle API Scala, Python e R ([SPARK-43907](https://issues.apache.org/jira/browse/SPARK-43907)).
+ Aggiungere il supporto per argomenti denominati per le funzioni SQL ([SPARK-43922](https://issues.apache.org/jira/browse/SPARK-43922)).
+ Evitare la riesecuzione di attività non necessarie su una lista di esecutori disattivati se i dati shuffle vengono migrati ([SPARK-41469](https://issues.apache.org/jira/browse/SPARK-41469)).
+ ML distribuito <> spark connect ([SPARK-42471](https://issues.apache.org/jira/browse/SPARK-42471)).
+ DeepSpeed [distributore (SPARK-44264).](https://issues.apache.org/jira/browse/SPARK-44264)
+ Implementare il checkpoint del changelog per l'archivio di stato RockSDB ([SPARK-43421](https://issues.apache.org/jira/browse/SPARK-43421)).
+ Introdurre la propagazione delle filigrane tra gli operatori ([SPARK-42376](https://issues.apache.org/jira/browse/SPARK-42376)).
+ [Introduci dropDuplicatesWithin Watermark (SPARK-42931).](https://issues.apache.org/jira/browse/SPARK-42931)
+ Miglioramenti alla gestione della memoria del provider di archivi di stato RocksDB ([SPARK-43311](https://issues.apache.org/jira/browse/SPARK-43311)).

## Azioni per migrare alla versione 5.0 AWS Glue
<a name="migrating-version-50-actions"></a>

Per i processi esistenti, modifica la `Glue version` dalla versione precedente a `Glue 5.0` nella configurazione del processo.
+ In AWS Glue Studio, scegli `Glue 5.0 - Supports Spark 3.5.4, Scala 2, Python 3` in`Glue version`.
+ Nell'API, scegli **5.0** nel parametro `GlueVersion` nell'operazione API [https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-UpdateJob](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-UpdateJob).

Per i nuovi processi, scegli `Glue 5.0` al momento della creazione.
+ Nella console, scegli `Spark 3.5.4, Python 3 (Glue Version 5.0) or Spark 3.5.4, Scala 2 (Glue Version 5.0)` in `Glue version`.
+ In AWS Glue Studio, scegli `Glue 5.0 - Supports Spark 3.5.4, Scala 2, Python 3` in`Glue version`.
+ Nell'API, scegli **5.0** nel parametro `GlueVersion` nell'operazione API [https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-CreateJob](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-CreateJob).

Per visualizzare i log degli eventi di Spark della AWS Glue versione 5.0 della versione AWS Glue 2.0 o precedente, [avvia un server di cronologia Spark aggiornato per la AWS Glue versione 5.0](https://docs.aws.amazon.com/glue/latest/dg/monitor-spark-ui-history.html) utilizzando o Docker. CloudFormation 

## Elenco di controllo della migrazione
<a name="migrating-version-50-checklist"></a>

Rivedi questo elenco di controllo per la migrazione:
+ Aggiornamenti di Java 17
+ [Scala] Aggiorna le chiamate AWS SDK dalla v1 alla v2
+ Migrazione da Python 3.10 a 3.11
+ [Python] Aggiornare i riferimenti di avvio da 1.26 a 1.34

## AWS Glue Funzionalità 5.0
<a name="migrating-version-50-features"></a>

Questa sezione descrive AWS Glue le funzionalità in modo più dettagliato.

### Interrogazione dei cataloghi di dati dei metastore da ETL AWS Glue
<a name="migrating-version-50-features-metastore"></a>

Puoi registrare il tuo AWS Glue lavoro per accedere a AWS Glue Data Catalog, il che rende disponibili tabelle e altre risorse di metastore per diversi consumatori. Il Data Catalog supporta una gerarchia multicatalogo, che unifica tutti i dati nei data lake Amazon S3. Fornisce inoltre sia un'API del metastore Hive che un'API Apache Iceberg open source per l'accesso ai dati. Queste funzionalità sono disponibili per altri servizi orientati ai dati come Amazon EMR, Amazon Athena AWS Glue e Amazon Redshift.

Quando crei risorse nel Data Catalog, puoi accedervi da qualsiasi motore SQL che supporti l'API REST di Apache Iceberg. AWS Lake Formation gestisce le autorizzazioni. Dopo la configurazione, è possibile sfruttare le funzionalità AWS Glue di interrogazione di dati diversi interrogando queste risorse di metastore con applicazioni familiari. Queste includono Apache Spark e Trino.

#### Come sono organizzate le risorse dei metadati
<a name="migrating-version-50-features-metastore-organized"></a>

I dati sono organizzati in una gerarchia logica di cataloghi, database e tabelle, utilizzando: AWS Glue Data Catalog
+ Catalogo: un contenitore logico che contiene oggetti provenienti da un archivio dati, come schemi o tabelle.
+ Database: organizza oggetti di dati come tabelle e viste in un catalogo.
+ Tabelle e viste: oggetti di dati in un database che forniscono un livello di astrazione con uno schema comprensibile. Semplificano l'accesso ai dati sottostanti, che possono essere in vari formati e in varie posizioni.

## Migrazione da 4.0 a 5.0 AWS Glue AWS Glue
<a name="migrating-version-50-from-40"></a>

Tutti i parametri di lavoro e le funzionalità principali esistenti in AWS Glue 4.0 esisteranno nella AWS Glue versione 5.0, ad eccezione delle trasformazioni di machine learning.

Sono stati aggiunti i nuovi parametri seguenti:
+ `--enable-lakeformation-fine-grained-access`: abilita la funzionalità di controllo degli accessi a grana fine (FGAC) nelle tabelle di Lake Formation. AWS 

Consulta la documentazione relativa alla migrazione di Spark:
+ [Guida alla migrazione: Spark Core](https://spark.apache.org/docs/3.5.6/core-migration-guide.html)
+ [Guida alla migrazione: SQL, set di dati e DataFrame](https://spark.apache.org/docs/3.5.6/sql-migration-guide.html)
+ [Guida alla migrazione: streaming strutturato](https://spark.apache.org/docs/3.5.6/ss-migration-guide.html)
+ [Aggiornamento PySpark](https://spark.apache.org/docs/3.5.6/api/python/migration_guide/pyspark_upgrade.html)

## Migrazione da AWS Glue 3.0 a 5.0 AWS Glue
<a name="migrating-version-50-from-30"></a>

**Nota**  
Per le fasi di migrazione relative alla AWS Glue versione 4.0, consulta[Migrazione dalla 3.0 alla 4.0 AWS Glue AWS Glue](migrating-version-40.md#migrating-version-40-from-30).

Tutti i parametri di lavoro e le funzionalità principali esistenti nella AWS Glue versione 3.0 esisteranno nella AWS Glue versione 5.0, ad eccezione delle trasformazioni di apprendimento automatico.

## Migrazione da AWS Glue 2.0 a 5.0 AWS Glue
<a name="migrating-version-50-from-20"></a>

**Nota**  
Per i passaggi di migrazione relativi alla AWS Glue 4.0 e un elenco delle differenze di migrazione tra la AWS Glue versione 3.0 e 4.0, consulta[Migrazione dalla 3.0 alla 4.0 AWS Glue AWS Glue](migrating-version-40.md#migrating-version-40-from-30).

Tieni inoltre presente le seguenti differenze di migrazione tra AWS Glue le versioni 3.0 e 2.0:
+ Tutti i parametri di lavoro e le funzionalità principali esistenti nella AWS Glue versione 2.0 esisteranno nella AWS Glue versione 5.0, ad eccezione delle trasformazioni di apprendimento automatico.
+ Diverse modifiche di Spark da sole potrebbero richiedere la revisione degli script per garantire che non si faccia riferimento alle caratteristiche rimosse. Ad esempio, Spark 3.1.1 e versioni successive non abilitano Scala-Untyped UDFs ma Spark 2.4 li consente.
+ Python 2.7 non è supportato.
+ Qualsiasi jar aggiuntivo fornito nei job AWS Glue 2.0 esistenti può creare dipendenze in conflitto poiché sono stati effettuati aggiornamenti in diverse dipendenze. È possibile evitare conflitti di dipendenze con il parametro `--user-jars-first` del processo.
+ Modifiche al comportamento dei file in parquet con timestamp. loading/saving from/to Per ulteriori dettagli, consultare Aggiornamento da Spark SQL 3.0 a 3.1.
+ Diverso parallelismo delle attività Spark per la configurazione. driver/executor È possibile regolare il parallelismo delle attività passando l'argomento del processo `--executor-cores`.

## Modifiche al comportamento di registrazione nella versione 5.0 AWS Glue
<a name="enable-continous-logging-changes-glue-50"></a>

 Di seguito sono riportate le modifiche al comportamento di registrazione nella AWS Glue versione 5.0. Per ulteriori informazioni, vedere [Registrazione dei lavori](https://docs.aws.amazon.com/glue/latest/dg/monitor-continuous-logging.html). AWS Glue 
+  Tutti i log (log di sistema, log dei daemon Spark, log degli utenti e log di Glue Logger) vengono ora scritti nel gruppo di log `/aws-glue/jobs/error` per impostazione predefinita. 
+  Il gruppo di log `/aws-glue/jobs/logs-v2` utilizzato per la registrazione continua nelle versioni precedenti non viene più utilizzato. 
+  Non è più possibile rinominare o personalizzare i nomi dei gruppi di log o dei flussi di log utilizzando gli argomenti di registrazione continua rimossi. Consultate invece i nuovi argomenti relativi al lavoro nella AWS Glue versione 5.0. 

### Nella AWS Glue versione 5.0 vengono introdotti due nuovi argomenti relativi al lavoro
<a name="enable-continous-logging-new-arguments-glue-50"></a>
+  `––custom-logGroup-prefix`: consente di specificare un prefisso personalizzato per i gruppi di log `/aws-glue/jobs/error` e `/aws-glue/jobs/output`. 
+  `––custom-logStream-prefix`: consente di specificare un prefisso personalizzato per i nomi dei flussi di log all'interno dei gruppi di log. 

   Le regole e le limitazioni di convalida per i prefissi personalizzati includono: 
  +  L'intero nome del flusso di log deve contenere da 1 a 512 caratteri. 
  +  Il prefisso personalizzato per i nomi dei flussi di log è limitato a 400 caratteri. 
  +  I caratteri consentiti nei prefissi includono caratteri alfanumerici, caratteri di sottolineatura (`\$1`), trattini (`-`) e barre (`/`). 

### Argomenti di registrazione continua obsoleti nella versione 5.0 AWS Glue
<a name="enabling-continuous-logging-deprecated-arguments"></a>

 I seguenti argomenti di lavoro per la registrazione continua sono obsoleti nella versione 5.0 AWS Glue 
+  `––enable-continuous-cloudwatch-log` 
+  `––continuous-log-logGroup` 
+  `––continuous-log-logStreamPrefix` 
+  `––continuous-log-conversionPattern` 
+  `––enable-continuous-log-filter` 

## Migrazione di connettori e driver JDBC per 5.0 AWS Glue
<a name="migrating-version-50-connector-driver-migration"></a>

Per le versioni dei connettori JDBC e data lake che sono state aggiornate, consulta:
+ [Appendice B: aggiornamenti dei driver JDBC](#migrating-version-50-appendix-jdbc-driver)
+ [Appendice C: Aggiornamenti dei connettori](#migrating-version-50-appendix-connector)
+ [Appendice D: Aggiornamenti di formato a tabella aperta](#migrating-version-50-appendix-open-table-formats)

Le seguenti modifiche si applicano alle versioni dei connettori o dei driver identificate nelle appendici di Glue 5.0.

**Amazon Redshift**  
Nota le seguenti modifiche:
+ Aggiunge il supporto per i nomi di tabella in tre parti per consentire al connettore di interrogare le tabelle di condivisione dei dati di Redshift.
+ Corregge la mappatura di Spark `ShortType` per utilizzare Redshift `SMALLINT` anziché `INTEGER` per adattarla meglio alla dimensione prevista dei dati.
+ È stato aggiunto il supporto per Custom Cluster Names (CNAME) per Amazon Redshift serverless.

**Apache Hudi**  
Nota le seguenti modifiche:
+ Supporta l'indice di livello record.
+ Supporta la generazione automatica di chiavi di registrazione. Ora non è necessario specificare il campo della chiave di registrazione.

**Apache Iceberg**  
Nota le seguenti modifiche:
+ Supporta il controllo granulare degli accessi con. AWS Lake Formation
+ Supporta la ramificazione e il tagging, che sono riferimenti denominati a snapshot con cicli di vita indipendenti.
+ È stata aggiunta una procedura di visualizzazione del registro delle modifiche che genera una vista che contiene le modifiche apportate a una tabella in un periodo specificato o tra snapshot specifici.

**Delta Lake**  
Nota le seguenti modifiche:
+ Supporta Delta Universal Format (UniForm) che consente un accesso senza interruzioni tramite Apache Iceberg e Apache Hudi.
+ Supporta i vettori di cancellazione che implementano un Merge-on-Read paradigma.

**AzureCosmos**  
Nota le seguenti modifiche:
+ È stato aggiunto il supporto per chiavi di partizione gerarchiche.
+ È stata aggiunta l'opzione per utilizzare lo schema personalizzato con StringType (raw json) per una proprietà annidata.
+ È stata aggiunta l'opzione di configurazione `spark.cosmos.auth.aad.clientCertPemBase64` per consentire l'utilizzo dell'autenticazione SPN (ServicePrincipal nome) con certificato anziché il segreto del client.

Per ulteriori informazioni, consulta il [registro delle modifiche del connettore Azure Cosmos DB Spark](https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/cosmos/azure-cosmos-spark_3-2_2-12/CHANGELOG.md).

**Microsoft SQL Server**  
Nota le seguenti modifiche:
+ La crittografia TLS è abilita per impostazione predefinita.
+ Quando encrypt = false ma il server richiede la crittografia, il certificato viene convalidato in base all'impostazione della connessione `trustServerCertificate`.
+ `aadSecurePrincipalId` e `aadSecurePrincipalSecret` resi obsoleti.
+ `getAADSecretPrincipalId` API rimossa.
+ È stata aggiunta la risoluzione CNAME quando viene specificato il realm.

**MongoDB**  
Nota le seguenti modifiche:
+ Supporto per la modalità micro-batch con Spark Structured Streaming.
+ Supporto per i tipi di dati BSON.
+ È stato aggiunto il supporto per la lettura di più raccolte quando si utilizzano modalità di streaming micro-batch o continuo.
  + Se il nome di una raccolta utilizzata nell'opzione di configurazione `collection` contiene una virgola, Spark Connector la considera come due raccolte diverse. Per risolvere questo problema, è necessario evitare la virgola facendola precedere da una barra rovesciata (\$1).
  + Se il nome di una raccolta utilizzata nell'opzione di `collection` configurazione è “\$1”, Spark Connector la interpreta come una specifica per la scansione di tutte le raccolte. Per risolvere questo problema, è necessario evitare l'asterisco facendolo precedere da una barra rovesciata (\$1).
  + Se il nome di una raccolta utilizzata nell'opzione di configurazione `collection` contiene una barra rovesciata (\$1), Spark Connector considera la barra rovesciata come un carattere di escape, il che potrebbe cambiare il modo in cui interpreta il valore. Per risolvere questo problema, è necessario evitare la barra rovesciata facendola precedere da un'altra barra rovesciata.

Per ulteriori informazioni, consultare il [connettore MongoDB per le note di rilascio di Spark](https://www.mongodb.com/docs/spark-connector/current/release-notes/).

**Snowflake**  
Nota le seguenti modifiche:
+ È stato introdotto un nuovo parametro `trim_space` che è possibile utilizzare per rifinire automaticamente i valori delle colonne `StringType` durante il salvataggio in una tabella Snowflake. Default: `false`.
+ Per impostazione predefinita, il parametro `abort_detached_query` è stato disabilitato a livello di sessione.
+ È stato rimosso il requisito del parametro `SFUSER` quando si utilizza OAUTH.
+ È stata rimossa la funzionalità Advanced Query Pushdown. Sono disponibili alternative alla funzionalità. Ad esempio, anziché caricare i dati dalle tabelle Snowflake, gli utenti possono caricare direttamente i dati dalle query SQL di Snowflake.

Per ulteriori informazioni, consultare il [connettore Snowflake per le note di rilascio di Spark](https://docs.snowflake.com/en/release-notes/clients-drivers/spark-connector-2024).

### Appendice A: Aggiornamenti importanti delle dipendenze
<a name="migrating-version-50-appendix-dependencies"></a>

Di seguito sono riportati gli aggiornamenti delle dipendenze:


| Dipendenza | Versione 5.0 AWS Glue  | Versione in AWS Glue 4.0 | Versione in AWS Glue 3.0 | Versione in AWS Glue 2.0 | Versione in AWS Glue 1.0 | 
| --- | --- | --- | --- | --- | --- | 
| Java | 17 | 8 | 8 | 8 | 8 | 
| Spark | 3.5.4 | 3.3.0-amzn-1 | 3.1.1-amzn-0 | 2.4.3 | 2.4.3 | 
| Hadoop | 3.4.1 | 3.3.3-amzn-0 | 3.2.1-amzn-3 | 2.8.5-amzn-5 | 2.8.5-amzn-1 | 
| Scala | 2,12,18 | 2,12 | 2,12 | 2.11 | 2.11 | 
| Jackson | 2,15,2 | 2,12 | 2,12 | 2.11 | 2.11 | 
| Hive | 2.3.9-amzn-4 | 2.3.9-amzn-2 | 2.3.7-amzn-4 | 1.2 | 1.2 | 
| EMRFS | 2,69,0 | 2,54,0 | 2,46,0 | 2.38.0 | 2.30.0 | 
| Json4s | 3.7.0-M11 | 3.7.0-M11 | 36.6 | 3.5.x | 3.5.x | 
| Arrow | 12,0,1 | 7,0,0 | 2.0.0 | 0.10.0 | 0.10.0 | 
| AWS Glue Client Data Catalog | 4.5.0 | 3.7.0 | 3.0.0 | 1.10.0 | N/D | 
| AWS SDK per Java | 2.29.52 | 1.12 | 1.12 |  |  | 
| Python | 3,11 | 3,10 | 3.7 | 2.7 e 3.6 | 2.7 e 3.6 | 
| Boto | 1,34,131 | 1,26 | 1,18 | 1.12 | N/D | 
| Connettore EMR DynamoDB | 5.6.0 | 4,16,0 |  |  |  | 

### Appendice B: aggiornamenti dei driver JDBC
<a name="migrating-version-50-appendix-jdbc-driver"></a>

Di seguito sono riportati gli aggiornamenti dei driver JDBC:


| Driver | Versione del driver JDBC nella versione 5.0 AWS Glue  | Versione del driver JDBC nella versione 4.0 AWS Glue  | Versione del driver JDBC nella versione 3.0 AWS Glue  | Versione del driver JDBC nelle versioni precedenti AWS Glue  | 
| --- | --- | --- | --- | --- | 
| MySQL | 8.0.33 | 8.0.23 | 8.0.23 | 5.1 | 
| Microsoft SQL Server | 10,2,0 | 9,40 | 7,0,0 | 6.1,0 | 
| Database Oracle | 23,3,023,09 | 21,7 | 21,1 | 11.2 | 
| PostgreSQL | 42,7,3 | 42,36 | 4,2,18 | 42,1,0 | 
| Amazon Redshift |  redshift-jdbc42-2.1.0.29  |  redshift-jdbc42-2.1.0.16  |  redshift-jdbc41-1.2.12.1017   |  redshift-jdbc41-1.2.12.1017   | 
| SAP Hana | 2,20,17 | 2,17,12 |  |  | 
| Teradata | 20,00,00,33 | 20,00,00,06 |  |  | 

### Appendice C: Aggiornamenti dei connettori
<a name="migrating-version-50-appendix-connector"></a>

Di seguito sono riportati gli aggiornamenti dei connettori:


| Driver | Versione del connettore in 5.0 AWS Glue  | Versione del connettore in AWS Glue 4.0 | Versione del connettore in AWS Glue 3.0 | 
| --- | --- | --- | --- | 
| Connettore EMR DynamoDB | 5.6.0 | 4.16.0 |  | 
| Amazon Redshift | 64,0 | 6.1.3 |  | 
| OpenSearch | 1.2.0 | 1.0.1 |  | 
| MongoDB | 10.3,0 | 10.0.4 | 3.0.0 | 
| Snowflake | 3.0.0 | 2.12.0 |  | 
| Google BigQuery | 0.32.2 | 0,32,2 |  | 
| AzureCosmos | 4,33,0 | 42,0 |  | 
| AzureSQL | 1.3.0 | 1.3.0 |  | 
| Vertica | 33,5 | 3.3.5 |  | 

### Appendice D: Aggiornamenti di formato a tabella aperta
<a name="migrating-version-50-appendix-open-table-formats"></a>

Di seguito sono riportati gli aggiornamenti di formato a tabella aperta:


| OTF | Versione del connettore nella versione 5.0 AWS Glue  | Versione del connettore in AWS Glue 4.0 | Versione del connettore in AWS Glue 3.0 | 
| --- | --- | --- | --- | 
| Hudi | 0.15.0 | 0.12.1 | 0,10,1 | 
| Delta Lake | 3.3.0 | 2.1.0 | 1.0.0 | 
| Iceberg | 1.7.1 | 1.0.0 | 0.13.1 | 

# Migrazione AWS Glue per i job Spark alla versione 4.0 AWS Glue
<a name="migrating-version-40"></a>

Questo argomento descrive le modifiche tra AWS Glue le versioni 0.9, 1.0, 2.0 e 3.0 per consentire la migrazione delle applicazioni Spark e dei lavori ETL alla 4.0. AWS Glue Descrive inoltre le funzionalità della AWS Glue versione 4.0 e i vantaggi del suo utilizzo. 

Per utilizzare questa funzionalità con i tuoi lavori AWS Glue ETL, scegli `Glue version` quando **4.0** crei i tuoi lavori.

**Topics**
+ [Nuove caratteristiche supportate](#migrating-version-40-features)
+ [Azioni AWS Glue per migrare alla versione 4.0](#migrating-version-40-actions)
+ [Elenco di controllo della migrazione](#migrating-version-40-checklist)
+ [Migrazione dalla 3.0 alla 4.0 AWS Glue AWS Glue](#migrating-version-40-from-30)
+ [Migrazione da 2.0 a 4.0 AWS Glue AWS Glue](#migrating-version-40-from-20)
+ [Migrazione da AWS Glue 1.0 a 4.0 AWS Glue](#migrating-version-40-from-10)
+ [Migrazione da 0.9 a 4.0 AWS Glue AWS Glue](#migrating-version-40-from-09)
+ [Migrazione di connettori e driver JDBC per 4.0 AWS Glue](#migrating-version-40-connector-driver-migration)
+ [Appendice A: Aggiornamenti importanti delle dipendenze](#migrating-version-40-appendix-dependencies)
+ [Appendice B: aggiornamenti dei driver JDBC](#migrating-version-40-appendix-jdbc-driver)
+ [Appendice C: Aggiornamenti dei connettori](#migrating-version-40-appendix-connector)

## Nuove caratteristiche supportate
<a name="migrating-version-40-features"></a>

Questa sezione descrive le nuove funzionalità e i vantaggi della AWS Glue versione 4.0.
+ Si basa su Apache Spark 3.3.0, ma presenta ottimizzazioni in AWS Glue e Amazon EMR, come esecuzioni adattive delle query, lettori vettorizzati e shuffle e coalescenza delle partizioni ottimizzati. 
+ Driver JDBC aggiornati per tutte le fonti AWS Glue native tra cui MySQL, Microsoft SQL Server, Oracle, PostgreSQL, MongoDB e le librerie e dipendenze Spark aggiornate introdotte da Spark 3.3.0.
+ Aggiornato con un nuovo connettore Amazon Redshift e driver JDBC.
+ Accesso Amazon S3 ottimizzato con EMRFS aggiornato e committer di output ottimizzati per Amazon S3 abilitati per impostazione predefinita.
+ Accesso ottimizzato al catalogo dati con indici delle partizioni, predicati pushdown, elenco delle partizioni e un client metastore Hive aggiornato.
+ Integrazione con Lake Formation per tabelle di catalogo governate con filtraggio a livello di cella e transazioni data lake.
+ Ridotta la latenza di avvio per migliorare i tempi complessivi di completamento dei processi e dell'interattività.
+ I processi Spark vengono fatturati in incrementi di 1 secondo con una durata minima di fatturazione 10 volte inferiore, da un minimo di 10 minuti a un minimo di 1 minuto.
+ Supporto nativo per framework open data lake con Apache Hudi, Delta Lake e Apache Iceberg.
+ Supporto nativo per il Cloud Shuffle Storage Plugin basato su Amazon S3 (un plug-in Apache Spark) per utilizzare Amazon S3 per lo shuffling e la capacità di archiviazione elastica.

**Miglioramenti principali da Spark 3.1.1 a Spark 3.3.0**  
Nota i seguenti miglioramenti:
+ Filtraggio di runtime a livello di riga ([SPARK-32268](https://issues.apache.org/jira/browse/SPARK-32268)).
+ Miglioramenti ANSI ([SPARK-38860](https://issues.apache.org/jira/browse/SPARK-38860)).
+ Miglioramenti ai messaggi di errore ([SPARK-38781](https://issues.apache.org/jira/browse/SPARK-38781)).
+ Supporto dei tipi complessi per il lettore vettorializzato Parquet ([SPARK-34863](https://issues.apache.org/jira/browse/SPARK-34863)).
+ Supporto di metadati di file nascosti per Spark SQL ([SPARK-37273](https://issues.apache.org/jira/browse/SPARK-37273)).
+ Fornisci [un](https://issues.apache.org/jira/browse/SPARK-37443) profiler per Python/Pandas UDFs (SPARK-37443).
+ Presenta Trigger. AvailableNow [per eseguire query di streaming come Trigger.Once in più batch (SPARK-36533).](https://issues.apache.org/jira/browse/SPARK-36533)
+ Funzionalità di pushdown Datasource V2 più complete ([SPARK-38788](https://issues.apache.org/jira/browse/SPARK-38788)).
+ Migrazione da log4j 1 a log4j 2 ([SPARK-37814](https://issues.apache.org/jira/browse/SPARK-37814)).

**Altre modifiche importanti**  
Nota le seguenti modifiche:
+ Modifiche importanti
  + [Elimina i riferimenti al supporto per Python 3.6 nei documenti e Python/docs (SPARK-36977).](https://issues.apache.org/jira/browse/SPARK-36977)
  + Rimuove l'hack di tuple specificate sostituendo il pickle integrato con cloudpickle ([SPARK-32079](https://issues.apache.org/jira/browse/SPARK-32079)).
  + Porta la versione minima di Pandas a 1.0.5 ([SPARK-37465](https://issues.apache.org/jira/browse/SPARK-37465)).

## Azioni AWS Glue per migrare alla versione 4.0
<a name="migrating-version-40-actions"></a>

Per i processi esistenti, modifica la `Glue version` dalla versione precedente a `Glue 4.0` nella configurazione del processo.
+ In AWS Glue Studio, scegli `Glue 4.0 - Supports Spark 3.3, Scala 2, Python 3` in`Glue version`.
+ Nell'API, scegli **4.0** nel parametro `GlueVersion` nell'operazione API [https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-UpdateJob](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-UpdateJob).

Per i nuovi processi, scegli `Glue 4.0` al momento della creazione.
+ Nella console, scegli `Spark 3.3, Python 3 (Glue Version 4.0) or Spark 3.3, Scala 2 (Glue Version 3.0)` in `Glue version`.
+ In AWS Glue Studio, scegli `Glue 4.0 - Supports Spark 3.3, Scala 2, Python 3` in`Glue version`.
+ Nell'API, scegli **4.0** nel parametro `GlueVersion` nell'operazione API [https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-CreateJob](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-CreateJob).

Per visualizzare i registri degli eventi di Spark della AWS Glue versione 4.0 della versione AWS Glue 2.0 o precedente, [avvia un server di cronologia Spark aggiornato per AWS Glue 4.0](https://docs.aws.amazon.com/glue/latest/dg/monitor-spark-ui-history.html) utilizzando o Docker. CloudFormation 

## Elenco di controllo della migrazione
<a name="migrating-version-40-checklist"></a>
+ Le librerie Python esterne del processo dipendono da Python 2.7/3.6?
  + Aggiorna le librerie dipendenti da Python 2.7/3.6 a Python 3.10, poiché Spark 3.3.0 ha rimosso il supporto per Python 2.7 e 3.6.

## Migrazione dalla 3.0 alla 4.0 AWS Glue AWS Glue
<a name="migrating-version-40-from-30"></a>

Nota le seguenti modifiche durante la migrazione:
+ Tutti i parametri di lavoro e le funzionalità principali esistenti nella AWS Glue versione 3.0 esisteranno nella AWS Glue versione 4.0.
+ AWS Glue 3.0 utilizza Spark 3.1.1 ottimizzato per Amazon EMR e 4.0 AWS Glue utilizza Spark 3.3.0 ottimizzato per Amazon EMR.

  Diverse modifiche di Spark da sole potrebbero richiedere la revisione degli script per garantire che non si faccia riferimento alle funzionalità rimosse.
+ AWS Glue 4.0 include anche un aggiornamento a EMRFS e Hadoop. Per la versione specifica, consulta [Appendice A: Aggiornamenti importanti delle dipendenze](#migrating-version-40-appendix-dependencies).
+ L' AWS SDK fornito nei job ETL è ora aggiornato da 1.11 a 1.12.
+ Tutti i processi Python utilizzeranno la versione 3.10 di Python. In precedenza, Python 3.7 veniva utilizzato nella 3.0. AWS Glue 

  Di conseguenza, alcuni pymodules forniti out-of-the-box da AWS Glue vengono aggiornati.
+ Log4j è stato aggiornato a Log4j2.
  + Per informazioni sul percorso di migrazione di Log4j2, consulta la [documentazione di Log4j](https://logging.apache.org/log4j/2.x/manual/migration.html#Log4j2API).
  + È invece necessario rinominare qualsiasi file log4j.properties personalizzato come file log4j2.properties, con le proprietà log4j2 appropriate.
+ Per la migrazione di connettori specifici, consulta [Migrazione di connettori e driver JDBC per 4.0 AWS Glue](#migrating-version-40-connector-driver-migration).
+ L' AWS Encryption SDK viene aggiornato da 1.x a 2.x. AWS Glue sono interessati i lavori che utilizzano configurazioni AWS Glue di sicurezza e i lavori dipendenti dalla dipendenza di AWS Encryption SDK fornita in fase di esecuzione. Consulta le istruzioni per AWS Glue la migrazione dei job.

  È possibile aggiornare in sicurezza un lavoro AWS Glue 2.0/3.0 a un lavoro AWS Glue 4.0 perché AWS Glue 2.0/3.0 contiene già la versione bridge AWS Encryption SDK.

Consulta la documentazione relativa alla migrazione di Spark:
+ [Aggiornamento da Spark SQL 3.1 a 3.2](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-31-to-32)
+ [Aggiornamento da Spark SQL 3.2 a 3.3](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-32-to-33)

## Migrazione da 2.0 a 4.0 AWS Glue AWS Glue
<a name="migrating-version-40-from-20"></a>

Nota le seguenti modifiche durante la migrazione:

**Nota**  
Per i passaggi di migrazione relativi alla AWS Glue versione 3.0, consulta[Migrazione dalla 3.0 alla 4.0 AWS Glue AWS Glue](#migrating-version-40-from-30).
+ Tutti i parametri di lavoro e le funzionalità principali esistenti nella AWS Glue versione 2.0 esisteranno nella AWS Glue versione 4.0.
+ Il committer ottimizzato per EMRFS S3 per la scrittura di dati Parquet in Amazon S3 è abilitato per impostazione predefinita dalla versione 3.0. AWS Glue Tuttavia, puoi disabilitarlo impostando `--enable-s3-parquet-optimized-committer` a `false`.
+ AWS Glue 2.0 utilizza Spark 2.4 open source e AWS Glue 4.0 utilizza Spark 3.3.0 ottimizzato per Amazon EMR.
  + Diverse modifiche di Spark da sole potrebbero richiedere la revisione degli script per garantire che non si faccia riferimento alle funzionalità rimosse.
  + Ad esempio, Spark 3.3.0 non abilita UDFs Scala-untyped, ma Spark 2.4 li consente.
+ L' AWS SDK fornito nei job ETL è ora aggiornato da 1.11 a 1.12.
+ AWS Glue 4.0 include anche un aggiornamento a EMRFS, driver JDBC aggiornati e inclusioni di ottimizzazioni aggiuntive su Spark stesso fornite da. AWS Glue
+ Scala è stato aggiornato da 2.11 a 2.12 e Scala 2.12 non è compatibile con Scala 2.11.
+ Python 3.10 è la versione predefinita utilizzata per gli script Python mentre AWS Glue 2.0 utilizzava solo Python 3.7 e 2.7.
  + Python 2.7 non è supportato con Spark 3.3.0. Qualsiasi lavoro che richieda Python 2 nella configurazione del lavoro avrà esito negativo con un. IllegalArgumentException
  + Un nuovo meccanismo di installazione di moduli Python aggiuntivi è disponibile a partire dalla AWS Glue versione 2.0.
+ Diversi aggiornamenti delle dipendenze, evidenziati in [Appendice A: Aggiornamenti importanti delle dipendenze](#migrating-version-40-appendix-dependencies).
+ Qualsiasi file JAR aggiuntivo fornito nei job AWS Glue 2.0 esistenti potrebbe creare dipendenze in conflitto perché sono stati effettuati aggiornamenti in diverse dipendenze dalla versione 4.0 alla 2.0. È possibile evitare conflitti tra percorsi di classe nella AWS Glue versione 4.0 con il parametro job. `--user-jars-first` AWS Glue 
+ AWS Glue 4.0 utilizza Spark 3.3. A partire da Spark 3.1, c'è stato un cambiamento nel comportamento dei file loading/saving di parquet timestamps from/to . Per ulteriori dettagli, consulta [Aggiornamento da Spark SQL 3.0 a 3.1](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-30-to-31).

  Si consiglia di impostare i seguenti parametri quando si tratta di dati che contengono reading/writing colonne con timestamp. L'impostazione di questi parametri può risolvere il problema di incompatibilità del calendario che si verifica durante l'aggiornamento da Spark 2 a Spark 3, sia per AWS Glue Dynamic Frame che per Spark Data Frame. Utilizzare l'opzione CORRECTED per leggere il valore datetime così com'è e l'opzione LEGACY per cambiare la base dei valori datetime in relazione alla differenza di calendario durante la lettura.

  ```
  - Key: --conf
  - Value: spark.sql.legacy.parquet.int96RebaseModeInRead=[CORRECTED|LEGACY] --conf spark.sql.legacy.parquet.int96RebaseModeInWrite=[CORRECTED|LEGACY] --conf spark.sql.legacy.parquet.datetimeRebaseModeInRead=[CORRECTED|LEGACY]
  ```
+ Per la migrazione di connettori specifici, consulta [Migrazione di connettori e driver JDBC per 4.0 AWS Glue](#migrating-version-40-connector-driver-migration).
+ L' AWS Encryption SDK viene aggiornato da 1.x a 2.x. AWS Glue sono interessati i lavori che utilizzano configurazioni AWS Glue di sicurezza e i lavori dipendenti dalla dipendenza di AWS Encryption SDK fornita in fase di esecuzione. Consulta queste istruzioni per AWS Glue la migrazione dei job:
  + È possibile aggiornare in sicurezza un lavoro AWS Glue 2.0 a un lavoro AWS Glue 4.0 perché la versione AWS Glue 2.0 contiene già la versione bridge AWS Encryption SDK.

Consulta la documentazione relativa alla migrazione di Spark:
+ [Aggiornamento da Spark SQL 2.4 a 3.0](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-24-to-30)
+ [Aggiornamento da Spark SQL 3.1 a 3.2](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-31-to-32)
+ [Aggiornamento da Spark SQL 3.2 a 3.3](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-32-to-33)
+ [Cambiamenti nel comportamento di Datetime previsti da Spark 3.0.](https://issues.apache.org/jira/browse/SPARK-31408)

## Migrazione da AWS Glue 1.0 a 4.0 AWS Glue
<a name="migrating-version-40-from-10"></a>

Nota le seguenti modifiche durante la migrazione:
+ AWS Glue 1.0 utilizza Spark 2.4 e AWS Glue 4.0 open source utilizza Spark 3.3.0 ottimizzato per Amazon EMR.
  + Diverse modifiche di Spark da sole potrebbero richiedere la revisione degli script per garantire che non si faccia riferimento alle funzionalità rimosse.
  + Ad esempio, Spark 3.3.0 non abilita UDFs Scala-untyped, ma Spark 2.4 li consente.
+ Tutti i job della AWS Glue versione 4.0 verranno eseguiti con tempi di avvio notevolmente migliorati. I processi Spark verranno fatturati in incrementi di 1 secondo con una durata minima di fatturazione 10 volte inferiore poiché la latenza di avvio passerà da un massimo di 10 minuti a un massimo di 1 minuto.
+ Il comportamento di registrazione è cambiato in modo significativo nella AWS Glue versione 4.0, Spark 3.3.0 ha un requisito minimo di Log4j2.
+ Diversi aggiornamenti delle dipendenze, descritti nell'appendice.
+ Scala è stato inoltre aggiornato da 2.11 a 2.12 e Scala 2.12 non è compatibile con Scala 2.11.
+ Python 3.10 è anche la versione di predefinita utilizzata per gli script Python, mentre AWS Glue 0.9 utilizzava solo Python 2.

  Python 2.7 non è supportato con Spark 3.3.0. Qualsiasi lavoro che richieda Python 2 nella configurazione del lavoro avrà esito negativo con un. IllegalArgumentException
+ Un nuovo meccanismo di installazione di moduli Python aggiuntivi tramite pip è disponibile dalla versione 2.0. AWS Glue Per ulteriori informazioni, consulta [Installazione di moduli Python aggiuntivi con pip in AWS Glue 2.0\$1](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-libraries.html#addl-python-modules-support).
+ AWS Glue 4.0 non funziona su Apache YARN, quindi le impostazioni YARN non si applicano.
+ AWS Glue 4.0 non dispone di un Hadoop Distributed File System (HDFS).
+ Qualsiasi file JAR aggiuntivo fornito nei job AWS Glue 1.0 esistenti potrebbe creare dipendenze in conflitto perché nella versione 4.0 sono stati effettuati aggiornamenti in diverse dipendenze dalla versione 1.0. Per evitare questo problema, abilitiamo la AWS Glue versione 4.0 con il parametro `--user-jars-first` AWS Glue job di default.
+ AWS Glue 4.0 supporta il ridimensionamento automatico. Pertanto, la ExecutorAllocationManager metrica sarà disponibile quando la scalabilità automatica è abilitata.
+ Nei lavori della AWS Glue versione 4.0, si specifica il numero di lavoratori e il tipo di lavoratore, ma non si specifica a. `maxCapacity`
+ AWS Glue La versione 4.0 non supporta ancora le trasformazioni dell'apprendimento automatico.
+ Per la migrazione di connettori specifici, consulta [Migrazione di connettori e driver JDBC per 4.0 AWS Glue](#migrating-version-40-connector-driver-migration).
+ L' AWS Encryption SDK viene aggiornato da 1.x a 2.x. AWS Glue sono interessati i lavori che utilizzano configurazioni AWS Glue di sicurezza e i lavori dipendenti dalla dipendenza di AWS Encryption SDK fornita in fase di esecuzione. Consulta queste istruzioni per AWS Glue la migrazione dei job.
  + Non è possibile migrare direttamente un lavoro da AWS Glue 0,9/1,0 a un lavoro AWS Glue 4.0. Questo perché quando si esegue l'aggiornamento diretto alla versione 2.x o successiva e si abilitano immediatamente tutte le nuove funzionalità, AWS Encryption SDK non sarà in grado di decrittografare il testo cifrato crittografato con le versioni precedenti di Encryption SDK. AWS 
  + Per un aggiornamento sicuro, consigliamo innanzitutto di migrare a un AWS Glue job 2.0/3.0 che contenga la versione bridge di Encryption SDK. AWS Esegui il processo una volta per utilizzare la versione bridge Encryption SDK AWS .
  + Al termine, è possibile migrare in sicurezza il job AWS Glue 2.0/3.0 a 4.0. AWS Glue 

Consulta la documentazione relativa alla migrazione di Spark:
+ [Aggiornamento da Spark SQL 2.4 a 3.0](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-24-to-30)
+ [Aggiornamento da Spark SQL 3.0 a 3.1](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-30-to-31)
+ [Aggiornamento da Spark SQL 3.1 a 3.2](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-31-to-32)
+ [Aggiornamento da Spark SQL 3.2 a 3.3](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-32-to-33)
+ [Cambiamenti nel comportamento di Datetime previsti da Spark 3.0.](https://issues.apache.org/jira/browse/SPARK-31408)

## Migrazione da 0.9 a 4.0 AWS Glue AWS Glue
<a name="migrating-version-40-from-09"></a>

Nota le seguenti modifiche durante la migrazione:
+ AWS Glue 0.9 utilizza Spark 2.2.1 e 4.0 open source AWS Glue utilizza Spark 3.3.0 ottimizzato per Amazon EMR.
  + Diverse modifiche di Spark da sole potrebbero richiedere la revisione degli script per garantire che non si faccia riferimento alle funzionalità rimosse.
  + Ad esempio, Spark 3.3.0 non abilita Scala-untyped, ma Spark 2.2 li consente. UDFs
+ Tutti i job della AWS Glue versione 4.0 verranno eseguiti con tempi di avvio notevolmente migliorati. I processi Spark verranno fatturati in incrementi di 1 secondo con una durata minima di fatturazione 10 volte inferiore poiché la latenza di avvio passerà da un massimo di 10 minuti a un massimo di 1 minuto.
+ Il comportamento di registrazione è cambiato in modo significativo rispetto alla AWS Glue versione 4.0, Spark 3.3.0 ha un requisito minimo di Log4j2 come indicato qui (\$1 -32-to-33). https://spark.apache.org/docs/latest/core-migration-guide.html upgrading-from-core
+ Diversi aggiornamenti delle dipendenze, descritti nell'appendice.
+ Scala è stato inoltre aggiornato da 2.11 a 2.12 e Scala 2.12 non è compatibile con Scala 2.11.
+ Python 3.10 è anche la versione di predefinita utilizzata per gli script Python, mentre AWS Glue 0.9 utilizzava solo Python 2.
  + Python 2.7 non è supportato con Spark 3.3.0. Qualsiasi lavoro che richieda Python 2 nella configurazione del lavoro avrà esito negativo con un. IllegalArgumentException
  + È disponibile un nuovo meccanismo di installazione di moduli Python aggiuntivi tramite pip.
+ AWS Glue 4.0 non funziona su Apache YARN, quindi le impostazioni YARN non si applicano.
+ AWS Glue 4.0 non dispone di un Hadoop Distributed File System (HDFS).
+ Qualsiasi file JAR aggiuntivo fornito nei job AWS Glue 0.9 esistenti potrebbe creare dipendenze in conflitto perché nella versione 3.0 sono stati effettuati aggiornamenti in diverse dipendenze dalla versione 0.9. È possibile evitare conflitti tra percorsi di classe nella AWS Glue versione 3.0 con il parametro job. `--user-jars-first` AWS Glue 
+ AWS Glue 4.0 supporta il ridimensionamento automatico. Pertanto, la ExecutorAllocationManager metrica sarà disponibile quando la scalabilità automatica è abilitata.
+ Nei lavori della AWS Glue versione 4.0, si specifica il numero di lavoratori e il tipo di lavoratore, ma non si specifica a. `maxCapacity`
+ AWS Glue La versione 4.0 non supporta ancora le trasformazioni dell'apprendimento automatico.
+ Per la migrazione di connettori specifici, consulta [Migrazione di connettori e driver JDBC per 4.0 AWS Glue](#migrating-version-40-connector-driver-migration).
+ L' AWS Encryption SDK viene aggiornato da 1.x a 2.x. AWS Glue sono interessati i lavori che utilizzano configurazioni AWS Glue di sicurezza e i lavori dipendenti dalla dipendenza di AWS Encryption SDK fornita in fase di esecuzione. Consulta queste istruzioni per AWS Glue la migrazione dei job.
  + Non è possibile migrare direttamente un lavoro da AWS Glue 0,9/1,0 a un lavoro AWS Glue 4.0. Questo perché quando si esegue l'aggiornamento diretto alla versione 2.x o successiva e si abilitano immediatamente tutte le nuove funzionalità, AWS Encryption SDK non sarà in grado di decrittografare il testo cifrato crittografato con le versioni precedenti di Encryption SDK. AWS 
  + Per un aggiornamento sicuro, consigliamo innanzitutto di migrare a un AWS Glue job 2.0/3.0 che contenga la versione bridge di Encryption SDK. AWS Esegui il processo una volta per utilizzare la versione bridge Encryption SDK AWS .
  + Al termine, è possibile migrare in sicurezza il job AWS Glue 2.0/3.0 a 4.0. AWS Glue 

Consulta la documentazione relativa alla migrazione di Spark:
+ [Aggiornamento da Spark SQL 2.2 a 2.3](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-22-to-23)
+ [Aggiornamento da Spark SQL 2.3 a 2.4](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-23-to-24)
+ [Aggiornamento da Spark SQL 2.4 a 3.0](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-24-to-30)
+ [Aggiornamento da Spark SQL 3.0 a 3.1](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-30-to-31)
+ [Aggiornamento da Spark SQL 3.1 a 3.2](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-31-to-32)
+ [Aggiornamento da Spark SQL 3.2 a 3.3](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-32-to-33)
+ [Cambiamenti nel comportamento di Datetime previsti da Spark 3.0.](https://issues.apache.org/jira/browse/SPARK-31408)

## Migrazione di connettori e driver JDBC per 4.0 AWS Glue
<a name="migrating-version-40-connector-driver-migration"></a>

Per le versioni dei connettori JDBC e data lake che sono state aggiornate, consulta:
+ [Appendice B: aggiornamenti dei driver JDBC](#migrating-version-40-appendix-jdbc-driver)
+ [Appendice C: Aggiornamenti dei connettori](#migrating-version-40-appendix-connector)

### Hudi
<a name="migrating-version-40-connector-driver-migration-hudi"></a>
+ Miglioramenti al supporto Spark SQL:
  + Tramite il comando `Call Procedure`, viene aggiunto il supporto per l'aggiornamento, il downgrade, il bootstrap, la pulizia e la riparazione. In Spark SQL è possibile utilizzare la sintassi `Create/Drop/Show/Refresh Index`.
  + È stato colmato un divario di prestazioni tra l'utilizzo tramite Spark DataSource e Spark SQL. Le scritture di Datasource in passato erano più veloci di SQL.
  + Tutti i generatori di chiavi integrati implementano operazioni API specifiche di Spark più performanti.
  + Ha sostituito la trasformazione UDF nelle `insert` operazioni di massa con le trasformazioni RDD per ridurre i costi di utilizzo. SerDe
  + Spark SQL con Hudi richiede la specifica di una `primaryKey` da parte di `tblproperites` o più opzioni nell'istruzione SQL. Per le operazioni di aggiornamento ed eliminazione, è necessario anche `preCombineField`.
+ Qualsiasi tabella Hudi creata prima della versione 0.10.0 senza una `primaryKey` deve essere creata nuovamente con un campo `primaryKey` a partire dalla versione 0.10.0.

### PostgreSQL
<a name="migrating-version-40-connector-driver-migration-postgresql"></a>
+ Sono state risolte diverse vulnerabilità (). CVEs
+ Java 8 è supportato in modo nativo.
+ Se il processo utilizza array di array, ad eccezione degli array di byte, questo scenario può essere trattato come array multidimensionali.

### MongoDB
<a name="migrating-version-40-connector-driver-migration-mongodb"></a>
+ Il connettore MongoDB corrente supporta Spark versione 3.1 o versione successiva e MongoDB versione 4.0 o successiva.
+ A causa dell'aggiornamento del connettore, alcuni nomi di proprietà sono cambiati. Ad esempio, il nome della proprietà URI è stato modificato in `connection.uri`. Per ulteriori informazioni sulle opzioni correnti, consulta il [blog di MongoDB Spark Connector](https://www.mongodb.com/docs/spark-connector/current/configuration/).
+ L'utilizzo di MongoDB 4.0 ospitato da Amazon DocumentDB presenta alcune differenze funzionali. Per ulteriori informazioni, consulta i seguenti argomenti:
  + [Differenze funzionali: Amazon DocumentDB e MongoDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/functional-differences.html)
  +  [ APIsMongoDB, operazioni e tipi di dati supportati](https://docs.aws.amazon.com/documentdb/latest/developerguide/mongo-apis.html).
+ L'opzione "partitioner" è limitata a `ShardedPartitioner`, `PaginateIntoPartitionsPartitioner` e `SinglePartitionPartitioner`. Non può utilizzare `SamplePartitioner` e `PaginateBySizePartitioner` predefiniti per Amazon DocumentDB perché l'operatore stage non supporta l'API MongoDB. Per ulteriori informazioni, consulta [ APIsMongoDB, operazioni e tipi di dati supportati](https://docs.aws.amazon.com/documentdb/latest/developerguide/mongo-apis.html).

### Delta Lake
<a name="migrating-version-40-connector-driver-migration-delta"></a>
+ Delta Lake ora supporta i [viaggi nel tempo in SQL](https://docs.delta.io/2.1.0/delta-batch.html#query-an-older-snapshot-of-a-table-time-travel) per interrogare facilmente i dati più vecchi. Con questo aggiornamento, il viaggio nel tempo è ora disponibile sia in Spark SQL che tramite l'API. DataFrame È stato aggiunto il supporto per la versione corrente di TIMESTAMP in SQL.
+ [Spark 3.3 introduce Trigger. AvailableNow](https://issues.apache.org/jira/browse/SPARK-36533)per eseguire query in streaming come equivalente a quelle in batch`Trigger.Once`. Questo supporto è disponibile anche quando si utilizzano le tabelle Delta come fonte di streaming.
+ Supporto per SHOW COLUMNS per restituire l'elenco delle colonne in una tabella.
+ Support per [DESCRIVE DETAIL](https://docs.delta.io/2.1.0/delta-utility.html#retrieve-delta-table-details) nelle API Scala e Python DeltaTable . Recupera informazioni dettagliate su una tabella Delta utilizzando l' DeltaTable API o Spark SQL.
+ Supporto per la restituzione di parametri operativi dai comandi SQL [Delete](https://github.com/delta-io/delta/pull/1328), [Merge](https://github.com/delta-io/delta/pull/1327) e [Update](https://github.com/delta-io/delta/pull/1331). In precedenza questi comandi SQL restituivano un valore vuoto DataFrame, ora restituiscono un valore DataFrame con metriche utili sull'operazione eseguita.
+ Ottimizza i miglioramenti in termini di prestazioni:
  + Imposta l'opzione di configurazione `spark.databricks.delta.optimize.repartition.enabled=true` in modo da utilizzare `repartition(1)` anziché `coalesce(1)` nel comando Optimize per migliorare le prestazioni durante la compattazione di numerosi file di piccole dimensioni.
  + [Prestazioni migliorate](https://github.com/delta-io/delta/pull/1315) grazie a un approccio basato su code per parallelizzare i lavori di compattazione.
+ Altre modifiche importanti:
  + [Supporto per l'utilizzo di variabili](https://github.com/delta-io/delta/issues/1267) nei comandi VACUUM e OPTIMIZE SQL.
  + Miglioramenti per CONVERT TO DELTA con tabelle di catalogo che includono:
    + [Completamento automatico dello schema delle partizioni](https://github.com/delta-io/delta/commit/18d4d12ed06f973006501f6c39c8785db51e2b1f) dal catalogo quando non è fornito.
    + [Uso delle informazioni sulle partizioni](https://github.com/delta-io/delta/commit/ebff29904f3ababb889897343f8f8f7a010a1f71) dal catalogo per trovare i file di dati da salvare invece di eseguire una scansione completa della directory. Invece di salvare tutti i file di dati nella directory delle tabelle, verranno salvati solo i file di dati nelle directory delle partizioni attive.
  + [Supporto per le letture batch di Change Data Feed (CDF)](https://github.com/delta-io/delta/issues/1349) sulle tabelle abilitate alla mappatura delle colonne quando DROP COLUMN e RENAME COLUMN non sono stati utilizzati. Per ulteriori informazioni, consulta la [documentazione di Delta Lake](https://docs.delta.io/2.1.0/delta-change-data-feed.html#known-limitations).
  + [Miglioramento delle prestazioni dei comandi di aggiornamento](https://github.com/delta-io/delta/pull/1202) abilitando l'eliminazione dello schema nel primo passaggio.

### Apache Iceberg
<a name="migrating-version-40-connector-driver-migration-iceberg"></a>
+ Sono stati aggiunti diversi [miglioramenti delle prestazioni](https://iceberg.apache.org/releases/#performance-improvements) per la pianificazione delle scansioni e le query Spark.
+ È stato aggiunto un client di catalogo REST comune che utilizza i commit basati sulle modifiche per risolvere i conflitti di commit lato del servizio.
+ La sintassi `AS OF` per le query SQL relative ai viaggi temporali è supportata.
+ È stato aggiunto merge-on-read il supporto per le query MERGE e UPDATE.
+ È stato aggiunto il supporto per riscrivere le partizioni utilizzando l'ordine Z.
+ Sono state aggiunte una specifica e un'implementazione per Puffin, un formato per statistiche di grandi dimensioni e blob di indici, come [schizzi Theta](https://datasketches.apache.org/docs/Theta/InverseEstimate.html) o filtri bloom.
+ Sono state aggiunte nuove interfacce per il consumo incrementale dei dati (scansioni di aggiunta e log delle modifiche).
+ È stato aggiunto il supporto per operazioni di massa e letture a intervalli alle interfacce FileIO.
+ Sono state aggiunte altre tabelle di metadati per mostrare i file di eliminazione nella struttura dei metadati.
+ Il comportamento della tabella di eliminazione è cambiato. In Iceberg 0.13.1, l'esecuzione di `DROP TABLE` rimuove la tabella dal catalogo e ne elimina anche il contenuto. In Iceberg 1.0.0, `DROP TABLE` rimuove solo la tabella dal catalogo. Per eliminare il contenuto della tabella, utilizza `DROP TABLE PURGE`.
+ Le letture vettorializzate in Parquet sono abilitate per impostazione predefinita in Iceberg 1.0.0. Se desideri disabilitare le letture vettorializzate, imposta `read.parquet.vectorization.enabled` su `false`.

### Oracle
<a name="migrating-version-40-connector-driver-migration-oracle"></a>

Le modifiche sono di lieve entità.

### MySQL
<a name="migrating-version-40-connector-driver-migration-mysql"></a>

Le modifiche sono di lieve entità.

### Amazon Redshift
<a name="migrating-version-40-connector-driver-migration-redshift"></a>

AWS Glue 4.0 presenta un nuovo connettore Amazon Redshift con un nuovo driver JDBC. Per informazioni sui miglioramenti e su come migrare dalle versioni precedenti, consulta. AWS Glue [Connessioni Redshift](aws-glue-programming-etl-connect-redshift-home.md)

## Appendice A: Aggiornamenti importanti delle dipendenze
<a name="migrating-version-40-appendix-dependencies"></a>

Di seguito sono riportati gli aggiornamenti delle dipendenze:


| Dipendenza | Versione in 4.0 AWS Glue  | Versione in AWS Glue 3.0 | Versione in AWS Glue 2.0 | Versione in AWS Glue 1.0 | 
| --- | --- | --- | --- | --- | 
| Spark | 3.3.0-amzn-1 | 3.1.1-amzn-0 | 2.4.3 | 2.4.3 | 
| Hadoop | 3.3.3-amzn-0 | 3.2.1-amzn-3 | 2.8.5-amzn-5 | 2.8.5-amzn-1 | 
| Scala | 2.12 | 2,12 | 2.11 | 2.11 | 
| Jackson | 2,13,3 | 2.10.x | 2.7.x | 2.7.x | 
| Hive | 2.3.9-amzn-2 | 2.3.7-amzn-4 | 1.2 | 1.2 | 
| EMRFS | 2,54,0 | 2,46,0 | 2.38.0 | 2.30.0 | 
| Json4s | 3.7.0-M11 | 36.6 | 3.5.x | 3.5.x | 
| Arrow | 7,0,0 | 2.0.0 | 0.10.0 | 0.10.0 | 
| AWS Glue Client Data Catalog | 3.7.0 | 3.0.0 | 1.10.0 | N/D | 
| Python | 3.10 | 3.7 | 2.7 e 3.6 | 2.7 e 3.6 | 
| Boto | 1,26 | 1,18 | 1.12 | N/D | 

## Appendice B: aggiornamenti dei driver JDBC
<a name="migrating-version-40-appendix-jdbc-driver"></a>

Di seguito sono riportati gli aggiornamenti dei driver JDBC:


| Driver | Versione del driver JDBC nelle versioni precedenti AWS Glue  | Versione del driver JDBC nella versione 3.0 AWS Glue  | Versione del driver JDBC nella versione 4.0 AWS Glue  | 
| --- | --- | --- | --- | 
| MySQL | 5.1 | 8.0.23 | 8.0.23 | 
| Microsoft SQL Server | 6.1.0 | 7,0,0 | 9,40 | 
| Database Oracle | 11.2 | 21,1 | 21,7 | 
| PostgreSQL | 42,1,0 | 4,2,18 | 42,36 | 
| MongoDB | 2.0.0 | 4.0.0 | 4,7,2 | 
| Amazon Redshift |  redshift-jdbc41-1.2.12.1017   |  redshift-jdbc41-1.2.12.1017   |  redshift-jdbc42-2.1.0.16  | 

## Appendice C: Aggiornamenti dei connettori
<a name="migrating-version-40-appendix-connector"></a>

Di seguito sono riportati gli aggiornamenti dei connettori:


| Driver | Versione del connettore in 3.0 AWS Glue  | Versione del connettore in AWS Glue 4.0 | 
| --- | --- | --- | 
| MongoDB | 3.0.0 | 10.0.4 | 
| Hudi | 010.1 | 0.12.1 | 
| Delta Lake | 1.0.0 | 2.1.0 | 
| Iceberg | 0.13.1 | 1.0.0 | 
| DynamoDB | 1.11 | 1.12 | 

# Aggiornamenti generativi dell'intelligenza artificiale per Apache Spark in Glue AWS
<a name="upgrade-analysis"></a>

 Spark Upgrades in AWS Glue consente ai data engineer e agli sviluppatori di aggiornare e migrare i job AWS Glue Spark esistenti alle ultime release di Spark utilizzando l'intelligenza artificiale generativa. I data engineer possono utilizzarlo per AWS scansionare i lavori di Glue Spark, generare piani di aggiornamento, eseguire piani e convalidare gli output. Riduce i tempi e i costi degli aggiornamenti di Spark automatizzando il lavoro indifferenziato di identificazione e aggiornamento degli script, delle configurazioni, delle dipendenze, dei metodi e delle funzionalità di Spark. 

![\[La GIF mostra un'implementazione completa di un esempio di workflow di analisi degli aggiornamenti.\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/images/demo_lumos.gif)


## Come funziona
<a name="upgrade-analysis-how-it-works"></a>

 Quando utilizzi l'analisi degli aggiornamenti, AWS Glue identifica le differenze tra le versioni e le configurazioni nel codice del lavoro per generare un piano di aggiornamento. Il piano di aggiornamento descrive tutte le modifiche al codice e le fasi di migrazione richieste. Successivamente, AWS Glue crea ed esegue l'applicazione aggiornata in un ambiente per convalidare le modifiche e genera un elenco di modifiche al codice per la migrazione del lavoro. È possibile visualizzare lo script aggiornato insieme al riepilogo che descrive in dettaglio le modifiche proposte. Dopo aver eseguito i tuoi test, accetta le modifiche e il lavoro AWS Glue verrà aggiornato automaticamente alla versione più recente con il nuovo script. 

 Il processo di analisi degli aggiornamenti può richiedere un po' di tempo per il completamento, in funzione della complessità del processo e del carico di lavoro. I risultati dell'analisi dell'aggiornamento verranno archiviati nel percorso Amazon S3 specificato, che può essere esaminato per comprendere l'aggiornamento ed eventuali problemi di compatibilità. Dopo aver esaminato i risultati dell'analisi dell'aggiornamento, si può decidere se procedere con l'aggiornamento effettivo o apportare le modifiche necessarie al processo prima dell'aggiornamento. 

## Prerequisiti
<a name="upgrade-analysis-prerequisites"></a>

 I seguenti prerequisiti sono necessari per utilizzare l'intelligenza artificiale generativa per aggiornare i lavori in AWS Glue: 
+  AWS Glue 2 PySpark jobs: solo i lavori AWS Glue 2 possono essere aggiornati a AWS Glue 5. 
+  Le autorizzazioni IAM sono necessarie per avviare l'analisi, esaminare i risultati e aggiornare il processo. Per ulteriori informazioni, consultare gli esempi nella sezione [Permissions](#auto-upgrade-permissions) seguente. 
+  Se si utilizza AWS KMS per crittografare gli artefatti di analisi, sono necessarie autorizzazioni aggiuntive AWS AWS KMS . Per ulteriori informazioni, consultare gli esempi nella sezione [AWS KMS politica](#auto-upgrade-kms-policy) seguente. 

### Permissions
<a name="auto-upgrade-permissions"></a>

#### Per avviare una nuova analisi degli aggiornamenti, sono necessarie le seguenti autorizzazioni:
<a name="collapsible-section-1"></a>

1.  Aggiornare la policy IAM del chiamante con la seguente autorizzazione: 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "glue:StartJobUpgradeAnalysis",
                   "glue:StartJobRun",
                   "glue:GetJobRun",
                   "glue:GetJob",
                   "glue:BatchStopJobRun"
               ],
               "Resource": [
                   "arn:aws:glue:us-east-1:111122223333:job/jobName"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject"
               ],
               "Resource": [
              		 "arn:aws:s3:::amzn-s3-demo-bucket/script-location/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:PutObject",
                   "s3:GetObject"
               ],
               "Resource": [
               		"arn:aws:s3:::amzn-s3-demo-bucket/results/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt",
                   "kms:GenerateDataKey"
               ],
               "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id"
           }
       ]
   }
   ```

------

1.  Aggiornare il ruolo di esecuzione del processo in fase di aggiornamento per includere la seguente policy in linea: 

   ```
       {
         "Effect": "Allow",
         "Action": ["s3:GetObject"],    
         "Resource": [
           "ARN of the Amazon S3 path provided on API",
           "ARN of the Amazon S3 path provided on API/*"
         ]
       }
   ```

    Ad esempio, se si utilizza il percorso `s3://amzn-s3-demo-bucket/upgraded-result` di Amazon S3, la policy sarà: 

   ```
   {
         "Effect": "Allow",
         "Action": ["s3:GetObject"],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket/upgraded-result/",
           "arn:aws:s3:::amzn-s3-demo-bucket/upgraded-result/*"
         ]
       }
   ```

#### Per recuperare i dettagli di un'analisi, sono necessarie le seguenti autorizzazioni:
<a name="collapsible-section-2"></a>

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:GetJobUpgradeAnalysis"
      ],
      "Resource": [
        "arn:aws:glue:us-east-1:111122223333:job/jobName"
      ]
    }
  ]
}
```

------

#### Per interrompere un'analisi in corso, sono necessarie le seguenti autorizzazioni:
<a name="collapsible-section-3"></a>

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:StopJobUpgradeAnalysis",
        "glue:BatchStopJobRun"
      ],
      "Resource": [
        "arn:aws:glue:us-east-1:111122223333:job/jobName"
      ]
    }
  ]
}
```

------

#### Per elencare tutte le analisi inviate per un processo specifico, sono necessarie le seguenti autorizzazioni:
<a name="collapsible-section-4"></a>

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListJobUpgradeAnalyses"
      ],
      "Resource": [
        "arn:aws:glue:us-east-1:111122223333:job/jobName"
      ]
    }
  ]
}
```

------

#### Per accettare le modifiche di un'analisi e aggiornare un processo, sono necessarie le seguenti autorizzazioni:
<a name="collapsible-section-5"></a>

### AWS KMS politica
<a name="auto-upgrade-kms-policy"></a>

 Per passare la tua AWS KMS chiave personalizzata all'avvio di un'analisi, consulta la sezione seguente per configurare le autorizzazioni appropriate sulle AWS KMS chiavi. 

#### Configurazione della crittografia degli artefatti dei risultati utilizzando una chiave: AWS KMS
<a name="w2aac37b7c20c13c13b5b5"></a>

 Questa politica garantisce di disporre sia delle autorizzazioni di crittografia che di decrittografia sulla chiave. AWS KMS 

```
{
    "Effect": "Allow",
    "Principal":{
        "AWS": "<IAM Customer caller ARN>"
    },
    "Action": [
      "kms:Decrypt",
      "kms:GenerateDataKey",
    ],
    "Resource": "<key-arn-passed-on-start-api>"
}
```

## Esecuzione di un'analisi degli aggiornamenti e applicazione dello script di aggiornamento
<a name="auto-upgrade-procedure"></a>

 È possibile eseguire un'analisi degli aggiornamenti, che genererà un piano di aggiornamento su un processo selezionato dalla vista **Processi**. 

1.  Da **Jobs**, selezionate un job AWS Glue 2.0, quindi scegliete **Esegui analisi di aggiornamento** dal menu **Azioni**.   
![\[La schermata mostra l'analisi degli aggiornamenti con l'IA dal menu delle operazioni.\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/images/upgrade-analysis-run-action-menu.png)

1.  Nel modale, selezionare un percorso per memorizzare il piano di aggiornamento generato nel **Percorso dei risultati**. Questo deve essere il bucket Amazon S3 a cui si può accedere e su cui scrivere.   
![\[Lo screenshot mostra l'analisi degli aggiornamenti completata. Il pulsante per Applica lo script aggiornato è visibile.\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/images/upgrade-analysis-configuration-options.png)

1.  Configurare le opzioni aggiuntive, se necessario: 
   +  **Configurazione di esecuzione** - opzionale: la configurazione di esecuzione è un'impostazione opzionale che consente di personalizzare vari aspetti delle esecuzioni di convalida eseguite durante l'analisi degli aggiornamenti. Questa configurazione viene utilizzata per eseguire lo script aggiornato e consente di selezionare le proprietà dell'ambiente di calcolo (tipo di worker, numero di worker, ecc.). È necessario utilizzare gli account di sviluppatore non di produzione per eseguire le convalide su set di dati di esempio prima di esaminare, accettare le modifiche e applicarle agli ambienti di produzione. La configurazione di esecuzione include i seguenti parametri personalizzabili: 
     + Tipo di worker: è possibile specificare il tipo di worker da utilizzare per le esecuzioni di convalida, in modo da scegliere le risorse di calcolo appropriate in base ai requisiti.
     + Numero di worker: è possibile definire il numero di worker da assegnare per le esecuzioni di convalida, in modo da scalare le risorse in base alle esigenze del carico di lavoro.
     + Timeout del processo (in minuti): questo parametro consente di impostare un limite di tempo per le esecuzioni di convalida, assicurando che i processi terminino dopo una durata specificata per evitare un consumo eccessivo di risorse.
     + Configurazione della sicurezza: è possibile configurare le impostazioni di sicurezza, come la crittografia e il controllo degli accessi, per garantire la protezione dei dati e delle risorse durante le esecuzioni di convalida.
     + Parametri di processo aggiuntivi: se necessario, è possibile aggiungere nuovi parametri di processo per personalizzare ulteriormente l'ambiente di esecuzione per le esecuzioni di convalida.

      Sfruttando la configurazione di esecuzione, è possibile personalizzare le esecuzioni di convalida in base ai requisiti specifici. Ad esempio, è possibile configurare le esecuzioni di convalida per utilizzare un set di dati più piccolo, che consente di completare l'analisi più rapidamente e di ottimizzare i costi. Questo approccio garantisce che l'analisi degli aggiornamenti venga eseguita in modo efficiente, riducendo al minimo l'utilizzo delle risorse e i costi associati durante la fase di convalida. 
   +  **Configurazione della crittografia** - (opzionale): 
     + **Abilitare la crittografia degli artefatti di aggiornamento**: abilitare la crittografia a riposo durante la scrittura dei dati nel percorso dei risultati. Se non si desidera crittografare gli elementi di aggiornamento, lasciare questa opzione deselezionata.

1.  Scegliere **Esegui** per avviare l'analisi degli aggiornamenti. Mentre l'analisi è in esecuzione, è possibile visualizzare i risultati nella scheda **Analisi dell'aggiornamento**. La finestra dei dettagli dell'analisi mostrerà informazioni sull'analisi e collegamenti agli artefatti di aggiornamento. 
   +  **Percorso dei risultati**: è qui che vengono archiviati il riepilogo dei risultati e lo script di aggiornamento. 
   +  **Script aggiornato in Amazon** S3: la posizione dello script di aggiornamento in Amazon S3. È possibile visualizzare lo script prima di applicare l'aggiornamento. 
   +  **Riepilogo dell'aggiornamento in Amazon S3**: la posizione del riepilogo dell'aggiornamento in Amazon S3. È possibile visualizzare il riepilogo dell'aggiornamento prima di applicarlo. 

1.  Una volta completata con successo l'analisi dell'aggiornamento, è possibile applicare lo script di aggiornamento per aggiornare automaticamente il processo scegliendo **Applica script aggiornato**. 

    Una volta applicata, la versione AWS Glue verrà aggiornata alla 4.0. È possibile visualizzare lo script nella scheda **Script**.   
![\[Lo screenshot mostra l'analisi degli aggiornamenti completata. Il pulsante per Applica lo script aggiornato è visibile.\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/images/upgrade-analysis-analysis-details-preview.png)

## Comprendere il riepilogo dell'aggiornamento
<a name="auto-upgrade-analysis-summary"></a>

 Questo esempio dimostra il processo di aggiornamento di un lavoro AWS Glue dalla versione 2.0 alla versione 4.0. Il processo di esempio legge i dati di prodotto da un bucket Amazon S3, applica diverse trasformazioni ai dati utilizzando Spark SQL e quindi salva i risultati trasformati in un bucket Amazon S3. 

### Codice originale (AWS Glue 2.0) - prima dell'aggiornamento
<a name="w2aac37b7c20c21b5b1"></a>

```
from awsglue.transforms import *
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from pyspark.sql.types import *
from pyspark.sql.functions import *
from awsglue.job import Job
import json
from pyspark.sql.types import StructType

sc = SparkContext.getOrCreate()
glueContext = GlueContext(sc)
spark = glueContext.spark_session
job = Job(glueContext)

gdc_database = "s3://aws-glue-scripts-us-east-1-gamma/demo-database/"
schema_location = (
    "s3://aws-glue-scripts-us-east-1-gamma/DataFiles/"
)

products_schema_string = spark.read.text(
    f"{schema_location}schemas/products_schema"
).first()[0]

product_schema = StructType.fromJson(json.loads(products_schema_string))

products_source_df = (
    spark.read.option("header", "true")
    .schema(product_schema)
    .option(
        "path",
        f"{gdc_database}products/",
    )
    .csv(f"{gdc_database}products/")
)

products_source_df.show()
products_temp_view_name = "spark_upgrade_demo_product_view"
products_source_df.createOrReplaceTempView(products_temp_view_name)

query = f"select {products_temp_view_name}.*, format_string('%0$s-%0$s', category, subcategory) as unique_category from {products_temp_view_name}"
products_with_combination_df = spark.sql(query)
products_with_combination_df.show()

products_with_combination_df.createOrReplaceTempView(products_temp_view_name)
product_df_attribution = spark.sql(
    f"""
SELECT *,
unbase64(split(product_name, ' ')[0]) as product_name_decoded,
unbase64(split(unique_category, '-')[1]) as subcategory_decoded
FROM {products_temp_view_name}
"""
)
product_df_attribution.show()


product_df_attribution.write.mode("overwrite").option("header", "true").option(
    "path", f"{gdc_database}spark_upgrade_demo_product_agg/"
).saveAsTable("spark_upgrade_demo_product_agg", external=True)

spark_upgrade_demo_product_agg_table_df = spark.sql(
    f"SHOW TABLE EXTENDED in default like 'spark_upgrade_demo_product_agg'"
)
spark_upgrade_demo_product_agg_table_df.show()
job.commit()
```

### Nuovo codice (Glue 4.0), dopo l'aggiornamento
<a name="upgrade-analysis-example-new-code-glue-4"></a>

```
from awsglue.transforms import *
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from pyspark.sql.types import *
from pyspark.sql.functions import *
from awsglue.job import Job
import json
from pyspark.sql.types import StructType

sc = SparkContext.getOrCreate()
glueContext = GlueContext(sc)
spark = glueContext.spark_session
# change 1
spark.conf.set("spark.sql.adaptive.enabled", "false")
# change 2
spark.conf.set("spark.sql.legacy.pathOptionBehavior.enabled", "true")
job = Job(glueContext)

gdc_database = "s3://aws-glue-scripts-us-east-1-gamma/demo-database/"
schema_location = (
    "s3://aws-glue-scripts-us-east-1-gamma/DataFiles/"
)

products_schema_string = spark.read.text(
    f"{schema_location}schemas/products_schema"
).first()[0]

product_schema = StructType.fromJson(json.loads(products_schema_string))

products_source_df = (
    spark.read.option("header", "true")
    .schema(product_schema)
    .option(
        "path",
        f"{gdc_database}products/",
    )
    .csv(f"{gdc_database}products/")
)

products_source_df.show()
products_temp_view_name = "spark_upgrade_demo_product_view"
products_source_df.createOrReplaceTempView(products_temp_view_name)

# change 3
query = f"select {products_temp_view_name}.*, format_string('%1$s-%1$s', category, subcategory) as unique_category from {products_temp_view_name}"
products_with_combination_df = spark.sql(query)
products_with_combination_df.show()

products_with_combination_df.createOrReplaceTempView(products_temp_view_name)
# change 4
product_df_attribution = spark.sql(
    f"""
SELECT *,
try_to_binary(split(product_name, ' ')[0], 'base64') as product_name_decoded,
try_to_binary(split(unique_category, '-')[1], 'base64') as subcategory_decoded
FROM {products_temp_view_name}
"""
)
product_df_attribution.show()


product_df_attribution.write.mode("overwrite").option("header", "true").option(
    "path", f"{gdc_database}spark_upgrade_demo_product_agg/"
).saveAsTable("spark_upgrade_demo_product_agg", external=True)

spark_upgrade_demo_product_agg_table_df = spark.sql(
    f"SHOW TABLE EXTENDED in default like 'spark_upgrade_demo_product_agg'"
)
spark_upgrade_demo_product_agg_table_df.show()
job.commit()
```

### Spiegazione del riepilogo dell'analisi
<a name="upgrade-analysis-explanation-summary"></a>

![\[Lo screenshot mostra il riepilogo dell'analisi degli aggiornamenti.\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/images/upgrade-analysis-explanation-summary.png)


 In base al riepilogo, ci sono quattro modifiche proposte da AWS Glue per aggiornare correttamente lo script da AWS Glue 2.0 a AWS Glue 4.0: 

1.  **Configurazione SQL di Spark (spark.sql.adaptive.enabled)**: questa modifica serve a ripristinare il comportamento dell'applicazione quando una nuova funzionalità per l'esecuzione adattiva delle query Spark SQL viene introdotta a partire da Spark 3.2. Si può ispezionare questa modifica alla configurazione e abilitarla o disabilitarla ulteriormente secondo le preferenze. 

1.  **DataFrame Modifica dell'API**: l'opzione path non può coesistere con altre DataFrameReader operazioni come`load()`. Per mantenere il comportamento precedente, AWS Glue ha aggiornato lo script per aggiungere una nuova configurazione SQL **(spark.sql.legacy). pathOptionBehavior.abilitato).** 

1.  **Modifica dell'API SQL di Spark**: il comportamento di `strfmt` in `format_string(strfmt, obj, ...)` è stato aggiornato in modo da non consentire `0$` come primo argomento. Per garantire la compatibilità, AWS Glue ha modificato lo script da utilizzare invece `1$` come primo argomento. 

1.  **Modifica dell'API SQL di Spark**: la funzione `unbase64` non consente input di stringhe in formato errato. Per mantenere il comportamento precedente, AWS Glue ha aggiornato lo script per utilizzare la `try_to_binary` funzione. 

## Interruzione di un'analisi di aggiornamento in corso
<a name="auto-upgrade-stopping-analysis"></a>

 È possibile annullare un'analisi dell'aggiornamento in corso o semplicemente interromperla. 

1.  Scegliere la scheda **Analisi dell'aggiornamento**. 

1.  Selezionare il processo in esecuzione, poi scegliere **Interrompi**. Questo interromperà l'analisi. È quindi possibile eseguire un'altra analisi degli aggiornamenti sullo stesso processo.   
![\[La schermata mostra la scheda di analisi dell'aggiornamento con un processo selezionato. Il processo è ancora in esecuzione.\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/images/upgrade-analysis-tab.png)

## Considerazioni
<a name="upgrade-analysis-considerations"></a>

 Quando inizi a utilizzare Spark Upgrades, ci sono diversi aspetti importanti da considerare per un utilizzo ottimale del servizio. 
+  **Ambito e limitazioni del servizio**: la versione corrente si concentra sugli aggiornamenti PySpark del codice dalle versioni 2.0 alla versione 5.0 di AWS Glue. Al momento, il servizio gestisce PySpark codice che non si basa su dipendenze di libreria aggiuntive. È possibile eseguire aggiornamenti automatici per un massimo di 10 processi contemporaneamente in un AWS account, in modo da aggiornare in modo efficiente più processi mantenendo al contempo la stabilità del sistema. 
  +  Sono supportati solo i PySpark lavori. 
  +  L'analisi degli aggiornamenti scadrà dopo 24 ore. 
  +  È possibile eseguire solo un'analisi di aggiornamento attiva alla volta per un singolo processo. A livello di account, possono essere eseguite fino a 10 analisi degli aggiornamenti attive nello stesso momento. 
+  **Ottimizzazione dei costi durante il processo di aggiornamento**: poiché Spark Upgrades utilizza l'intelligenza artificiale generativa per convalidare il piano di aggiornamento attraverso più iterazioni, con ogni iterazione eseguita come processo AWS Glue nel tuo account, è essenziale ottimizzare le configurazioni di esecuzione del processo di convalida per ridurre i costi. A tal fine, consigliamo di specificare una configurazione di esecuzione all'avvio di un'analisi degli aggiornamenti nel modo seguente: 
  +  Usare account di sviluppo non di produzione e selezionare esempi di set di dati fittizi che rappresentino i dati di produzione ma di dimensioni più piccole per la convalida con Spark Upgrades. 
  +  Utilizzare risorse di calcolo della giusta dimensione, come i worker G.1X, e selezionare un numero appropriato di worker per l'elaborazione dei dati di esempio. 
  +  Attivazione dell'auto-scaling dei job di AWS Glue, se applicabile, per regolare automaticamente le risorse in base al carico di lavoro. 

   Ad esempio, se il processo di produzione elabora terabyte di dati con 20 worker G.2X, è possibile configurare il processo di aggiornamento per elaborare alcuni gigabyte di dati rappresentativi con 2 worker G.2X e il dimensionamento automatico abilitato per la convalida. 
+  **Migliori pratiche**: consigliamo vivamente di iniziare il percorso di aggiornamento con lavori non di produzione. Questo approccio consente di acquisire familiarità con il flusso di lavoro di aggiornamento e di comprendere come il servizio gestisce i diversi tipi di modelli di codice Spark. 
+  **Allarmi e notifiche**: quando utilizzi la funzionalità di aggiornamento dell'intelligenza artificiale generativa su un lavoro, assicurati che alarms/notifications le esecuzioni dei job non riusciti siano disattivate. Durante il processo di aggiornamento, potrebbero verificarsi fino a 10 esecuzioni di processi non riusciti nell'account prima che vengano forniti gli artefatti aggiornati. 
+  **Regole di rilevamento delle anomalie**: disattivate le regole di rilevamento delle anomalie sul processo in fase di aggiornamento, poiché i dati scritti nelle cartelle di output durante le esecuzioni intermedie dei processi potrebbero non essere nel formato previsto durante la convalida dell'aggiornamento. 
+  **Utilizzare l'analisi degli aggiornamenti con processi di idempotenza**: utilizzare l'analisi degli aggiornamenti con processi idempotenti per garantire che ogni successivo tentativo di esecuzione del processo di convalida sia simile a quello precedente e non comporti problemi. I processi idempotenti sono processi che possono essere eseguiti più volte con gli stessi dati di input e produrranno ogni volta lo stesso output. Quando si utilizzano gli aggiornamenti di intelligenza artificiale generativa per Apache Spark in AWS Glue, il servizio eseguirà più iterazioni del job come parte del processo di convalida. Durante ogni iterazione, apporterà modifiche al codice e alle configurazioni Spark per convalidare il piano di aggiornamento. Se il processo Spark non è idempotente, eseguirlo più volte con gli stessi dati di input potrebbe causare problemi. 

## Regioni supportate
<a name="upgrade-analysis-supported-regions"></a>

Gli aggiornamenti generativi dell'intelligenza artificiale per Apache Spark sono disponibili nelle seguenti regioni:
+ **Asia Pacifico**: Tokyo (ap-northeast-1), Seul (ap-northeast-2), Mumbai (ap-south-1), Singapore (ap-southeast-1) e Sydney (ap-southeast-2)
+ **Nord America**: Canada (ca-central-1)
+ **Europa**: Francoforte (eu-central-1), Stoccolma (eu-north-1), Irlanda (eu-west-1), Londra (eu-west-2) e Parigi (eu-west-3)
+ **Sud America**: San Paolo (sa-east-1)
+ **Stati Uniti**: Virginia del Nord (us-east-1), Ohio (us-east-2) e Oregon (us-west-2)

## Inferenza tra regioni in Spark Upgrades
<a name="w2aac37b7c20c37"></a>

 Spark Upgrades è basato e sfrutta l'inferenza interregionale (CRIS). Amazon Bedrock Con CRIS, Spark Upgrades selezionerà automaticamente la regione ottimale all'interno dell'area geografica (come descritto più dettagliatamente [qui](https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference.html)) per elaborare la richiesta di inferenza, massimizzare le risorse di calcolo disponibili e la disponibilità dei modelli e fornire la migliore esperienza al cliente. L'utilizzo dell'inferenza tra regioni non prevede costi aggiuntivi. 

 Le richieste di inferenza tra regioni vengono conservate all'interno delle AWS regioni che fanno parte della geografia in cui risiedono originariamente i dati. Ad esempio, una richiesta effettuata negli Stati Uniti viene conservata nelle AWS regioni degli Stati Uniti. Sebbene i dati rimangano archiviati solo nella regione primaria, quando si utilizza l'inferenza tra regioni, i prompt di input e i risultati di output potrebbero spostarsi al di fuori della regione primaria. Tutti i dati verranno trasmessi crittografati attraverso la rete sicura di Amazon. 