Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utiliser la compression dans Athena
Athena prend en charge divers formats de compression pour la lecture et l'écriture de données, y compris la lecture d'une table qui utilise plusieurs formats de compression. Par exemple, Athena peut lire avec succès les données d'un tableau qui utilise le format de fichier Parquet lorsque certains fichiers Parquet sont compressés avec Snappy et que d'autres fichiers Parquet sont compressés avec. GZIP Le même principe s'applique aux ORC formats de fichiers texte et JSON de stockage.
Athena prend en charge les formats de compression suivants :
-
BZIP2— Format utilisant l'algorithme Burrows-Wheeler.
-
DEFLATE— Algorithme de compression basé sur LZSS
le codage Huffman . Deflate n'est pertinent que pour le format de fichier Avro. -
GZIP— Algorithme de compression basé sur Deflate. Pour les tables Hive dans les versions 2 et 3 du moteur Athena, et les tables Iceberg dans la version 2 du moteur AthenaGZIP, c'est le format de compression d'écriture par défaut pour les fichiers dans les formats Parquet et de stockage de fichiers texte. Les fichiers au format
tar.gz
ne sont pas pris en charge. -
LZ4— Ce membre de la famille Lempel-Ziv 77 (LZ7) met également l'accent sur la vitesse de compression et de décompression plutôt que sur la compression maximale des données. LZ4possède les formats de cadrage suivants :
-
LZ4Raw/Unframed — Implémentation standard non encadrée du format de compression par blocs. LZ4 Pour plus d'informations, consultez la description du format de LZ4 bloc
sur GitHub. -
LZ4framed — L'implémentation de cadrage habituelle de. LZ4 Pour plus d'informations, consultez la description du format de LZ4 cadre
sur GitHub. -
LZ4compatible avec hadoop — Implémentation d'Apache Hadoop de. LZ4 Cette implémentation permet d'encapsuler LZ4 la compression avec la classe BlockCompressorStream.java.
-
-
LZO— Format utilisant l'algorithme Lempel—Ziv—Oberhumer, qui met l'accent sur les vitesses de compression et de décompression élevées plutôt que sur la compression maximale des données. LZOpossède deux implémentations :
-
Standard LZO — Pour plus d'informations, consultez le LZO résumé
sur le site Web d'Oberhumer. -
LZOcompatible avec hadoop — Cette implémentation enveloppe l'LZOalgorithme avec la classe .java. BlockCompressorStream
-
-
SNAPPY— Algorithme de compression appartenant à la famille Lempel-Ziv 77 (). LZ7 Snappy met l'accent sur une vitesse de compression et de décompression élevée plutôt que sur la compression maximale des données.
-
ZLIB— Basé sur Deflate, ZLIB il s'agit du format de compression d'écriture par défaut pour les fichiers au format de stockage de ORC données. Pour plus d'informations, consultez la page zlib
sur GitHub. -
ZSTD— L'algorithme de compression de données en temps réel Zstandard est un algorithme
de compression rapide qui fournit des taux de compression élevés. La bibliothèque Zstandard (ZSTD) est fournie sous forme de logiciel open source sous forme de BSD licence. ZSTDest la compression par défaut pour les tables Iceberg. Lors de l'écriture de données ZSTD compressées, Athena utilise le niveau ZSTD de compression 3 par défaut. Pour plus d'informations sur l'utilisation des niveaux de ZSTD compression dans Athena, consultez. Utiliser les niveaux ZSTD de compression
Note
Athena ne prend pas en charge l'écriture de fichiers Parquet compressés au format LZ4 ORLZO. Les lectures pour ces formats de compression sont prises en charge.
Spécifier les formats de compression
Lorsque vous écrivez CREATE TABLE des CTAS instructions, vous pouvez définir des propriétés de compression qui indiquent le type de compression à utiliser lorsqu'Athena écrit dans ces tables.
-
PourCTAS, voirCTASpropriétés du tableau. Pour obtenir des exemples, consultez Exemples de CTAS requêtes.
-
Pour CREATETABLE, voir ALTER TABLE SET TBLPROPERTIES la liste des propriétés de la table de compression.
Ne spécifiez aucune compression
CREATETABLEles instructions permettent d'écrire des fichiers non compressés. Pour écrire des fichiers non compressés, utilisez la syntaxe suivante :
-
CREATETABLE(fichier texte ouJSON) — Dans
TBLPROPERTIES
, spécifiezwrite.compression = NONE
. -
CREATETABLE(Parquet) — Dans
TBLPROPERTIES
, précisezparquet.compression = UNCOMPRESSED
. -
CREATETABLE(ORC) — Dans
TBLPROPERTIES
, spécifiezorc.compress = NONE
.
Remarques et ressources
-
Actuellement, les extensions de fichier en majuscules telles que
.GZ
ou.BZIP2
ne sont pas reconnues par Athena. Évitez d'utiliser des jeux de données avec des extensions de fichier en majuscules ou renommez les extensions des fichiers de données en minuscules. -
Pour les données dansCSV, et TSVJSON, Athena détermine le type de compression à partir de l'extension du fichier. Si aucune extension de fichier n'est présente, Athena traite les données comme du texte brut non compressé. Si vos données sont compressées, assurez-vous que le nom de fichier comprend l'extension de compression, par exemple
gz
. -
Le format de ZIP fichier n'est pas pris en charge.
-
Pour interroger les journaux Amazon Data Firehose depuis Athena, les formats pris en charge GZIP incluent la compression ou les fichiers avec compressionORC. SNAPPY
-
Pour plus d'informations sur l'utilisation de la compression, consultez la section 3 (« Compresser et diviser des fichiers ») du AWS Article du blog Big Data Les 10 meilleurs conseils d'optimisation des performances pour Amazon Athena
.