[レポート][社内勉強会] AWS Athenaハンズオン ~ビッグデータじゃなくてもAthenaは使える!~

2017.07.15

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、みかみです。

去る2017/07/01(土)に開催された弊社イベント「Developers.IO 2017」のハンズオンセミナー「G-1 現場で使える Amazon Athena」を、社内で再演していただきました!v

Athena初めて触ったのですが(恥)、Hiveもごく軽い机上の知識しかないですが(恥)、これが思ったよりもかんたん&面白い!

これもひとえに、ハンズオン用にデータやRoleなど、準備していただいたおかげですmm

※文中の画像は全てハンズオン資料からの抜粋です。


今まで「Athena=ビッグデータ→大がかり」なイメージでしたが、くつがえされました(いい意味で!

スモールスタートでお試しできるし、特にログ解析やWeb監視にすごく使えそうだと思いました。


Athena、先日東京リージョンにも来ましたしv

はじめに

Amazon Athenaとは?(何がうれしいの?)

S3にあるファイルにSQLクエリを投げてデータを見ることができる

これまでだったら、いったん DB にロードして(ロードバッチも作って)、だった手間が省けます( RDS( Aurora, Redshift )も EC2 も必要なし!

Athenaを使う手順は?

  1. Roleを設定(Athenaのフルアクセス権限とS3のファイルの読み書き権限)
  2. S3にファイルをアップロード(分析対象のファイル)
  3. Athenaのデータベース&テーブル作成(AWS管理コンソールからGUIで作成可能)
  4. SQLクエリ流す

※IAMユーザー作成済み(AWSアカウントあり)を前提にしてます。

ローカル環境からJDBCでAthenaにつないで、DDL流して・・・

だと少し敷居が高いですが。。。

AWS管理コンソールからのGUI操作ならすんなり使えました!

ハンズオン

演習1:GUIによるデータベースとテーブルの作成→クエリの実行

AWS管理コンソールにログインして、Athenaのデータベースとテーブルを作ります。

create_db

add_table

select_dataformat

add_column

テーブル作成に成功するとフォームにDDLが表示されるので、カスタマイズして直接DDL流すこともできます。

ハンズオンではログイン後の操作から、Athena画面の各タブやフォームの説明もしていただいたので、「何をどうクリックすれば・・・?(BigQuery破産的なことしたら怖いし@@;」な心配もありません!

テーブルができたら、コンソールに表示されている目のアイコンクリックで、すぐにデータが表示されます。(なんかポチポチしてっただけなのにデータ見えた!すごい!@@v

exec_query

もちろんフォームから自分で書いたクエリを [Run Query] することもできます。

演習2~6:Amazon Athenaを使い倒す

クエリ実行結果に対してさらにクエリを投げたり(検索対象を絞る)、Array や Map などの複雑なデータ型の扱いについて、教えていただきました。

S3に上がってれば、JSONファイルも扱えますv

例えば、APIのレスポンス@JSONをそのままS3に吐き出して、Athenaでクエリ投げて必要なデータだけ取り出す、とかできちゃうわけですね@@v

演習7:ELBのログを探索する

WebサーバにAWSをお使いならば、ELBも使うケースが多いかと思います。

S3にアクセスログを吐き出しておけば、Athenaでテーブルつくって、すぐにログ解析できちゃいます!

log_ddl

例えば、IPごとのリクエスト数確認したり、どのUserAgentが多いのか確認したり、サーバーエラー数確認したり。

log_select

ちなみにこのDDL、Apacheアクセスログならそのまま使えるそうです!

他のログでも、フォーマットに合わせたDDL作成すれば、ログファイルS3にアップロードするだけで、解析できちゃいます。

S3だけならお値段もお安く済みますし!v

マーケティング用途はもちろんですが、Web監視などセキュリティ用途にも使えます!

これ、自分的にはすごくいいと思いました><v(データ量にもよるかとは思いますが。。><;

演習:その他

その他、CloudTrailのログ探索や、パフォーマンス改善の方法(パーティションの指定方法)など、とても実践的な内容でした!

アーキテクチャのお話なども聞けたので、自分でチュートリアルやってみるだけとは違い、本当にAthenaの理解が深まりました!

AthenaとSpectrum

個人的に、分かったようでいてよく分からなかったのが、AthenaとSpectrumの違いでした。

「SpectrumはRedshiftとJOINできるらしいけど、どうせAthenaもテーブル作らないといけないのでしょ?(手間かかるし?

何がそんなに違うの?」と。。

実際にAthena使ってみて、理解、です。。。mm

athena_vs_spectrum

S3にデータが上がってさえいればOK(S3とAthenaさえあればOK)なのが、Athenaの強み?!

ログ解析のためにデータ分析基盤作って・・・だった手間がいらないのですもの><!

逆にSpectrumは、すでにRedshift使ってるシステムの拡張時に活躍しそうですね(Athenaよりアタマも良いらしいですし@@?!

おわりに(まとめ・所感)

  • やっぱり、さわってみるとよくわかる!(ハンズオン非常に分かりやすかったですmm
  • Athenaはお手軽!(料金は気にしないとですが。。
  • Hive知らなくてもAthenaなら使える!(知ってればもっと使える・・・?
  • 慣れるまではAWS管理コンソール活用すべし
  • AWS SDK(boto3とか)でAthenaアクセスとかもしてみたいなぁv


弊社イベント「Developers.IO 2017」東京での開催は終了してしまいましたが、各セッションの資料は絶賛公開中です!

また、今後、東京以外の地域でも開催予定です!(セッションスケジュールは変更の可能性があります)

そして、残念ながら今回ご都合がつかなかった方も、来年の Developers.IO にはぜひ足をお運びいただけるとうれしいです!