Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Migrazione dei processi AWS Glue per Spark ad AWS Glue versione 4.0
In questo argomento vengono descritte le modifiche tra AWS Glue versioni 0.9, 1.0, 2.0 e 3.0 per permettere la migrazione delle applicazioni Spark e dei processi ETL a AWS Glue 4.0. Descrive inoltre le funzionalità in AWS Glue 4.0 e i vantaggi del suo utilizzo.
Per usare questa caratteristica con i processi ETL di AWS Glue, scegli 4.0
per la Glue version
durante la creazione dei processi.
Argomenti
- Nuove caratteristiche supportate
- Operazioni per eseguire la migrazione ad AWS Glue 4.0
- Elenco di controllo della migrazione
- Migrazione da AWS Glue 3.0 a AWS Glue 4.0
- Migrazione da AWS Glue 2.0 a AWS Glue 4.0
- Migrazione da AWS Glue 1.0 ad AWS Glue 4.0
- Migrazione da AWS Glue 0.9 ad AWS Glue 4.0
- Migrazione di connettori e driver JDBC per AWS Glue 4.0
- Appendice A: Aggiornamenti importanti delle dipendenze
- Appendice B: aggiornamenti dei driver JDBC
- Appendice C: Aggiornamenti dei connettori
Nuove caratteristiche supportate
In questa sezione vengono descritte le nuove funzionalità e i vantaggi di 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 origini native di AWS Glue, inclusi MySQL, Microsoft SQL Server, Oracle, PostgreSQL, MongoDB e le librerie e le 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
). -
Miglioramenti ANSI (SPARK-38860
). -
Miglioramenti ai messaggi di errore (SPARK-38781
). -
Supporto dei tipi complessi per il lettore vettorializzato Parquet (SPARK-34863
). -
Supporto di metadati di file nascosti per Spark SQL (SPARK-37273
). -
Fornito un profiler per le UDF di Python/Pandas (SPARK-37443
). -
Introduce Trigger.availableNow per eseguire query di streaming come Trigger.Once in più batch (SPARK-36533
). -
Funzionalità di pushdown Datasource V2 più complete (SPARK-38788
). -
Migrazione da log4j 1 a log4j 2 (SPARK-37814
).
Altre modifiche importanti
Nota le seguenti modifiche:
-
Modifiche importanti
-
Elimina i riferimenti al supporto per Python 3.6 in docs e Python/docs (SPARK-36977
). -
Rimuove l'hack di tuple specificate sostituendo il pickle integrato con cloudpickle (SPARK-32079
). -
Porta la versione minima di Pandas a 1.0.5 (SPARK-37465
).
-
Operazioni per eseguire la migrazione ad AWS Glue 4.0
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
inGlue version
. -
Nell'API, scegli
4.0
nel parametroGlueVersion
nell'operazione APIUpdateJob
.
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)
inGlue version
. -
In AWS Glue Studio, scegli
Glue 4.0 - Supports Spark 3.3, Scala 2, Python 3
inGlue version
. -
Nell'API, scegli
4.0
nel parametroGlueVersion
nell'operazione APICreateJob
.
Per visualizzare i log di eventi Spark di AWS Glue 4.0 provenienti da AWS Glue 2.0 o versioni precedenti, avvia un server di cronologia Spark aggiornato per AWS Glue 4.0 utilizzando AWS CloudFormation o Docker.
Elenco di controllo della migrazione
Rivedi questo elenco di controllo per la migrazione:
Nota
Per gli elementi della lista di controllo relativi a AWS Glue 3.0, consulta Elenco di controllo per la migrazione.
-
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 da AWS Glue 3.0 a AWS Glue 4.0
Nota le seguenti modifiche durante la migrazione:
-
Tutti i parametri dei processi e le funzionalità principali esistenti in AWS Glue 3.0 saranno presenti in AWS Glue 4.0.
-
AWS Glue 3.0 utilizza Spark 3.1.1 ottimizzato per Amazon EMR 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.
-
AWS Glue 4.0 include anche un aggiornamento a EMRFS e Hadoop. Per la versione specifica, consulta Appendice A: Aggiornamenti importanti delle dipendenze.
-
L'SDK AWS fornito nei processi ETL è stato aggiornato da 1.11 a 1.12.
-
Tutti i processi Python utilizzeranno la versione 3.10 di Python. In precedenza, in AWS Glue 3.0 era usato Python 3.7.
Di conseguenza, alcuni pymodule pronti all'uso da AWS Glue sono stati aggiornati.
-
Log4j è stato aggiornato a Log4j2.
-
Per informazioni sul percorso di migrazione di Log4j2, consulta la documentazione di Log4j
. -
È 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 AWS Glue 4.0.
-
L'SDK di crittografia AWS è stato aggiornato da 1.x a 2.x. Sono interessati da questa modifica i processi AWS Glue che utilizzano configurazioni di sicurezza di AWS Glue e i processi dipendenti dalla dipendenza dell'SDK di crittografia AWS forniti in fase di runtime. Consulta le istruzioni relative alla migrazione dei processi AWS Glue.
Puoi aggiornare in sicurezza un processo AWS Glue 2.0/3.0 a un processo AWS Glue 4.0 perché AWS Glue 2.0/3.0 contiene già la versione bridge dell'SDK di crittografia AWS.
Consulta la documentazione relativa alla migrazione di Spark:
Migrazione da AWS Glue 2.0 a AWS Glue 4.0
Nota le seguenti modifiche durante la migrazione:
Nota
Per le fasi di migrazione relative a AWS Glue 3.0, consulta Migrazione da AWS Glue 3.0 a AWS Glue 4.0.
-
Tutti i parametri di processo e le funzionalità principali esistenti in AWS Glue 2.0 saranno presenti in AWS Glue 4.0.
-
Il committer ottimizzato per S3 EMRFS per la scrittura di dati Parquet in Amazon S3 è abilitato per impostazione predefinita a cominciare da AWS Glue 3.0. Tuttavia, puoi disabilitarlo impostando
--enable-s3-parquet-optimized-committer
afalse
. -
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 le UDF non tipizzate per Scala, ma Spark 2.4 le consente.
-
-
L'SDK AWS fornito nei processi ETL è stato aggiornato da 1.11 a 1.12.
-
AWS Glue 4.0 include anche un aggiornamento a EMRFS, driver JDBC aggiornati e ulteriori ottimizzazioni 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 processo che richieda Python 2 nella sua configurazione avrà esito negativo, con la restituzione di IllegalArgumentException.
-
Un nuovo meccanismo per l'installazione di moduli Python aggiuntivi è disponibile a cominciare da AWS Glue 2.0.
-
-
Diversi aggiornamenti delle dipendenze, evidenziati in Appendice A: Aggiornamenti importanti delle dipendenze.
-
Eventuali file JAR supplementari forniti in processi AWS Glue 2.0 esistenti potrebbero causare conflitti di dipendenze a causa degli aggiornamenti di diverse dipendenze in 4.0 da 2.0. È possibile evitare conflitti di dipendenze in AWS Glue 4.0 con il parametro
--user-jars-first
del processo AWS Glue. AWS Glue 4.0 utilizza Spark 3.3. A partire da Spark 3.1, è stato apportato un cambiamento nel comportamento di caricamento/salvataggio dei timestamp da/verso i file parquet. Per ulteriori dettagli, consulta Aggiornamento da Spark SQL 3.0 a 3.1
. Noi suggeriamo di impostare i seguenti parametri durante la lettura/scrittura di dati del parquet che contengono colonne timestamp. L'impostazione di tali 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 AWS Glue 4.0.
-
L'SDK di crittografia AWS è stato aggiornato da 1.x a 2.x. Sono interessati da questa modifica i processi AWS Glue che utilizzano configurazioni di sicurezza di AWS Glue e i processi dipendenti dalla dipendenza dell'SDK di crittografia AWS forniti in fase di runtime. Consulta le seguenti istruzioni relative alla migrazione del processo AWS Glue:
-
Puoi aggiornare in sicurezza un processo AWS Glue 2.0 a un processo AWS Glue 4.0 perché AWS Glue 2.0 contiene già la versione bridge dell'SDK di crittografia AWS.
-
Consulta la documentazione relativa alla migrazione di Spark:
Migrazione da AWS Glue 1.0 ad AWS Glue 4.0
Nota le seguenti modifiche durante la migrazione:
-
AWS Glue 1.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 le UDF non tipizzate per Scala, ma Spark 2.4 le consente.
-
-
Tutti i processi in AWS Glue 4.0 verranno eseguiti con tempi di avvio significativamente 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 in AWS Glue versione 4.0, in quanto Spark 3.3.0 richiede 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 processo che richieda Python 2 nella sua configurazione avrà esito negativo, con la restituzione di IllegalArgumentException.
-
Un nuovo meccanismo per l'installazione di moduli Python aggiuntivi tramite pip è disponibile a cominciare da AWS Glue 2.0. Per ulteriori informazioni, consulta Installazione di moduli Python aggiuntivi con pip in AWS Glue 2.0+.
-
AWS Glue 4.0 non viene eseguito su Apache YARN, pertanto le impostazioni di YARN non si applicano.
-
AWS Glue 4.0 non dispone di un file system distribuito Hadoop (HDFS).
-
Eventuali file JAR supplementari forniti in processi AWS Glue 1.0 esistenti potrebbero causare conflitti di dipendenze a causa degli aggiornamenti di diverse dipendenze in 4.0 da 1.0. Per evitare questo problema, abilitiamo automaticamente AWS Glue 4.0 con il parametro di processo AWS Glue
--user-jars-first
. -
AWS Glue 4.0 supporta il dimensionamento automatico. Pertanto, il parametro ExecutorAllocationManager sarà disponibile quando è abilitato il dimensionamento automatico.
-
Nei processi di AWS Glue versione 4.0, è possibile specificare il numero di worker e il tipo di worker, ma non una
maxCapacity
. -
AWS Glue 4.0 non supporta ancora le trasformazioni basate su machine learning.
-
Per la migrazione di connettori specifici, consulta Migrazione di connettori e driver JDBC per AWS Glue 4.0.
-
L'SDK di crittografia AWS è stato aggiornato da 1.x a 2.x. Sono interessati da questa modifica i processi AWS Glue che utilizzano configurazioni di sicurezza di AWS Glue e i processi dipendenti dalla dipendenza dell'SDK di crittografia AWS forniti in fase di runtime. Consulta le seguenti istruzioni relative alla migrazione del processo AWS Glue.
-
Non è possibile migrare direttamente un processo AWS Glue 0.9/1.0 a un processo 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à, l'SDK di crittografia AWS non sarà in grado di decrittare il testo criptato nelle versioni precedenti dell'SDK di crittografia AWS.
-
Per un aggiornamento sicuro, consigliamo innanzitutto di migrare a un processo AWS Glue 2.0/3.0 che contenga la versione bridge dell'SDK di crittografia AWS. Esegui il processo una volta per utilizzare la versione bridge dell'SDK di crittografia AWS.
-
Al termine, sarà possibile migrare in sicurezza il processo AWS Glue 2.0/3.0 a AWS Glue 4.0.
-
Consulta la documentazione relativa alla migrazione di Spark:
Migrazione da AWS Glue 0.9 ad AWS Glue 4.0
Nota le seguenti modifiche durante la migrazione:
-
AWS Glue 0.9 utilizza Spark 2.2.1 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 le UDF non tipizzate per Scala, ma Spark 2.2 le consente.
-
-
Tutti i processi in AWS Glue 4.0 verranno eseguiti con tempi di avvio significativamente 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 a AWS Glue 4.0; Spark 3.3.0 richiede Log4j2 come indicato qui (https://spark.apache.org/docs/latest/core-migration-guide.html#upgrading-from-core-32-to-33).
-
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 processo che richieda Python 2 nella sua configurazione avrà esito negativo, con la restituzione di IllegalArgumentException.
-
È disponibile un nuovo meccanismo di installazione di moduli Python aggiuntivi tramite pip.
-
-
AWS Glue 4.0 non viene eseguito su Apache YARN, pertanto le impostazioni di YARN non si applicano.
-
AWS Glue 4.0 non dispone di un file system distribuito Hadoop (HDFS).
-
Eventuali file JAR supplementari forniti in processi AWS Glue 0.9 esistenti potrebbero causare conflitti di dipendenze a causa degli aggiornamenti di diverse dipendenze in 3.0 da 0.9. È possibile evitare conflitti di dipendenze in AWS Glue 3.0 con il parametro
--user-jars-first
del processo AWS Glue. -
AWS Glue 4.0 supporta il dimensionamento automatico. Pertanto, il parametro ExecutorAllocationManager sarà disponibile quando è abilitato il dimensionamento automatico.
-
Nei processi di AWS Glue versione 4.0, è possibile specificare il numero di worker e il tipo di worker, ma non una
maxCapacity
. -
AWS Glue 4.0 non supporta ancora le trasformazioni basate su machine learning.
-
Per la migrazione di connettori specifici, consulta Migrazione di connettori e driver JDBC per AWS Glue 4.0.
-
L'SDK di crittografia AWS è stato aggiornato da 1.x a 2.x. Sono interessati da questa modifica i processi AWS Glue che utilizzano configurazioni di sicurezza di AWS Glue e i processi dipendenti dalla dipendenza dell'SDK di crittografia AWS forniti in fase di runtime. Consulta le seguenti istruzioni relative alla migrazione del processo AWS Glue.
-
Non è possibile migrare direttamente un processo AWS Glue 0.9/1.0 a un processo 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à, l'SDK di crittografia AWS non sarà in grado di decrittare il testo criptato nelle versioni precedenti dell'SDK di crittografia AWS.
-
Per un aggiornamento sicuro, consigliamo innanzitutto di migrare a un processo AWS Glue 2.0/3.0 che contenga la versione bridge dell'SDK di crittografia AWS. Esegui il processo una volta per utilizzare la versione bridge dell'SDK di crittografia AWS.
-
Al termine, sarà possibile migrare in sicurezza il processo AWS Glue 2.0/3.0 a AWS Glue 4.0.
-
Consulta la documentazione relativa alla migrazione di Spark:
Migrazione di connettori e driver JDBC per AWS Glue 4.0
Per le versioni dei connettori JDBC e data lake che sono state aggiornate, consulta:
Hudi
-
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 sintassiCreate/Drop/Show/Refresh Index
. -
È stato colmato un divario legato alle prestazioni tra l'utilizzo con 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.
-
La trasformazione UDF è stata sostituita nell'operazione
insert
di massa con trasformazioni RDD per ridurre i costi di utilizzo di SerDe. -
Spark SQL con Hudi richiede la specifica di una
primaryKey
da parte ditblproperites
o più opzioni nell'istruzione SQL. Per le operazioni di aggiornamento ed eliminazione, è necessario anchepreCombineField
.
-
-
Qualsiasi tabella Hudi creata prima della versione 0.10.0 senza una
primaryKey
deve essere creata nuovamente con un campoprimaryKey
a partire dalla versione 0.10.0.
PostgreSQL
-
Sono state risolte diverse vulnerabilità (CVE).
-
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
-
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. -
L'utilizzo di MongoDB 4.0 ospitato da Amazon DocumentDB presenta alcune differenze funzionali. Per ulteriori informazioni, consulta i seguenti argomenti:
-
L'opzione "partitioner" è limitata a
ShardedPartitioner
,PaginateIntoPartitionsPartitioner
eSinglePartitionPartitioner
. Non può utilizzareSamplePartitioner
ePaginateBySizePartitioner
predefiniti per Amazon DocumentDB perché l'operatore stage non supporta l'API MongoDB. Per ulteriori informazioni, consulta API, operazioni e tipi di dati MongoDB supportati.
Delta Lake
-
Delta Lake ora supporta i viaggi nel tempo in SQL
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
per l'esecuzione di query di streaming come equivalente a Trigger.Once
per le query in batch. 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.
-
Supporto per DESCRIVE DETAIL
nelle API DeltaTable di Scala e Python. Recupera informazioni dettagliate su una tabella Delta utilizzando l'API DeltaTable o Spark SQL. -
Supporto per la restituzione di parametri operativi dai comandi SQL Delete
, Merge e Update . In precedenza questi comandi SQL restituivano un DataFrame vuoto, ora restituiscono un DataFrame con parametri 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 utilizzarerepartition(1)
anzichécoalesce(1)
nel comando Optimize per migliorare le prestazioni durante la compattazione di numerosi file di piccole dimensioni. -
Prestazioni migliorate
grazie a un approccio basato su code per parallelizzare i lavori di compattazione.
-
-
Altre modifiche importanti:
-
Supporto per l'utilizzo di variabili
nei comandi VACUUM e OPTIMIZE SQL. -
Miglioramenti per CONVERT TO DELTA con tabelle di catalogo che includono:
-
Completamento automatico dello schema delle partizioni
dal catalogo quando non è fornito. -
Uso delle informazioni sulle partizioni
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)
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 . -
Miglioramento delle prestazioni dei comandi di aggiornamento
abilitando l'eliminazione dello schema nel primo passaggio.
-
Apache Iceberg
-
Sono stati aggiunti diversi miglioramenti delle prestazioni
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 il supporto merge-on-read (unione su lettura) 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
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, utilizzaDROP 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
sufalse
.
Oracle
Le modifiche sono di lieve entità.
MySQL
Le modifiche sono di lieve entità.
Amazon Redshift
AWS Glue 4.0 presenta un nuovo connettore Amazon Redshift con un nuovo driver JDBC. Per informazioni sui miglioramenti e su come effettuare la migrazione dalle versioni precedenti di AWS Glue, consulta Connessioni Redshift.
Appendice A: Aggiornamenti importanti delle dipendenze
Di seguito sono riportati gli aggiornamenti delle dipendenze:
Dipendenza | Versione in AWS Glue 4.0 | 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 | 3.6.6 | 3.5.x | 3.5.x |
Arrow | 7.0.0 | 2.0.0 | 0.10.0 | 0.10.0 |
Client del catalogo dati AWS Glue | 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
Di seguito sono riportati gli aggiornamenti dei driver JDBC:
Driver | Versione del driver JDBC nelle precedenti versioni di AWS Glue | Versione del driver JDBC in AWS Glue 3.0 | Versione del driver JDBC in AWS Glue 4.0 |
---|---|---|---|
MySQL | 5.1 | 8.0.23 | 8.0.23 |
Microsoft SQL Server | 6.1.0 | 7.0.0 | 9.4.0 |
Database Oracle | 11.2 | 21.1 | 21.7 |
PostgreSQL | 42.1.0 | 42.2.18 | 42.3.6 |
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
Di seguito sono riportati gli aggiornamenti dei connettori:
Driver | Versione del connettore in AWS Glue 3.0 | Versione del connettore in AWS Glue 4.0 |
---|---|---|
MongoDB | 3.0.0 | 10.0.4 |
Hudi | 0.10.1 | 0.12.1 |
Delta Lake | 1.0.0 | 2.1.0 |
Iceberg | 0.13.1 | 1.0.0 |
DynamoDB | 1.11 | 1.12 |