AWSで学ぶ!Amazon Athenaを使ってS3のデータをSQLでクエリする方法を初心者向けに完全解説
生徒
「AWSで大量のデータを分析できるって聞いたんですが、プログラミングができなくても使える方法はありますか?」
先生
「ありますよ。AWSの中でもAmazon Athenaを使えば、SQLだけでS3のデータを簡単に分析できます。」
生徒
「SQLってデータベースで使うイメージですが、S3でも使えるんですか?」
先生
「はい。AthenaはS3に保存されたデータを、まるでデータベースのように扱える便利なサービスなんです。」
1. Amazon Athenaとは?
Amazon Athena(アマゾン アシーナ)は、AWSが提供するデータ分析サービスです。S3に保存されているCSVやJSON、Parquetといったデータを、SQL(エスキューエル)という問い合わせ言語で直接検索できます。サーバーの準備や設定が不要で、使った分だけ料金が発生するのが特徴です。
初心者の方でも、Excelで表を扱う感覚に近い形でビッグデータ分析を始められる点が大きな魅力です。
2. Amazon S3とAthenaの関係
Amazon S3(エススリー)は、AWSのクラウド上にファイルを保存できるストレージサービスです。Athena自体はデータを保存せず、S3に置かれたデータを読み取って分析します。
イメージとしては、S3が「倉庫」、Athenaが「検索係」のような関係です。倉庫の中身を動かさずに、その場で中身を調べられるのがAthenaの強みです。
3. Athenaで使われるSQLとは?
SQLは、データを「探す・並べる・集計する」ための言葉です。Athenaでは、PrestoベースのSQLが使われていますが、基本的な書き方は一般的なSQLとほぼ同じです。
たとえば「特定の日付のデータだけを見る」「合計金額を計算する」といった操作も、短いSQL文で実行できます。
4. Athenaを使うための事前準備
Amazon Athenaを利用するには、AWSアカウントとS3バケットが必要です。S3には、分析したいCSVファイルなどのデータをアップロードしておきます。
また、Athenaのクエリ結果を保存するためのS3フォルダも指定します。これは最初に一度設定すれば、あとは意識する必要はほとんどありません。
5. テーブル作成とデータ定義の流れ
Athenaでは、S3上のデータに対して「テーブル」を定義します。これはデータの構造をAthenaに教える作業です。
CREATE EXTERNAL TABLE sample_data (
id int,
name string,
price int
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LOCATION 's3://example-bucket/data/';
このSQLを実行すると、S3のCSVデータを表として扱えるようになります。実際のファイルは変更されないので安心です。
6. 基本的なSELECTクエリの実行方法
テーブルを作成したら、あとはSQLで自由に検索できます。もっとも基本的なのがSELECT文です。
SELECT name, price
FROM sample_data
WHERE price > 1000;
この例では、価格が1000より大きいデータだけを抽出しています。結果はAthenaの画面上に表形式で表示されます。
7. 集計や分析でできること
Athenaでは、合計や平均といった集計処理も簡単です。大量データでも高速に処理されるため、ログ分析や売上集計にも向いています。
SELECT COUNT(*) AS total_count
FROM sample_data;
このように、SQLだけでビッグデータ処理が完結するのがAthenaの大きな特徴です。
8. Amazon Athenaを使うメリットと注意点
Amazon Athenaは、サーバー管理が不要で、初心者でも始めやすいAWSサービスです。一方で、クエリごとにスキャンしたデータ量に応じて料金が発生します。
不要な列を指定しない、Parquet形式を使うなど、工夫することでコストを抑えたデータ分析が可能になります。