Interroga i set di dati Apache Hudi - Amazon Athena

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

Interroga i set di dati Apache Hudi

Apache Hudi è un framework open source per la gestione dei dati che semplifica l'elaborazione incrementale dei dati. Le operazioni di inserimento, aggiornamento, upsert ed eliminazione a livello di registro vengono elaborate in modo molto più granulare, riducendo il sovraccarico. Upsert si riferisce alla possibilità di inserire registri in un set di dati esistente se non esistono già o di aggiornarli.

Hudi gestisce gli eventi di inserimento e aggiornamento dei dati senza creare molti file di piccole dimensioni che possono causare problemi di prestazioni per l'analisi. Apache Hudi tiene traccia automaticamente delle modifiche e unisce i file in modo che abbiano dimensioni ottimali. Ciò evita la necessità di creare soluzioni personalizzate in grado di monitorare e riscrivere molti file di piccole dimensioni in meno file di grandi dimensioni.

I set di dati Hudi sono adatti per i seguenti casi d'uso:

I set di dati gestiti da Hudi sono archiviati in Amazon S3 tramite formati di archiviazione aperti. Attualmente, Athena può leggere set di dati Hudi compattati ma non scrivere dati Hudi. Athena supporta fino alla versione 0.8.0 di Hudi con la versione 2 del motore Athena e la versione 0.14.0 di Hudi con la versione 3 del motore Athena. È soggetta a modifiche. Athena non può garantire la compatibilità di lettura con le tabelle create con versioni successive di Hudi. Per ulteriori informazioni sulle versioni del motore Athena, consulta Controllo delle versioni del motore di Athena. Per ulteriori informazioni sulle funzionalità e sul controllo delle versioni di Hudi, consulta la documentazione di Hudi sul sito Web di Apache.

Un set di dati Hudi può essere tra i seguenti tipi:

  • Copia in scrittura (CoW): i dati vengono memorizzati in un formato colonnare (Parquet) e ogni aggiornamento crea una nuova versione dei file durante una scrittura.

  • Unisci in lettura (MoR) — I dati vengono archiviati utilizzando una combinazione di formati a colonne (Parquet) e basati su righe (Avro). Gli aggiornamenti vengono registrati nei file delta basati su righe e vengono compattati in base alle necessità per creare nuove versioni dei file colonnari.

Con i set di dati CoW, ogni volta che c'è un aggiornamento a un record, il file che contiene il record viene riscritto con i valori aggiornati. Quando si lavora con un set di dati MoR, ogniqualvolta è disponibile un aggiornamento Hudi scrive solo la riga per il registro modificato. MoR è più adatto per carichi di lavoro pesanti in scrittura o modifiche con meno letture. CoW è più adatto per carichi di lavoro pesanti di lettura su dati che cambiano meno frequentemente.

Hudi fornisce tre tipi di query per accedere ai dati:

  • Query snapshot: query che vedono l'ultima snapshot della tabella a partire da una determinata operazione di commit o compattazione. Per le tabelle MoR, le query snapshot espongono lo stato più recente della tabella unendo i file di base e delta della parte di file più recente al momento della query.

  • Query incrementali: le query vedono solo i nuovi dati scritti nella tabella, dal momento di un determinato commit/compattazione. Questo fornisce in modo efficace flussi di modifica per abilitare pipeline di dati incrementali.

  • Leggi query ottimizzate: per le tabelle MoR, le query vedono i dati più recenti compattati. Per le tabelle CoW, le query vedono i dati più recenti impegnati.

Nella tabella seguente vengono illustrati i possibili tipi di query Hudi per ciascun tipo di tabella.

Tipo tabella Possibili tipi di query Hudi
Copia in scrittura snapshot, incrementale
Unisci in lettura snapshot, incrementale, lettura ottimizzata

Attualmente, Athena supporta query snapshot e query di lettura ottimizzate, ma non query incrementali. Sulle tabelle MoR, tutti i dati esposti a query ottimizzate di lettura sono compattati. Ciò fornisce buone prestazioni ma non include i commit delta più recenti. Le query snapshot contengono i dati più aggiornati ma incorrono in un sovraccarico computazionale che rende queste query meno performanti.

Per ulteriori informazioni sui compromessi tra i tipi di tabella e query, consulta Tipi di tabella e query nella documentazione di Apache Hudi.

Cambiamento terminologico Hudi: le viste sono ora query

A partire dalla versione 0.5.1 di Apache Hudi, quelle che in precedenza venivano chiamate viste sono ora chiamate query. Nella tabella seguente vengono riepilogate le modifiche tra i termini precedenti e quelli nuovi.

Vecchio termine Nuovo termine

CoW: visualizzazione ottimizzata per la lettura

MoR: visualizzazione in tempo reale

Query snapshot

Visualizzazione incrementale Query incrementale
Visualizzazione ottimizzata per la lettura MoR Query ottimizzata per la lettura