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 HudiUpsert
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:
-
Conformità alle normative sulla privacy, come il Regolamento generale sulla protezione dei dati
(GDPR) e il California Consumer Privacy Act (CCPA), che impongono il diritto delle persone di rimuovere le informazioni personali o modificare il modo in cui vengono utilizzati i propri dati. -
Utilizzo di dati in streaming da sensori e altri dispositivi IoT (Internet of Things) che richiedono specifici eventi di inserimento e aggiornamento dei dati.
-
Implementazione di un sistema di acquisizione dei dati di modifica (CDC).
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
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
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 |