1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

S3 GlacierのデータをAthenaでクエリしてみた

Posted at

背景・目的

先日、Amazon Athena now supports querying restored data in S3 Glacierが発表されました。

今までは、Glacierのデータは、一度ストレージクラスを変更してからでないとAthenaで取り扱うことができませんでしたが、今回の発表により直接クエリを実行することが出来るようになったので、試してみました。

まとめ

  • Standardクラスにコピーしていたが、復元すればクエリできるようになりました。
  • 下記が前提になります。
    • Athena エンジンバージョン3
    • Apache Hiveテーブル

概要

ログ分析や長期傾向分析などのユースケースで、データを Standard ストレージ クラスにコピーすることなく、S3 Glacier Flexible Retrieval およまとめ
び Deep Archive ストレージ クラスで復元されたデータをクエリできるようになります。たとえば、S3 Standard に保存されている最近のログと S3 Glacier Flexible Retrieval で復元された古いログを組み合わせることにより、単一のクエリでストレージ クラス全体のログ分析を実行できます。Athena SQL ワークグループのクエリに対して S3 Glacier アクセスを有効にすることができます。

以前は、Standardクラスにコピーしていたが、復元すればクエリできるようになりました。

前提

下記でサポートされています。

  • Athena エンジンバージョン3
  • Apache Hiveテーブル
  • データをクエリする前にオブジェクトを復元する必要がある。Athena はオブジェクトを復元しない。

実践

事前準備

  1. 下記のJSONデータを事前に用意します。

    {“id”:1,”value”:”abcdefgh”}
    
  2. ファイルをアップロードします。ストレージクラスは、スタンダードです。
    image.png

  3. Athenaのテーブルを作成

    create external table qlaciertest_query(
    id int
    ,value string
    )
    ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
    LOCATION 's3://XXXX/';
    
  4. クエリできるか確認します。見えました。

    SELECT * FROM "default"."qlaciertest_query" limit 10;
    ===
    id value
    1  abcdefgh
    

    image.png

  5. ストレージクラスを編集するをクリックします。
    image.png

  6. Glacier Flexible Retrieval を選択し、変更を保存をクリックします。
    image.png

  7. 変更されました。(ストレージクラスがGlacier Flexible Retrievalに変わりました。)
    image.png

Glacier Flexible Retrievalに対してクエリ

  1. プロパティを変更します。

    ALTER TABLE qlaciertest_query SET TBLPROPERTIES ('read_restored_glacier_objects' = 'true')
    
  2. 上記で確認したクエリを実行します。想定通り見えなくなりました。

    SELECT * FROM "default"."qlaciertest_query" limit 10;
    ===
    結果なし
    

    image.png

オブジェクトの復元

  1. 復元を開始をクリックします。
    image.png

  2. 復元します。
    image.png

  3. 復元開始しました。標準取り出しのため、3H〜5H程度待ちます。
    image.png

  4. 復元できました。
    image.png

Athenaでクエリ

  1. クエリできました。想定通り復元されたデータが確認できました。
    SELECT * FROM "default"."qlaciertest_query" limit 10;
    ===
    id value
    1  abcdefgh
    
    image.png

考察

Glacier でもコピーすることもなく復元することでAthenaでクエリすることが出来ました。
欲を言うと、復元のオペレーションを挟むことなく確認できるようになると嬉しいですね。

参考

1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?