Je souhaite stocker les résultats des requêtes Amazon Athena dans un format autre que CSV, tel que JSON ou Parquet.
Brève description
Athena prend uniquement en charge les fichiers de sortie CSV lorsque vous exécutez des requêtes de type SELECT. Pour stocker un fichier de sortie Athena dans un format autre que CSV, choisissez l'une des options suivantes :
Une instruction UNLOAD écrit la sortie d'une requête SELECT dans un format de données parmi divers choix de formats, mais ne crée pas de nouvelle table. Une requête CTAS écrit elle aussi la sortie dans différents formats de données, mais crée en plus une nouvelle table pour cette sortie. Les commandes UNLOAD et CTAS prennent toutes deux en charge des formats tels qu'Apache Parquet, ORC, Apache Avro et JSON.
Remarque : les commandes UNLOAD et CTAS prennent toutes deux en charge le partitionnement, mais seul les requêtes CTAS prennent en charge la compartimentation.
Résolution
Exécution d’une requête UNLOAD
Pour utiliser l'instruction UNLOAD, placez votre requête SELECT entre parenthèses après UNLOAD et spécifiez le type de fichier dans une instruction WITH. Par exemple, la requête suivante enregistre la sortie de la requête SELECT en tant que fichier JSON dans le compartiment 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')
Pour découvrir comment modifier la sortie du fichier à partir d’une instruction UNLOAD, consultez la page Paramètres.
Exécution d’une requête CTAS
Pour stocker la sortie d'une requête CTAS dans un format autre que CSV, vous pouvez configurer la propriété format dans une instruction WITH. Par exemple, la requête suivante crée une nouvelle table appelée ctas-parquet-example à partir des données renvoyées par la commande SELECT au format Parquet :
`CREATE TABLE ctas_parquet_example WITH (format = '`_`PARQUET`_`') AS SELECT col1, col2, FROM example_table;`
Pour en savoir plus sur les paramètres CTAS, consultez la section Propriétés de table CTAS.
Si vous avez uniquement besoin de conserver le fichier de données de sortie mais pas la nouvelle table, vous pouvez supprimer la table CTAS une fois la requête terminée.
Informations connexes
Considérations et restrictions relatives aux requêtes CTAS
Exemples de requêtes CTAS