Share Your AWS re:Post Experience - Quick 3 Question Survey
Help us improve AWS re:Post! We're interested in understanding how you use re:Post and its impact on your AWS journey. Please take a moment to complete our brief 3-question survey.
Come posso vedere il file sorgente di Amazon S3 relativo a una riga in una tabella Athena?
Sto eseguendo una query su una tabella in Amazon Athena. Desidero scoprire il file Amazon Simple Storage Service (Amazon S3) all'origine di ogni riga dell'output o le righe corrispondenti a un file specifico.
Breve descrizione
- Per scoprire quale file Amazon S3 contiene i dati restituiti da una riga specifica in una tabella Athena, esegui una query SELECT $path.
- Per scoprire quali righe della tabella Athena sono associate a uno specifico file Amazon S3, esegui una query SELECT con la condizione WHERE $path.
Tali query sono utili per analizzare dati imprevisti e creare query che richiedono informazioni sui dati di origine.
Risoluzione
Prima di eseguire le seguenti query, assicurati di disporre di quanto segue:
- Una tabella Athena. Se non disponi di una tabella, esegui un'istruzione CREATE TABLE.
- Un utente o un ruolo di AWS Identity and Access Management (IAM) che dispone delle autorizzazioni per eseguire le query Athena.
Per trovare il file S3 associato a una riga di una tabella Athena:
1. Esegui una query SELECT sulla tua tabella per restituire i dati che desideri:
SELECT * FROM "my_database"."my_table" WHERE year=2019;
2. Per trovare il file sorgente Amazon S3 per i dati, esegui una query simile alla seguente:
SELECT "$path" FROM "my_database"."my_table" WHERE year=2019;
La query restituisce il percorso Amazon S3 per i dati:
s3://awsexamplebucket/datasets_mytable/year=2019/data_file1.json
Per restituire le righe della tabella Athena che provengono da uno specifico file Amazon S3:
1. Verifica il nome e la posizione dell'oggetto Amazon S3 per cui desideri recuperare le righe. Se non conosci il nome e la posizione dell'oggetto, esegui il comando ls per elencare gli oggetti sotto uno specifico bucket o prefisso S3. Nell'esempio seguente, sostituisci s3://awsexamplebucket/my_table/my_partition/ con il percorso della partizione.
aws s3 ls s3://awsexamplebucket/my_table/my_partition/
2. In Athena, esegui una query SELECT sulla tua tabella per restituire i dati associati al file Amazon S3:
SELECT *,"$path" FROM "my_database"."my_table" WHERE regexp_like("$path", 's3://awsexamplebucket/my_table/my_partition/file-01.csv')
La query restituisce dati che corrispondono al percorso Amazon S3:
id name year $path 3 John 1999 's3://awsexamplebucket/my_table/my_partition/file-01.csv' 4 Jane 2000 's3://awsexamplebucket/my_table/my_partition/file-01.csv'
Questa query supporta anche alcune funzionalità dei caratteri jolly. Ad esempio, per restituire tutti i dati che contengono parte di un nome di file, esegui una query come la seguente:
SELECT *,"$path" FROM "my_database"."my_table" WHERE regexp_like("$path", '\-02')
Questa query restituisce tutte le righe con nomi di file che contengono -02:
id name year $path 13 Mia 2009 's3://awsexamplebucket/my_table/my_partition/file-02.csv' 14 Mary 2010 's3://awsexamplebucket/my_table/my_partition/file-02.csv' 15 Max 2011 's3://awsexamplebucket/my_table/my_partition/file-02.csv' 16 Merriam 2012 's3://awsexamplebucket/my_table/my_partition/file-02.csv'
Informazioni correlate

Contenuto pertinente
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata 2 anni fa