【Amazon Athena】Athena初心者のための基礎知識と基本操作

こんにちは。SCSK池宮です。

今さらながら、先日Athenaデビューしました。

初心者にも非常に扱いやすいサービスですが、私と同じように「いざコンソールに入るとどこから始めていいか…」と悩んでしまう方向けに基本操作をまとめてみました。

お役に立ちましたら幸いです。

Amazon Athenaとは

Amazon Athenaとは、S3上のデータに対し、サーバレスでクエリを行うことができるサービスです。

サーバレスのため事前にインスタンスやクラスターを用意する必要がなく、”使いたい時”に”使いたい分”だけクエリを実行できます。

S3に対しクエリが実行できるサービスというと、Redshift SpectrumやS3 Selectを思い浮かべる方も多いのではないでしょうか?

この2つのサービスとの違いについて、以下のようにまとめてみました。

  Amazon Athena Redshift Spectrum S3 Select
概要 サーバレスのクエリサービス RedshiftからS3データに直接クエリできるサービス S3からデータ抽出するサービス
ユースケース S3に置かれたデータに対し分析や複雑なクエリを行う。 S3に置かれたデータ更新などをクラスター外で行う。

高度な分析を行う。

S3に置かれたデータを効率的に抽出して他の処理に渡す。
メリット サーバレスで利用することができる。 既存Redshiftクラスターの負荷分散を行うことができる。 安価に利用できる。
コスト 5.00USD/TB

(クエリごとの検索対象)

USD 5.00/TB

(クエリごとの検索対象)

※Redshift自体の料金は
別途かかる

-(新規受付終了)
クエリできるフォーマット parquet、orc、json、csv Parquet、ORC、RCFile

TextFile、SequenceFile、RegexSerde、OpenCSV、AVRO、Ion、JSON

-(新規受付終了)

S3 Selectについては、残念ながら2024年7月に新規受付終了が発表がされました。

Athenaでは大規模データに対しても高速なクエリが可能、かつS3はスケーラブルなオブジェクトストレージである、ということから
Athena+S3の構成では、ストレージとコンピュート(クエリ実行)部分がそれぞれ独立したスケーラブルな仕組みになっています。

(「クエリでスキャンしたデータに対して従量課金」という特徴等もそうですが、AthenaはGoogle CloudのBigQueryの考え方に近い印象を受けました)

Athenaの操作方法

AthenaはS3上のデータにクエリできるサービスですが
クエリエディタでリアルタイムにクエリを実行するために、テーブル定義を行う必要があります。

今回は以下のようなCSVファイルをS3に置き、Athenaでデータを見ていこうと思います。

ID Name Price
101 いちご 500
102 もも 300
103 りんご 100
104 ぶどう 200
201 かぼちゃ 150
202 さつまいも 200

AWSコンソールからAthenaにアクセス

コンソールの「分析」からAthenaを選択します。

「クエリエディタを起動」をクリックします。

テーブルを作成してみる

「テーブルとビュー」をクリックし、「S3バケットデータ」を選択します。

 

「テーブル名」で作成するテーブル名を入力し、テーブルを管理するデータベースを選択します(今回は既存のデータベースにテーブルを作成します)。

「データ形式」と「列の詳細」を選択します。今回は以下のように設定しました。

データ形式

テーブルタイプ Apache Hive
ファイル形式 CSV

列の詳細

列名 列のタイプ
id int
name string
price int

「テーブルクエリをプレビュー」を見ると、設定したテーブルを作成するためのクエリが自動で作成されています。一番下の「テーブルを作成」をクリックします。

先ほどのクエリが実行され、テーブルが作成されました。

 

これでテーブル作成は完了です!

クエリを実行してみる

早速、作成したテーブルにクエリを投げてみます!

select * from test_ikemiya.test_ikemiya_20241212

結果が取得できました!(Athenaはクエリデータ量に応じて課金が発生するため、”select *”を行う場合は十分注意して実行してください)

今回のFROM句では、”データベース名.テーブル名”を設定しています。
テーブル名だけでクエリを行う場合は、データベースが正しく設定されているか、ご確認ください!

 

今回は基本中の基本操作を行いました。

データベースを構築することなく使用できるAthenaはアドホックな分析に向いています。

データ分析には欠かせないサービスだと思いますので、積極的に利用していきたいと思います!

最後までお読みいただきありがとうございました。

タイトルとURLをコピーしました