Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

Amazon Athenaについてまとめています。

Amazon Athenaは、S3上のデータをSQL操作できるサービス

Amazon Athena はAmazon S3 内のデータをデータベースのように扱い、標準 SQL を使ってデータの抽出や分析を行うサービスです。Athena はサーバーレスでじっこうされ、インフラストラクチャの管理は不要。実行したクエリに対してのみ料金が発生します。

【関連記事】
AWS S3ってどんなサービス?初心者向けに機能紹介

Athena を使うには、Amazon S3 にあるデータを指定し、スキーマを定義します。その後、 SQL を使用してクエリの実行をおこないます。Athena を使うことで、分析用データを切り出すための複雑な ETL ジョブが不要になります。大型データセットに対して、誰でもSQLを使って簡単に分析をおこなうことができるようになるんですね。

Athena は、AWS Glueデータカタログと統合されていて、色んなサービスのメタデータの統合リポジトリを作成できます。データソースのクロール、スキーマの解析、テーブル定義、パーティション定義、スキーマのバージョニング保持が可能。

【関連記事】
データ分析をしたい!最新ETL機能AWS Glueを徹底解説!

AWS Athenaの利点

Athena はサーバーレスで、ETL不要。サーバーやデータウェアハウスの設定や管理は不要で、すぐにデータのクエリを実行できます。Amazon S3 上のデータを指定して、スキーマを定義し、組み込みのクエリエディタで開始できます。Amazon Athena でS3のユーザーデータを利用できるため、データ抽出、変換、ロード (ETL)などの複雑な処理は不要です。

スキャンしたデータに対してのみの支払いです。Amazon Athena は、実行クエリにのみ料金が発生。クエリごとにスキャンデータ量に基づく料金請求がされます。具体的な目安としては、1 テラバイトごとに 5 ドル 。データの圧縮、分割、列形式への変換により、クエリのコストを 30%~90% 削減、パフォーマンス向上させること可能です。S3 以外のストレージ料金は発生しません。

Amazon Athenaでは、ANSI SQL に準拠した Prestoを採用。Prestoは、低レイテンシー&アドホックなデータ分析用に最適化されたオープンソースの分散SQLクエリエンジンです。CSV、JSON、ORC、Parquet等の標準データフォーマットに対応しています。AthenaのJDBCドライバー経由で、様々なBIツールからAthenaを接続することもできます。単純なクエリ以外にも、大きな結合、ウィンドウ関数、配列などの複雑な分析も対応しています。

大きなデータセットに対してもパフォーマンスが高いです。内部的に、Amazon Athenaは自動的に並列処理がされているため、応答が高速なんですね。一般のRDBMSならフリーズしてしまうような重いクエリも多くの場合、数秒で結果が返ってきます。負荷が低くなるようにSQLを手動で最適化する必要はありませんし、パフォーマンスチューニングやクラスタの管理は不要です。

AWS Athenaでは、リレーショナル、非リレーショナル、オブジェクト、カスタムデータソースに対してSQLクエリを実行できます。複数の異なるデータソース対象にSQLを使ってデータを結合して解析を実行できるんですね。「横串検索」のようなクエリが可能です。

Amazon Athenaの使い方

Amazon Athenaを使うには、Athena コンソール(AWSマネジメントコンソールから開けます)にログイン後、コンソールウイザードまたは、DDL ステートメント入力によりスキーマ定義をおこないます。

関連)Athena コンソール

【関連記事】
AWSを集中管理したい!AWS マネジメントコンソールを使いこなそう!

Amazon Athenaのクエリエディタからは、「データソースからテーブルを作成」または、「SQLを使用して作成」によりテーブル作成が可能です。

以下は、クエリエディタでテーブルを作成するDDLの例です。

参考)はじめに-AmazonAthena

CREATE EXTERNAL TABLE IF NOT EXISTS cloudfront_logs (
  `Date` DATE,
  Time STRING,
  Location STRING,
  Bytes INT,
  RequestIP STRING,
  Method STRING,
  Host STRING,
  Uri STRING,
  Status INT,
  Referrer STRING,
  ClientInfo STRING
  ) 
  ROW FORMAT DELIMITED
  FIELDS TERMINATED BY '\t'
  LINES TERMINATED BY '\n'
  LOCATION 's3://athena-examples-my-region/cloudfront/plaintext/';

このDDLでは、テーブル「cloudfront_logs」が存在しないときのみテーブルを作成します。対象ファイルのロケーションは、s3://athena-examples-my-region/cloudfront/plaintext/で、カラムはタブ区切り、レコードは改行区切りのフォーマットを指定しています。

以下は、cloudfront_logsからデータを抽出するSQLの例です。date(日付)が、2014年7月5日~2014年8月5日のデータを、OSごとにグルーピングして、件数をカウントするSQLです。

SELECT os, COUNT(*) count
FROM cloudfront_logs
WHERE date BETWEEN date '2014-07-05' AND date '2014-08-05'
GROUP BY os;

AWS Athenaの料金

Amazon Athena では、実行したクエリに対してのみ料金が発生します。各クエリでスキャンされるデータ量に基づいて課金されるんですね。データの圧縮、分割、列形式への変換を行うと、大幅なコスト削減とパフォーマンス向上を実現できます。例えば、GZIPを使ってファイルを圧縮した結果、サイズが1/3になったとすると、料金計算に使われるファイルサイズも1/3となります。スキャンするファイルサイズを減らすことが、料金の節約につながるんですね。

Amazon Athenaの料金はリージョンごとに異なります。北カリフォルニアリージョンの場合、スキャンされたデータ 1 TB あたり 6.75USD。なお、アジアパシフィック(東京)リージョンだと、1TBあたり5.00USDとなっていました。

参考)料金 – Amazon Athena | AWS

【関連記事】
AWSの料金は従量課金体系 AWS料金計算ツールの見積もり方法紹介

AWS Athenaのまとめ

ポテパンダの一言メモ
  • AWS Athenaは、Amazon S3ストレージ上のファイルを直接SQL操作できるサービス
  • サーバレスで、料金はS3上のスキャンしたデータサイズを元に計算される
  • リレーショナル、非リレーショナル、オブジェクト、カスタムデータソースに対してSQLクエリを実行できる

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。