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à.
Utilizzo della versione 3 delle specifiche del formato di tabella Iceberg
L'ultima versione della specifica del formato di tabella di Apache Iceberg è la versione 3. Questa versione introduce funzionalità avanzate per la creazione di data lake con dimensioni di petabyte con prestazioni migliorate e costi operativi ridotti. Risolve i comuni problemi di prestazioni riscontrati con la versione 2, in particolare per quanto riguarda gli aggiornamenti in batch e le operazioni di eliminazione in conformità.
AWS fornisce supporto per i vettori di eliminazione e la derivazione delle righe come definito nella specifica Iceberg versione 3. Queste funzionalità sono disponibili con Apache Spark nei seguenti siti. Servizi AWS
| Servizio AWS | Supporto per la versione 3 |
|---|---|
|
Amazon EMR versione 7.12 e successive |
|
|
Sì |
|
|
AWS Glue: API REST Iceberg, manutenzione delle tabelle |
Sì |
|
Sì |
|
|
Tabelle Amazon S3: API REST Iceberg, manutenzione delle tabelle |
Sì |
|
No |
Caratteristiche principali della versione 3
I vettori di eliminazione sostituiscono i file di eliminazione posizionale utilizzati nella versione 2 con un formato binario efficiente memorizzato come file Puffin. In questo modo si elimina l'amplificazione della scrittura dovuta agli aggiornamenti casuali in batch e alle cancellazioni dovute alla conformità al Regolamento generale sulla protezione dei dati (GDPR), e si riduce significativamente il sovraccarico legato alla conservazione di nuovi dati. Organizations che elaborano aggiornamenti ad alta frequenza vedranno miglioramenti immediati nelle prestazioni di scrittura e costi di storage ridotti grazie a un minor numero di file di piccole dimensioni.
La derivazione delle righe consente un tracciamento preciso delle modifiche a livello di riga. I sistemi a valle possono elaborare le modifiche in modo incrementale, velocizzando le pipeline di dati e riducendo i costi di elaborazione per i flussi di lavoro di change data capture (CDC). Questa funzionalità integrata elimina la necessità di implementazioni personalizzate per il monitoraggio delle modifiche.
Compatibilità delle versioni
La versione 3 mantiene la compatibilità con le versioni precedenti con le tabelle della versione 2. I servizi AWS supportano contemporaneamente le tabelle della versione 2 e della versione 3, quindi puoi:
-
Esegui query su entrambe le tabelle della versione 2 e della versione 3.
-
Aggiorna le tabelle della versione 2 esistente alla versione 3 senza riscrittura dei dati.
-
Esegui query di viaggio nel tempo che riguardano le istantanee della versione 2 e della versione 3.
-
Utilizza l'evoluzione dello schema e il partizionamento nascosto tra le versioni delle tabelle.
Guida introduttiva alla versione 3
Prerequisiti
Prima di utilizzare le tabelle della versione 3, assicurati di disporre di:
-
E Account AWS con autorizzazioni AWS Identity and Access Management (IAM) appropriate.
-
Accesso a uno o più servizi di AWS analisi (Amazon EMR, notebook AWS Glue Amazon SageMaker Unified Studio o Amazon S3 Tables).
-
Un bucket S3 per l'archiviazione di dati e metadati delle tabelle.
-
Un bucket da tavolo per iniziare a usare Amazon S3 Tables o un bucket S3 generico se stai costruendo la tua infrastruttura Iceberg.
-
AWS Glue Un catalogo configurato.
Creazione di tabelle della versione 3
Creazione di nuove tabelle
Per creare una nuova tabella Iceberg versione 3, imposta la proprietà format-version table su 3.
Usando Spark SQL:
CREATE TABLE IF NOT EXISTS myns.orders_v3 ( order_id bigint, customer_id string, order_date date, total_amount decimal(10,2), status string, created_at timestamp ) USING iceberg TBLPROPERTIES ( 'format-version' = '3' )
Aggiornamento delle tabelle della versione 2 alla versione 3
È possibile aggiornare atomicamente le tabelle della versione 2 esistenti alla versione 3 senza riscrivere i dati.
Usando Spark SQL:
ALTER TABLE myns.existing_table SET TBLPROPERTIES ('format-version' = '3')
Importante
La versione 3 è un aggiornamento unidirezionale. Dopo l'aggiornamento di una tabella dalla versione 2 alla versione 3, non è possibile eseguire il downgrade alla versione 2 tramite operazioni standard.
Cosa succede durante l'aggiornamento:
-
Una nuova istantanea dei metadati viene creata atomicamente.
-
I file di dati esistenti di Parquet vengono riutilizzati.
-
I campi di derivazione delle righe vengono aggiunti ai metadati della tabella.
Dopo l'aggiornamento:
-
La prossima compattazione rimuoverà i file eliminati della vecchia versione 2.
-
Le nuove modifiche utilizzeranno i file vettoriali di eliminazione della versione 3.
L'aggiornamento non esegue un riempimento cronologico dei record di tracciamento delle modifiche alla derivazione delle righe.
Abilitazione dei vettori di eliminazione
Per sfruttare i vettori di eliminazione per aggiornamenti, eliminazioni e unioni, configura la modalità di scrittura.
Usare Spark SQL:
ALTER TABLE myns.orders_v3 SET TBLPROPERTIES ('format-version' = '3', 'write.delete.mode' = 'merge-on-read', 'write.update.mode' = 'merge-on-read', 'write.merge.mode' = 'merge-on-read' )
Queste impostazioni assicurano che le operazioni di aggiornamento, eliminazione e unione creino file vettoriali di eliminazione invece di riscrivere interi file di dati.
Utilizzo della derivazione delle righe per il tracciamento delle modifiche
La versione 3 aggiunge automaticamente i campi di metadati relativi alla derivazione delle righe per tenere traccia delle modifiche.
Usando Spark SQL:
# Query with parameter value provided last_processed_sequence = 47 SELECT id, data, _row_id, _last_updated_sequence_number FROM myns.orders_v3 WHERE _last_updated_sequence_number > :last_processed_sequence
Il _row_id campo identifica in modo univoco ogni riga e _last_updated_sequence_number tiene traccia dell'ultima modifica della riga. Usa questi campi per:
-
Identifica le righe modificate per l'elaborazione incrementale.
-
Tieni traccia della derivazione dei dati per garantire la conformità.
-
Ottimizza le pipeline CDC.
-
Riduci i costi di elaborazione elaborando solo le modifiche.
Le migliori pratiche per la versione 3
Quando usare la versione 3
Valuta la possibilità di effettuare l'aggiornamento alla versione 3 o di iniziare dalla versione 3 quando:
-
Si eseguono aggiornamenti o eliminazioni in batch frequenti.
-
Devi soddisfare il GDPR o i requisiti di cancellazione in conformità.
-
I tuoi carichi di lavoro comportano disturbi ad alta frequenza.
-
Hai bisogno di flussi di lavoro CDC efficienti.
-
Vuoi ridurre i costi di archiviazione derivanti da file di piccole dimensioni.
-
Hai bisogno di migliori funzionalità di tracciamento delle modifiche.
Ottimizzazione delle prestazioni di scrittura
-
Abilita i vettori di eliminazione per carichi di lavoro che richiedono aggiornamenti elevati:
SET TBLPROPERTIES ( 'write.delete.mode' = 'merge-on-read', 'write.update.mode' = 'merge-on-read', 'write.merge.mode' = 'merge-on-read' ) -
Configura le dimensioni dei file appropriate:
SET TBLPROPERTIES ( 'write.target-file-size-bytes' = '536870912' — 512 MB )
Ottimizzazione delle prestazioni di lettura
-
Usa la derivazione delle righe per l'elaborazione incrementale.
-
Usa il viaggio nel tempo per accedere ai dati storici senza copiarli.
-
Abilita la raccolta di statistiche per una migliore pianificazione delle query.
Strategia di migrazione
Quando esegui la migrazione dalla versione 2 alla versione 3, segui queste best practice:
-
Esegui prima il test in un ambiente non di produzione per convalidare il processo di aggiornamento e le prestazioni.
-
Effettua l'upgrade durante i periodi di bassa attività per ridurre al minimo l'impatto sulle operazioni simultanee.
-
Monitora le prestazioni iniziali e monitora le metriche dopo l'aggiornamento.
-
Esegui la compattazione per consolidare i file eliminati dopo l'aggiornamento.
-
Aggiorna la documentazione del team in modo che rifletta le funzionalità della versione 3.
Considerazioni sulla compatibilità
-
Versioni del motore: assicurati che tutti i motori che accedono alla tabella supportino la versione 3.
-
Strumenti di terze parti: verifica la compatibilità dello strumento con la versione 3 prima di eseguire l'aggiornamento.
-
Strategia di backup: test delle procedure di ripristino basate su snapshot.
-
Monitoraggio: aggiorna i dashboard di monitoraggio per le metriche specifiche della versione 3.
Risoluzione dei problemi
Problemi comuni
Errore: «la versione di formato 3 non è supportata»
-
Verifica che la versione del tuo motore supporti la versione 3. Per informazioni specifiche, consultate la tabella all'inizio di questa sezione.
-
Verifica la compatibilità del catalogo.
-
Assicurati di utilizzare le versioni più recenti di Servizi AWS.
Degrado delle prestazioni dopo l'aggiornamento
-
Verificare che non vi siano errori di compattazione. Per ulteriori informazioni, consulta Registrazione e monitoraggio per le tabelle S3 nella documentazione di Amazon S3.
-
Verifica che i vettori di eliminazione siano abilitati. È necessario impostare le seguenti proprietà:
SET TBLPROPERTIES ( 'write.delete.mode' = 'merge-on-read', 'write.update.mode' = 'merge-on-read', 'write.merge.mode' = 'merge-on-read' )È possibile verificare le proprietà della tabella con il codice seguente:
DESCRIBE FORMATTED myns.orders_v3 -
Rivedi la tua strategia di partizione. Un partizionamento eccessivo può portare a file di piccole dimensioni. Esegui la seguente query per ottenere la dimensione media del file per la tua tabella:
SELECT avg(file_size_in_bytes) as avg_file_size_bytes FROM myns.orders_v3.files
Incompatibilità con strumenti di terze parti
-
Verificate che lo strumento supporti le specifiche della versione 3.
-
Valuta la possibilità di mantenere le tabelle della versione 2 per gli strumenti non supportati.
-
Contatta il fornitore dello strumento per conoscere la tempistica del supporto per la versione 3.
Utilizzo della guida
-
Per problemi Servizio AWS specifici, contatta. Supporto AWS
-
Per ricevere assistenza dalla community di Iceberg, usa il canale Iceberg
Slack.
Prezzi
Disponibilità
Il supporto della versione 3 della specifica del formato di tabella Iceberg è disponibile in tutti i paesi in Regioni AWS
cui operano Amazon EMR AWS Glue e S3 Tables. AWS Glue Data CatalogPer la disponibilità per regione, consulta Servizi AWS per regione.