Desidero archiviare i risultati delle query Amazon Athena in un formato diverso da CSV, ad esempio JSON o Parquet.
Breve descrizione
Quando si eseguono query SELECT, Athena supporta solo i file di output CSV. Per archiviare l'output di Athena in formati diversi da CSV, scegli una delle seguenti opzioni:
L'istruzione UNLOAD scrive l'output di una query SELECT in numerosi formati di dati, ma non crea una nuova tabella. Anche una query CTAS scrive l'output in diversi formati di dati, ma crea una nuova tabella con quell'output. Sia UNLOAD che CTAS supportano formati quali Apache Parquet, ORC, Apache Avro e JSON.
Nota: sia UNLOAD che CTAS supportano il partizionamento, ma solo CTAS supporta il bucketing.
Risoluzione
Esegui una query UNLOAD
Per utilizzare l'istruzione UNLOAD, inserisci la query SELECT tra parentesi dopo UNLOAD e specifica il tipo di file in un'istruzione WITH. Ad esempio, la seguente query salva l'output di SELECT come file JSON nel bucket Amazon Simple Storage Service (Amazon S3) amzn-s3-example-bucket:
UNLOAD (SELECT col1, col2 FROM example_table)
TO 's3://amzn-s3-example-bucket/example_folder/'
WITH (format = 'JSON')
Per ulteriori informazioni su come modificare l'output del file da UNLOAD, consulta Parametri.
Esegui una query CTAS
Per archiviare l'output di una query CTAS in un formato diverso da CSV, configura la proprietà format in un'istruzione WITH. Ad esempio, la seguente query crea una nuova tabella denominata ctas-parquet-example dai dati restituiti da SELECT in formato Parquet:
`CREATE TABLE ctas_parquet_example WITH (format = '`_`PARQUET`_`') AS SELECT col1, col2, FROM example_table;`
Per ulteriori informazioni sui parametri CTAS, consulta CTAS table properties.
Se devi conservare solo il file di dati di output e non la nuova tabella, elimina la tabella CTAS una volta completata l’esecuzione della query.
Informazioni correlate
Considerations and limitations for CTAS queries
Examples of CTAS queries