Comment puis-je stocker une sortie de requête Athena dans un format autre que CSV, tel qu'un format compressé ?

Date de la dernière mise à jour : 22/05/2020

Je souhaite stocker les résultats de requête Amazon Athena dans un format autre que CSV, tel que JSON ou un format compressé. Comment dois-je procéder ?

Solution

Athena prend uniquement en charge les fichiers de sortie CSV. Si vous souhaitez stocker les fichiers de sortie de requête dans un format différent, utilisez une requête CREATE TABLE AS SELECT (CTAS) et configurez la propriété de format. Une fois la requête terminée, supprimez la table CTAS. Tenez compte des points suivants :

  • Vous pouvez définir le format sur ORC, PARQUET, AVRO, JSON ou TEXTFILE. Si vous ne spécifiez pas de format pour la requête CTAS, Athena utilise Parquet par défaut.
  • Le nom du paramètre, format, doit être répertorié en minuscules, sinon votre requête CTAS échoue. Pour obtenir un exemple, consultez Exemple : Écriture des résultats de requête dans un autre format.
  • Par défaut, toutes les requêtes CTAS utilisent la compression GZIP. Pour Parquet et ORC, vous pouvez utiliser les options parquet_compression et orc_compression pour spécifier d'autres types de compression, tels que SNAPPY. Pour obtenir un exemple, consultez Exemple : spécification des formats de stockage et de compression des données.
  • Pour les formats texte, vous pouvez spécifier un field_delimiter comme suit : WITH (field_delimiter = ','). Si vous ne spécifiez pas de délimiteur de champ, Athena utilise \001 par défaut.
  • Si vous utilisez le paramètre external_location dans la requête CTAS, assurez-vous que l'emplacement Amazon Simple Storage Service (Amazon S3) ne comporte pas de données. Sinon, vous pouvez voir une erreur similaire à celle-ci : « HIVE_PATH_ALREADY_EXISTS: Target directory for table 'table_name' already exists: s3://AWSDOC-EXAMPLE-BUCKET ». Pour plus d'informations sur le paramètre external_location consultez Propriétés de la table CTAS.

Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?