Help us understand the problem. What is going on with this article?

BigQueryとAmazon Athenaを軽く比べてみたよ

More than 3 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に出力されているので、注意しないとクラウド破産する
skryoooo
dac
DACは、インターネットに特化したデジタル広告ビジネスを展開しています。インターネット広告に関するサービスを総合的に提供するデジタルエキスパートです。
https://www.dac.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away