Amazon EMRでHive/Impala「思考のスピード」とSQL

Amazon AWSのEMRでHiveとImpalaに触ってみた。

通常なら自分でHadoopクラスタを組んでからHiveやImpalaをインストールして…とやる必要があるのに、EMRだとコンソールからポチポチするだけで、しかもSpot Instanceで超安価にクラスタができあがる。

SSHでログインしてhiveやimpala-shellとコマンドを叩くだけ。AWSのサービスはいくつかあるけど、個人的にEMRは一番凄いと思う。

テスト的に某SaaS型WAFサービスのアクセスログを22億行ほどロードして、impalaでいくつかSQLでクエリを投げてみた。m1.mediumという遅いインスタンス20台のクラスタで、単純な問い合わせが4分くらい。

Hiveに比べれば圧倒的に高速なんだけど、俗に最近のSQL on Hadoopで言われる「思考のスピードで解析する」という感じはしない。4分も経ったら脳みその一時記憶領域は完全にクリアされてしまう。

で、ぶっちゃけ思ったんだけど、数億件以上のアクセスログ的なデータに対して解析目的でSQLを投げる場合って、実際にはサンプリングして1/100~1/1000くらいにサイズダウンさせたデータに対して同じクエリ投げれば、十分に目的を達成できる場合が殆どなんじゃないだろうか。

本当にそのまま数億件以上のデータを扱う必要があるケースというのは、異常検知や、あるいは非常にロングテール的にデータの特徴が多岐に渡るケースになるんだと思う。多くの場合はそうでない気がする。

Advertisements


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s