11
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

はじめに

この記事はGoogle Cloud Platform(1) Advent Calendar 20167日目の記事です。
まだ投稿がなかったのと、ちょうど社内のQiitaTeamにBigQueryとAmazon Athenaの簡単な比較ネタを投稿していたので、それを載せます

やったこと

  • TreasureDataからBigQuery出力しているデータがあったので同じものをS3に出力
  • BigQuery, Athenaにクエリなげてパフォーマンスを比較

Athenaデータ準備

データベース作成

CREATE DATABASE test;

テーブル作成

データはweblogをちょっとサマリしたものです。

CREATE EXTERNAL TABLE IF NOT EXISTS test.weblog (
  summarize_date string,
  user_id string,
  host string,
  url string,
  os string,
  browser string,
  ip_address string,
  logs bigint 
)
PARTITIONED BY ( dt string )
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
  'serialization.format' = '	',
  'field.delim' = '	'
) LOCATION 's3://path/to/weblog/';
  • PARTITIONは日付を入れるので、dtという名前で設定

PARTITIONINGを設定

11/1,11/2の2日分を入れたので2つ設定

ALTER TABLE test.weblog ADD
  PARTITION (dt='20161101') LOCATION 's3://path/to/weblog/20161101/'
  PARTITION (dt='20161102') LOCATION 's3://path/to/weblog/20161102/';

確認

show partitions test.weblog;

結果。できてますね。

dt=20161101
dt=20161102

クエリをなげてみる

カウント

select
  count(1)
from test.weblog;
-- (Run time: 4.12 seconds, Data scanned: 121.19MB)  result: 2541225

パーティションが効くかどうか。
レコード数も減ったし処理データ量も減った

select
  count(1)
from test.weblog
where dt = '20161101';
-- (Run time: 4.33 seconds, Data scanned: 60.99MB)  result: 1277304

BigQueryとAWS Athenaを比較

ホスト名別のUU数

クエリ

 select 
  host,
  count(distinct user_id)
 from weblog
group by 
  host
ORDER BY
  host

結果

  • BQ: Query complete (2.8s elapsed, 107 MB processed)
  • Athena: (Run time: 6.19 seconds, Data scanned: 121.19MB)

URL別ログ数 Top1000

SQLは割愛。結果は以下の通りでした。

  • BQ: Query complete (3.9s elapsed, 152 MB processed)
  • Athena: (Run time: 5.86 seconds, Data scanned: 121.19MB)

すごく簡単な検証かつ、データ量もそこまで多くありませんでしたが、BigQueryのほうが速いという結果になりました。

所感

  • コストをまじめに比較していないのだが、実際のところどうなんだろうか
  • UIがかなり酷似している
  • Athenaの場合、クエリ結果がキャッシュされない、かつクエリの結果がS3に出力されているので、注意しないとクラウド破産する
11
5
0

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
11
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?