Athena での圧縮のサポート - Amazon Athena

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Athena での圧縮のサポート

Athena は、複数の圧縮形式を使用するテーブルからの読み込みなど、データの読み書きのためのさまざまな圧縮形式をサポートしています。例えば、一部の Parquet ファイルが Snappy で圧縮されており、他の Parquet ファイルは GZIP で圧縮されているといった、Parquet ファイル形式を使用するテーブル内のデータも、Athena は正常に読み込むことができます。同様なことが ORC、テキストファイル、および JSON のストレージ形式に対しても当てはまります。

Athena は以下の圧縮形式をサポートしています。

  • BZIP2 – Burrows-Wheeler アルゴリズムを使用する形式。

  • DEFLATELZSS および Huffman コーディングをベースにした圧縮アルゴリズム。DEFLATE が適しているのは Avro ファイル形式のみです。

  • GZIP – DEFLATE をベースにした圧縮アルゴリズム。Athena エンジンバージョン 2 および 3 の Hive テーブル、および Athena エンジンバージョン 2 の Iceberg テーブルの場合、GZIP は、Parquet およびテキストファイルストレージ形式のファイルのデフォルトの書き込み圧縮形式です。tar.gz 形式を使用するファイルはサポートされていません。

  • LZ4 – データの最大圧縮率ではなく、圧縮と解凍速度に焦点を当てた、Lempel-Ziv 77 (LZ7) ファミリーのメンバー。LZ4 には以下のフレーミングフォーマットがあります。

    • LZ4 Raw/Unframed – LZ4 ブロック圧縮形式のフレームを使用しない標準的な実装。詳細については、「」の「LZ4 ブロック形式の説明」を参照してください GitHub。

    • LZ4 Framed – LZ4 の一般的なフレーミング実装。詳細については、「」の「LZ4 フレーム形式の説明」を参照してください GitHub。

    • LZ4 Hadoop-Compatible – LZ4 の Apache Hadoop 向け実装。この実装では、LZ4 圧縮を BlockCompressorStream.java クラスでラップします。

  • LZO – Lempel–Ziv–Oberhumer アルゴリズムを使用する形式。これは、データの最大圧縮率ではなく、圧縮と解凍の高速化に焦点を当てています。LZO には以下の 2 つの実装があります。

    • Standard LZO – 詳細については、Oberhumer ウェブサイトで LZO の「abstract」(抽象化) を参照してください。

    • LZO hadoop-compatible – この実装では、LZO アルゴリズムを BlockCompressorStream.java クラスでラップします。

  • SNAPPY – Lempel-Ziv 77 (LZ7) ファミリー内の圧縮アルゴリズムの一部。SNAPPY は、データの最大圧縮率ではなく、圧縮と解凍の高速化に焦点を当てています。

  • ZLIB – ORC データストレージ形式のファイルで、書き込み圧縮にデフォルトで使用する、DEFLATE をベースにした圧縮形式 詳細については、「」の「zlib」ページを参照してください GitHub。

  • ZSTDZstandard real-time data compression algorithm は、高い圧縮率を実現する高速圧縮アルゴリズムです。Zstandard (ZSTD) ライブラリは、BSD ライセンスにより、オープンソースソフトウェアとして提供されています。ZSTD は Iceberg テーブル用のデフォルトの圧縮です。ZSTD 圧縮データの書き込み時、Athena はディフォルトで ZSTD 圧縮レベル 3 を使用します。Athena での ZSTD 圧縮レベルの使用の詳細については、「Athena での ZSTD 圧縮レベルの使用」を参照してください。

圧縮形式の指定

CREATE TABLE または CTAS ステートメントを記述する際に圧縮プロパティを指定することで、Athena がこれらのテーブルへの書き込みに使用する圧縮タイプを指定できます。

圧縮なしを指定

CREATE TABLE 文は、非圧縮ファイルの書き込みをサポートします。非圧縮ファイルを書き込むには、次の構文を使用します。

  • CREATE TABLE (テキストファイルまたは JSON) – TBLPROPERTIES で、write.compression = NONE を指定します。

  • CREATE TABLE (Parquet) – TBLPROPERTIES で、parquet.compression = UNCOMPRESSED を指定します。

  • CREATE TABLE (ORC) – TBLPROPERTIES で、orc.compress = NONE を指定します。

注意事項とリソース

  • 現在、大文字のファイル拡張子 (.GZ または .BZIP2 など) は、Athena では認識されません。大文字のファイル拡張子を持つデータセットを使用しないようにするか、データファイルの拡張子を小文字に変更します。

  • CSV、TSV、および JSON のデータについては、Athena がファイル拡張子から圧縮タイプを判断します。ファイル拡張子がない場合、Athena はデータを非圧縮のプレーンテキストとして扱います。データが圧縮されている場合は、ファイル名に圧縮の拡張子 (gz など) が含まれていることを確認します。

  • ZIP ファイル形式はサポートされていません。

  • Athena から Amazon Data Firehose ログをクエリする場合、サポートされている形式には GZIP 圧縮や SNAPPY 圧縮を使用した ORC ファイルが含まれます。

  • 圧縮の使用の詳細については、 AWS ビッグデータブログ記事「Amazon Athena のパフォーマンスチューニングのヒントトップ 10」のセクション 3 (「ファイルを圧縮して分割する」) を参照してください。