LoginSignup
29

More than 5 years have passed since last update.

AWS AthenaとGCP BigQueryにデータぶっこんで比べてみた ~BIツールも添えて~

Last updated at Posted at 2016-12-14

はじめに

今年もお世話になりました。
gloops Advent Calendar 2016
15日目担当インフラエンジニアの河村です

14日目は @s_yamada さんの
家系ラーメンで学ぶ新規ゲームの企画書
でした

ラーメンが食べたくなる投稿ですね
九州出身ってこともあり基本とんこつラーメンしか食べません:ramen:
飲みのあとの締めのラーメンはやめました! :beer: -> :ramen: :no_good:

今回の目的

re:iventでAWSの新機能がわんさか発表されましたが
リリース直後はパツパツで触れてなかったので
少し触ってみました

対象のサービスは以下の2つ

  • Amazon Athena(以下、AWS Athena)

  • Google BigQuery(以下、GCP BigQuery)

AWS Athena

「AWS re:invent 2016」で発表された
新サービスです

Amazon Athena

S3においているデータに対して
標準SQLを用いてクエリを発行できるサービスです

安価で大量のデータを保存できるS3対して
ユーザーがほしいデータを分析出来るサービスですね
しかも超高速に!

タイトルにも書いていますが、
GCP BigQueryとほぼ同じサービスですね

GCP BigQuery

説明はしないですが、
gloopsでもがしがし使ってます

株式会社 gloops の導入事例

紹介もしてもらいました!
Googleの方に
笑顔がいいねと褒められました!!

AWS Athena 使ってみる

S3へログを

弊社の1つのタイトルのnginx accesslogをS3にあげあげしました

s3_01.png

AWS Athenaの設定

記事書いてる2016/12/14時点では、
AWS Athenaは、オレゴン・バージニア リージョンのみ利用可能です
S3に関しては、東京リージョンに置いていてもAWS Athenaから見てくれます

  • AWS マネージドコンソール
  • Query Editor
  • Add table

athena00.png

  • Database: Create new database
  • Databaseの名前をつける
  • tableの名前をつける
  • Location of Input Data Set -> s3://バケット名/ログ置き場/

athena01.png

  • データのフォーマット選択する(今回はlog)

athena02.png

  • Column追加してあげる

athena03.png

  • 作成完了

CREATEのクエリ実行され正常に完了すればOK

実際にクエリ実行してみる

※追記
初回投稿時は
Athena:オレゴン - S3:東京
のみの検証でしたが
以下を追加しました
Athena:オレゴン - S3:オレゴン
Athena:オレゴン - S3:オレゴン(ファイル圧縮)

また、以下の数値は数回クエリ実行した中での
平均的な数値を代表して記載しています

Athena:オレゴン - S3:東京

  • AWS Athenaで、2016/12/13のアクセスのカウントは・・・

athena04.png

約3,350万件で

17.64s

スキャンデータ:12.96GB

  • AWS Athenaで、分毎にまとめてみると・・・

athena05.png

19.98s

スキャンデータ:12.96GB

Athena:オレゴン - S3:オレゴン

  • 2016/12/13のアクセスのカウントは・・・

athena11.png

同じく、約3,350万件で

6.16s

スキャンデータ:12.96GB

  • 分毎にまとめてみると・・・

athena12.png

7.65s

スキャンデータ:12.96GB

Athena:オレゴン - S3:オレゴン(ファイル圧縮)

  • 2016/12/13のアクセスのカウントは・・・

athena13.png

同じく、約3,350万件で

9.87s

スキャンデータ:1.69GB

  • 分毎にまとめてみると・・・

athena14.png

10.1s

スキャンデータ:1.69GB

GCP BigQueryはどう?

実際にクエリ実行してみる

  • GCP BigQueryで、2016/12/13のアクセスのカウントは・・・

bq01.png

約3,360万件で

1.9s

  • GCP BigQueryで、分毎にまとめてみると・・・

bq02.png

257MBで

2.4s

比較結果

AWS Athenaは、アクセスログファイル
GCP BigQueryは、insertしたデータ
なので、スキャンするデータに大きな差がでた

件数
AWS Athena 33,522,222
GCP BigQuery 33,622,636
秒数 ただのCOUNT 毎分カウント
AWS Athena:オレゴン-東京 17.64s 19.98s
AWS Athena:オレゴン-オレゴン 6.16.64s 7.65s
AWS Athena:オレゴン-オレゴン(圧縮) 9.87s 10.1s
GCP BigQuery 1.9s 2.4s

※今回はAWS Athenaに関しては、
S3:東京、AWS Athena:オレゴンで実施したため
時間に差分がでているようです。
S3を同リージョンにして、
再検証予定です。

※※検証追記しました

スキャンデータ ただのCOUNT 毎分カウント
AWS Athena:通常ファイル 12.96GB 12.96GB
AWS Athena:圧縮ファイル 1.96GB 1.96GB
GCP BigQuery - 257MB

データを取得することだけ考えると
BigQueryの方がクエリ料金はやすくなりそうだ

S3のファイルの置き方が、
環境/MM/DD/HH/access.logにしているのでそのへんの影響もあるかも

コスト面で大きなことは
BigQueryは、insert料金は別途かかってます

※追記
データ転送・ストレージ等の含めた全体のコスト自体は出せていません
AWS AthenaとS3のリージョン合わせることによってrunTimeは、1/2~1/3になります
AWS Athenaは、データ圧縮すれば、単純にクエリコストが1/10になります

BIツール

AWS QuickSight

ちょっと間に合いませんでした

別機会でやろうと思います:bow:

redash

gloopsでは、GCP BigQueryのaccesslogのリアルタイム閲覧には
redash
使ってます

クエリ発行させすぎないように以下の制限かけています

  • 自動更新しない
  • 直近1hのデータのみ取得する

Google Data Studio

現在ベータ版です
Google Data Studio

使ってみた結果、
リアルタイムには向いていなく
キャンペーン期間中の振り返りレポートみたいな
使い方になるんだろうなと思いました

まとめ

年の瀬ドタバタしてますが、
新機能触れて良かったです

エンジニアや、非エンジニアのみんなが
集めたログを有効活用してくれるよう
来年も頑張りたいと思います:sunglasses:

では、忘年会に行ってきますノシ :beers:

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29