Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
Come posso vedere il file di origine Amazon S3 relativo a una riga di una tabella Athena?
Desidero che i risultati della mia query in Amazon Athena restituiscano le posizioni dei file di origine Amazon Simple Storage Service (Amazon S3) per ogni riga dei risultati.
Breve descrizione
Puoi scrivere query in Athena che restituiscono i percorsi dei file di origine per i dati restituiti dalla query.
- Per individuare il file Amazon S3 che contiene i dati restituiti da una riga specifica di una tabella Athena, esegui una query SELECT $path.
- Per individuare le righe della tabella Athena associate a un file Amazon S3 specifico, esegui una query SELECT con la condizione WHERE $path.
Risoluzione
Prerequisiti: prima di eseguire le query riportate in questo articolo, devi disporre di quanto segue:
- Una tabella Athena. Se non disponi di una tabella, esegui un'istruzione CREATE TABLE.
- Un utente o un ruolo AWS Identity and Access Management (AWS IAM) che ha le autorizzazioni per eseguire query in Athena.
Individua il file S3 associato a una riga di una tabella Athena
Per individuare il percorso del file di origine S3 relativo a una riga di una tabella Athena, esegui query simili alle seguenti:
-
Per ottenere i dati desiderati, esegui una query SELECT sulla tabella:
SELECT * FROM "my_database"."my_table" WHERE year=2019; -
Per individuare il file di origine Amazon S3 per i dati, esegui una query simile alla seguente:
SELECT "$path" FROM "my_database"."my_table" WHERE year=2019;
La query precedente restituisce il percorso Amazon S3 per i dati:
s3://awsexamplebucket/datasets_mytable/year=2019/data_file1.json
Trova le righe della tabella Athena che provengono da un file S3 specifico
Per trovare tutte le righe della tabella Athena che hanno un file di origine S3 specifico, segui questa procedura:
-
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 di 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/ -
Per ottenere i dati associati al file Amazon S3, in Athena, esegui una query SELECT sulla tabella:
SELECT *, "$path" FROM "my_database"."my_table" WHERE regexp_like("$path", 's3://awsexamplebucket/my_table/my_partition/file-01.csv')
La query precedente restituisce i dati che provengono dal percorso Amazon S3 specificato:
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'
Le query in Athena supportano la funzionalità wildcard con la funzione regexp_like. Ad esempio, per ottenere i dati provenienti da tutti i file di origine che condividono una stringa di caratteri nel loro percorso, esegui una query come questa:
SELECT *, "$path" FROM "my_database"."my_table" WHERE regexp_like("$path", 'file-1')
Questa query restituisce tutte le righe con nomi di percorso del file che contengono file-1:
id name year $path 13 Mia 2009 's3://awsexamplebucket/my_table/my_partition/file-10.csv' 14 Mary 2010 's3://awsexamplebucket/my_table/my_partition/file-10.csv' 15 Max 2011 's3://awsexamplebucket/my_table/my_partition/file-11.csv' 16 Merriam 2012 's3://awsexamplebucket/my_table/my_partition/file-12.csv'
Informazioni correlate
Ottenere le posizioni dei file per i dati di origine in Amazon S3
- Argomenti
- Analytics
- Lingua
- Italiano
Video correlati

