Eseguire query su dati di tabelle Iceberg - Amazon Athena

Eseguire query su dati di tabelle Iceberg

Per eseguire query su un set di dati Iceberg, utilizza una istruzione SELECT standard come la seguente. Le query seguono la specifica del formato v2 di l'Apache Iceberg ed eseguono l'unione in lettura delle eliminazioni sia di posizione che di uguaglianza.

SELECT * FROM [db_name.]table_name [WHERE predicate]

Per ottimizzare i tempi delle query, tutti i predicati vengono "spinti" più vicino a dove si trovano i dati.

Per informazioni temporali e di versione, consultare Eseguire query temporali e di versione.

Creare ed eseguire di query sulle viste con le tabelle Iceberg

Per creare ed eseguire query sulle viste Athena sulle tabelle Iceberg, utilizza le viste CREATE VIEW come descritto nella pagina Utilizzo delle viste .

Esempio:

CREATE VIEW view1 AS SELECT * FROM iceberg_table
SELECT * FROM view1

Se desideri utilizzare le specifiche di visualizzazione Iceberg per creare viste, contatta athena-feedback@amazon.com.

Eseguire query sui metadati di tabelle Iceberg

In una query SELECT puoi utilizzare le seguenti proprietà dopo table_name per interrogare i metadati di tabelle Iceberg:

  • $files: mostra i file di dati correnti di una tabella.

  • $manifests: mostra i manifesti dei file correnti di una tabella.

  • $history: mostra la cronologia di una tabella.

  • $partitions: mostra le partizioni correnti di una tabella.

  • $snapshots: mostra gli snapshot di una tabella.

  • $refs: mostra i riferimenti di una tabella.

Esempi

La seguente dichiarazione elenca i file di una tabella Iceberg.

SELECT * FROM "dbname"."tablename$files"

L'istruzione seguente elenca i manifesti di una tabella Iceberg.

SELECT * FROM "dbname"."tablename$manifests"

La seguente dichiarazione mostra la cronologia di una tabella Iceberg.

SELECT * FROM "dbname"."tablename$history"

L'esempio seguente mostra una partizione di una tabella Iceberg.

SELECT * FROM "dbname"."tablename$partitions"

L'esempio seguente elenca le istantanee di una tabella Iceberg.

SELECT * FROM "dbname"."tablename$snapshots"

L'esempio seguente mostra un riferimento per una tabella Iceberg.

SELECT * FROM "dbname"."tablename$refs"

Utilizzare il controllo granulare degli accessi di Lake Formation

La versione 3 del motore Athena supporta il controllo granulare degli accessi Lake Formation con le tabelle Iceberg, incluso il controllo degli accessi con sicurezza a livello di colonna e riga. Questo controllo dell'accesso funziona con le query temporali e con le tabelle che hanno eseguito l'evoluzione dello schema. Per ulteriori informazioni, consulta Controllo granulare degli accessi di Lake Formation e gruppi di lavoro Athena.

Se hai creato la tabella Iceberg al di fuori di Athena, utilizza l'SDK di Apache Iceberg versione 0.13.0 o successiva in modo che le informazioni della colonna della tabella Iceberg siano inserite nel AWS Glue Data Catalog. Se la tua tabella Iceberg non contiene informazioni sulle colonne AWS Glue, puoi utilizzare l'istruzione ALTER TABLE SET TBLPROPERTIES di Athena o la versione più recente dell'SDK di Iceberg per correggere la tabella e aggiornare le informazioni della colonna in AWS Glue.