Come posso archiviare l'output di una query Amazon Athena in un formato diverso da CSV, ad esempio un formato compresso?

3 minuti di lettura
0

Desidero archiviare i risultati delle query Amazon Athena in un formato diverso da CSV, ad esempio JSON o un formato compresso.

Risoluzione

Athena supporta solo file di output CSV. La query UNLOAD scrive i risultati della query da una dichiarazione SELECT al formato di dati specificato. I formati supportati per UNLOAD includono Apache Parquet, ORC, Apache Avro e JSON. CSV è l'unico formato di output utilizzato dalla query SELECT di Athena, ma puoi usare UNLOAD per scrivere l'output di una query SELECT nei formati supportati da UNLOAD. Sebbene sia possibile utilizzare la dichiarazione CTAS per generare dati in formati diversi da CSV, tali dichiarazioni richiedono anche la creazione di una tabella in Athena. La dichiarazione UNLOAD è utile quando si desidera generare i risultati di una query SELECT in un formato non CSV, ma non è necessaria la tabella associata. Ad esempio, un'applicazione downstream potrebbe richiedere che i risultati di una query SELECT siano in formato JSON, e Parquet o ORC potrebbero fornire un vantaggio in termini di prestazioni rispetto a CSV se si intende utilizzare i risultati della query SELECT per ulteriori analisi.

Per archiviare i file di output della query in un formato diverso, utilizza una query CREATE TABLE AS SELECT (CTAS) e quindi configura la proprietà format. Al termine dell'esecuzione della query, elimina la tabella CTAS. Tieni presente quanto segue:

  • È possibile impostare il formato su ORC, PARQUET, AVRO, JSON o TEXTFILE. Se non specifichi un formato per la query CTAS, Athena utilizza Parquet per impostazione predefinita.
  • Il nome del parametro, il formato, deve essere elencato in lettere minuscole, altrimenti la query CTAS ha esito negativo. Per degli esempi, consulta Esempio: scrittura dei risultati delle query in un formato diverso.
  • Per impostazione predefinita, tutte le query CTAS utilizzano la compressione GZIP. Per Parquet e ORC, è possibile utilizzare le opzioni parquet_compression e orc_compression per specificare altri tipi di compressione, come SNAPPY. Per degli esempi, consulta Esempio: specificare i formati di archiviazione e compressione di dati.
  • Per i formati basati su testo, puoi specificare un field_delimiter come questo: WITH (field_delimiter = ','). Se non specifichi un delimitatore di campo, Athena utilizza \001 per impostazione predefinita.
  • Se utilizzi il parametro external_location nella query CTAS, assicurati che la posizione di Amazon Simple Storage Service (Amazon S3) non contenga dati. Altrimenti, potresti visualizzare un errore come questo: "HIVE_PATH_ALREADY_EXISTS: La cartella di destinazione per la tabella table_name esiste già: s3://AWSDOC-EXAMPLE-BUCKET". Per ulteriori informazioni sul parametro external_location, vedere le proprietà della tabella CTAS.

Informazioni correlate

Considerazioni e limitazioni per le query CTAS

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa