この記事の目次
AWSサービス「Amazon Athena」の概要

AWSサービス「Amazon Athena」とは?
「Amazon Athena」とは、「データ分析」ができるAWS(Amazon Web Services)のサービスの一つです。 分析対象となるデータとしては、「Amazon S3(※AWS上で利用可能なクラウド型のストレージサービス)」上のデータで、CSV形式やJSON形式等のファイルが一般的です。 具体的な分析方法としては、「Amazon S3」等に対して、標準SQL のクエリ(※データベース管理システムに対する問合せ)を実行します。この実行結果を参照しながらデータ分析を進めていきます。「Amazon Athena」の特徴
「Amazon Athena」の特徴について説明してきます。 (1)大規模データでも高速なデータ分析 一般的には、大規模データをデータ分析で扱うと、サーバ等に大きな処理負荷が掛かるため、分析結果の取得までに時間が掛かります。「Amazon Athena」では高速に分析結果を取得することが可能です。 さらに「Amazon S3」上のデータ構成やSQLクエリの記述を工夫することで、より高速にSQLクエリを実行することが可能になります。 注意点としては、CSVファイルやJSONファイルといった「整形済み」のデータであることが前提です。 (2)ディスク使用量の低減 従来のデータ分析では、最初に大規模データをデータベースに格納し、そのデータベースに対してSQLクエリを実行する、という形式が通常でした。そのため、元データとデータベースで同じ内容のデータを二重に保存するといったディスク容量の余分な消費が課題でした。 「Amazon Athena」では、「Amazon S3」に直接SQLクエリを実行することが可能です。そのため二重のデータ保存が不要なのでコスト削減につながります。なお「Amazon S3」ではデータを出力する際に課金されます。 (3)「サーバレス」なデータ分析 SQLクエリを発行するために、「Amazon Elastic Compute Cloud(EC2)」といったサーバインスタンスを立てる必要がありません(いわゆる「サーバレス」です)。 AWSコンソール上で、SQLクエリを登録して直接実行することが可能です。そのためデータ分析用のサーバ機器等の用意が不要となります。 (4)使用したデータ分だけの従量課金 SQLクエリで実行した際にスキャンしたデータのみが課金対象となります。つまり、使用したデータのみについて課金されるため余分な料金を払わずにすみます。 (5)BI ツールと連携 JDBC(※Java Database Connectivityの略で、Javaで開発したアプリケーションからデータベースを操作するためのAPI)等を経由して、各種BIツールと連携することが可能です。 AWSで提供しているBIツールとして「Amazon QuickSight」があり、「Amazon Athena」との連携もスムーズにできるようになっています。「Amazon Athena」の使用方法

「Amazon Athena」の基本的な使用方法
「Amazon Athena」の基本的な使用方法は、次のとおりです。 (1)分析対象のデータを「Amazon S3」に保存する (2)テーブルを定義する (3)SQLクエリを実行する それぞれについて詳しくみていきましょう。(1)分析対象のデータを「Amazon S3」に保存する
最初に「S3 バケット」と呼ばれる、パソコンでの「フォルダ」に当たるものを「Amazon S3」に作成しておきます。 AWSのコンソール画面を操作して、この「S3 バケット」に分析対象のデータファイルをアップロードします。これによりデータが「Amazon S3」に保存されます。 上記のAWSのコンソール画面で操作する方法以外にも、「S3 バケット」に一意に設定されるURLに対して、「AWS Database Migration Service」等の他のAWSサービスで用意されているAPIを利用してデータを保存する方法もあります。(2)テーブルを定義する
「Amazon Athena」からのSQLクエリのために、テーブル定義が必要です。デフォルトでは、「AWS Glue Data Catalog」上のテーブル定義を使用します。 「AWS Glue Data Catalog」というのは、「Apache Hive Metastore」というOSS と互換性のある、メタデータを管理するためのリポジトリです。 「AWS Glue Data Catalog」にテーブル定義を作成する方法は、次ぎの三通りです。 ①Athena DDL ②AWS Glue Catalog API ③AWS Glue Crawler 例えば、「Athena DDL」での記述例は、以下のとおりです。
CREATE EXTERNAL TABLE IF NOT EXISTS action_log (
user_id string,
action_category string,
action_detail string
)
PARTITIONED BY(year int, month int) // パーティション定義
STORED AS PARQUET // データ形式
LOCATION 's3://athena-examples/action-log/’ // データの場所
TBLPROPERTIES('PARQUET.COMPRESS'='SNAPPY'); // 圧縮形式
「CREATE」といった標準的なテーブル定義をするクエリの後に、「パーティション定義」「データ形式」「データの場所」「圧縮形式」等を指定していきます。
(3)SQLクエリを実行する
「標準ANSI SQL」に準拠したクエリを実行できます。WITH句、JOIN等にも対応しています。 具体的なSQLクエリの例をみてみましょう。 <SQLクエリの例>
SELECT
col1, col2, COUNT(col3), SUM(col3)
FROM
table1
INNER JOIN table2
ON table1.id = table2.id
WHERE
table1.id = table2.id
AND col4 = 1
AND col5 = “ok”
GROUP BY
col1, col2
SQLクエリの実行結果は、指定した「S3 バケット」に自動的に保存されます。
(利用例1)BIツールと連携した簡易なデータ分析
基本的な「Amazon Athena」を利用したデータ分析方法を説明します。 データ分析の主な流れとしては、「Amazon S3」にCSVファイルをアップロードした後に「Amazon Athena」からSQLクエリを実行し、取得した結果データをBIツールに連携します。 以下のような手順でデータ分析を進めることができます。 (1)「Amazon S3」 にデータ(CSV形式)をアップロードする (2)アップロードしたデータに対して「テーブル定義」する ※「テーブル定義」するのは、CSV形式等に整形したデータのみが対象となるため (3)「Amazon Athena」からSQLクエリを実行し、結果データを取得する (4)BI ツールに分析結果データを連携して「可視化」する(利用例2)AWSサービス上の各種ログのデータ分析
さまざまなAWS サービスが出力するログを「Amazon S3」に集めることが可能です。 S3に集積したログに対して、「Amazon Athena」からSQLクエリを実行してデータ分析をします。ログを取得できるAWSサービスは以下のとおりです。 <ログ取得対象となるAWSサービス例> Elastic Load Balancing(ELB) Amazon CloudFront AWS CloudTrail 等「Amazon Athena」における「暗号化」
「Amazon Athena」は、「Amazon S3」に保存してある分析用データが暗号化されていてもSQLクエリを実行することが可能です。またクエリの実行結果を暗号化してS3に保存することもできます。 「Amazon Athena」と「Amazon S3」との間でデータ転送する際にも、「Transport Layer Security (TLS)」で暗号化することも可能です。SQLクエリのパフォーマンス向上について
「Amazon Athena」にてSQLクエリのパフォーマンスを向上させるためのポイントを抑えておきましょう。 (1)スキャンデータ量を減らす SQLクエリの処理速度を上げるには、クエリ結果を集計するために必要なデータのスキャン量そのものを減らすのが効果的です。例えば、データの圧縮やデータのパーティショニング(ファイルの配置方法の最適化)等が考えられます。 (2)分析対象のファイルを一定サイズ以上にする ファイル数が多すぎるとファイル操作の処理負荷(いわゆる「オーバーヘッド」)が増大するので、128MB 以上のデータサイズのファイルにできるだけまとめるようにします。 (3)分析対象のファイルを分割可能な形式とする 「Amazon Athena」は並列処理を行うため、ファイルを分割可能な形式としておきます。つまり、CSV形式のデータのように、全体を先頭から順番に処理するだけでなく、途中から処理することもできるデータ形式が望ましいです。「Amazon Athena」を活用したビジネス戦略
これまで述べてきた通り、「Amazon Athena」をうまく利用することで、低コストで高速なデータ分析が可能です。 高価なBIツールの導入が不要となり、初期導入費用も極めて低減に抑えられるので、スモールスタートでデータ分析のプラットフォーム構築に挑戦してみてはいかがでしょうか。]]>この記事の監修者・著者

-
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
最新の投稿
- 2023年12月6日キャリア・転職システムエンジニアへのキャリアチェンジで必要な資格は?
- 2023年12月6日キャリア・転職キャリアチェンジでエージェントを活用するメリット
- 2023年12月6日キャリア・転職プログラマーへのキャリアチェンジに必要な資格は?
- 2023年12月6日キャリア・転職サーバーエンジニアへのキャリアチェンジで必要な資格は?