LoginSignup
0
0

AWS S3 年月日パーティションの圧縮ログファイルを Athena で検索する方法

Last updated at Posted at 2024-04-29

S3 年月日形式の階層構成構成

AWS S3 にデータを効率的に管理するためには、階層構成を年月日形式で設定することが推奨されます。

aws s3 cp your-log-file.log s3://your-bucket/logs/$(date +%Y/%m/%d)/

このコマンドは、現在の年月日に基づいて階層を自動的に作成し、ファイルをその場所にコピーします。

S3 に圧縮したログファイルを配置する方法

ログファイルを圧縮することで、ストレージコストを削減し、転送時間を短縮することができます。

gzip your-log-file.log
aws s3 cp your-log-file.log.gz s3://your-bucket/logs/$(date +%Y/%m/%d)/

Athena で参照するために Partition を付与したテーブルを作成する方法

Amazon Athena で S3 上のデータを効率的に検索するためには、Partition を設定する必要があります。

CREATE EXTERNAL TABLE IF NOT EXISTS your_log_table (
    example_field STRING,
    another_field INT
)
PARTITIONED BY (year STRING, month STRING, day STRING)
STORED AS PARQUET
LOCATION 's3://your-bucket/logs/';

次に、Partition を追加する必要があります。
コマンドの主な目的は、テーブルのメタデータを更新し、新しく追加されたパーティションを認識することです。具体的には、このコマンドは S3 のデータをスキャンし、新しいパーティションを自動的に追加します。

MSCK REPAIR TABLE your_log_table;

Athena で検索する手順

Partition が設定されたテーブルを Athena で検索するには、以下の SQL クエリを使用します。

SELECT * FROM your_log_table
WHERE year = '2023' AND month = '04' AND day = '26';

このクエリは、指定した日付のデータを検索します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0