Tabelle Apache Iceberg - Amazon Athena

Tabelle Apache Iceberg

È possibile utilizzare Athena per eseguire le query di lettura, temporali e scrittura sulle tabelle Apache Iceberg.

Apache Iceberg è un formato a tabella aperta per set di dati analitici di dimensioni molto grandi. Iceberg gestisce grandi raccolte di file come tabelle e supporta le moderne operazioni analitiche di data lake come inserimento a livello di record, aggiornamento, eliminazione e query temporali. La specifica di Iceberg consente un'evoluzione perfetta delle tabelle, come l'evoluzione di schemi e partizioni; inoltre è concepita per un utilizzo ottimizzato su Amazon S3. Iceberg aiuta inoltre a garantire la correttezza dei dati in scenari di scrittura simultanea.

Per ulteriori informazioni su Apache Iceberg, consulta https://iceberg.apache.org/.

Considerazioni e limitazioni

Il supporto di Athena per le tabelle Iceberg ha le seguenti limitazioni:

  • Supporto per la versione Iceberg — Athena supporta la versione 1.4.2 di Apache Iceberg.

  • Tabelle registrate con Lake Formation — Athena attualmente non supporta le operazioni DDL sulle tabelle Iceberg registrate con Lake Formation.

  • Interrogazioni sullo schema informativo: quando si esegue una query sullo schema informativo delle tabelle Iceberg, Athena utilizza i metadati S3 come fonte di verità per i metadati delle colonne. Ciò significa che le informazioni sulle colonne derivano dai file S3 sottostanti anziché dai metadati del catalogo. Questo comportamento è diverso da altri formati di tabella in cui i metadati del catalogo potrebbero essere la fonte principale per le informazioni sulle colonne.

  • Tabelle solo con catalogo AWS Glue: solo le tabelle Iceberg create rispetto al catalogo AWS Glue basato sulle specifiche definite dall'implementazione del catalogo Glue open source sono supportate da Athena.

  • Supporto di blocco tabella solo da parte di AWS Glue: a differenza dell'implementazione del catalogo Glue open source, che supporta il blocco personalizzato plug-in, Athena supporta solo blocco ottimistico AWS Glue. L'utilizzo di Athena per modificare una tabella Iceberg con qualsiasi altra implementazione di blocco causerà potenziali perdite di dati e interruzioni delle transazioni.

  • Formati di file supportati: il supporto del formato di file Iceberg in Athena dipende dalla versione del motore Athena, come illustrato nella tabella seguente.

    • Parquet

    • ORC

    • Avro

  • Metadati limitati da Iceberg: Lake Formation non valuta le tabelle dei metadati di Iceberg. Pertanto, le tabelle dei metadati Iceberg sono limitate se nella tabella base sono presenti filtri di riga o cella di Lake Formation o se non si dispone delle autorizzazioni per visualizzare tutte le colonne nella tabella base. In questi casi, l'interrogazione delle tabelle di metadati $partitions$files,$manifests, e $snapshots Iceberg ha esito negativo e viene visualizzato un errore. AccessDeniedException Inoltre, la colonna dei metadati $path presenta le stesse restrizioni di Lake Formation e ha esito negativo quando viene selezionata dalla query. Tutte le altre tabelle di metadati possono essere interrogate indipendentemente dai filtri di Lake Formation. Per ulteriori informazioni sui metadata, consulta .

  • Tabelle Iceberg v2: Athena crea e opera solo su tabelle Iceberg v2. Per la differenza tra le tabelle v1 e v2, consulta Modifiche al tipo di formato nella documentazione di Apache Iceberg.

  • Visualizzazione dei tipi di orari senza fuso orario: l'ora e il timestamp senza tipi di fuso orario vengono visualizzati in UTC. Se il fuso orario non è specificato in un'espressione di filtro su una colonna temporale, viene utilizzato UTC.

  • Precisione dei dati relativi al timestamp: mentre Iceberg supporta una precisione al microsecondo per il tipo di dati del timestamp, Athena per i timestamp supporta solo una precisione al millisecondo sia in lettura che in scrittura. Per i dati nelle colonne relative al tempo riscritti durante le operazioni di compattazione manuale, Athena mantiene solo una precisione al millisecondo.

  • Operazioni non supportate:le seguenti operazioni Athena non sono supportate per le tabelle Iceberg.

  • Viste: utilizza CREATE VIEW per creare viste Athena come descritto nella pagina Utilizzo delle viste . Se desideri utilizzare le specifiche di visualizzazione Iceberg per creare viste, contatta athena-feedback@amazon.com.

  • Comandi di gestione TTF non supportati in AWS Lake Formation: sebbene sia possibile utilizzare Lake Formation per gestire le autorizzazioni di accesso di lettura di TransactionTable Formats (TTF) come Apache Iceberg, Apache Hudi e Linux Foundation Delta Lake, non è possibile utilizzare Lake Formation per gestire le autorizzazioni delle operazioni come VACUUM, MERGE, UPDATE o OPTIMIZE con questi formati di tabella. Per ulteriori informazioni sull'integrazione di Lake Formation con Athena, consulta Utilizzo di AWS Lake Formation con Amazon Athena nella Guida per gli sviluppatori di AWS Lake Formation.

  • Partizionamento per campi annidati: il partizionamento per campi annidati non è supportato. Il tentativo di eseguire questa operazione genera il messaggio NOT_SUPPORTED: Il partizionamento per campo annidato non è supportato:column_name.nested_field_name.

  • Ignorare gli oggetti S3 Glacier non supportati: se gli oggetti nella tabella Apache Iceberg si trovano in una classe di archiviazione Amazon S3 Glacier, l'impostazione della proprietà della tabella read_restored_glacier_objects su false non ha alcun effetto.

    Ad esempio, supponiamo di emettere il seguente comando:

    ALTER TABLE table_name SET TBLPROPERTIES ('read_restored_glacier_objects' = 'false')

    Per le tabelle Iceberg e Delta Lake, il comando produce l'errore Chiave delle proprietà della tabella non supportata: read_restored_glacier_objects. Per le tabelle Hudi, il comando ALTER TABLE non produce un errore, ma gli oggetti Amazon S3 Glacier ancora non verranno ignorati. L'esecuzione delle query SELECT dopo il comando ALTER TABLE continuerà a restituire tutti gli oggetti.

Se si desidera che Athena supporti una particolare funzionalità, inviare un feedback all'indirizzo athena-feedback@amazon.com.