ボクココ

サービス開発を成功させるまでの歩み

Heroku Dataclips を応用したデータ活用

ども、@kimihom です。

f:id:cevid_cpp:20180302213125p:plain

Heroku は、Heroku Postgres に対して手軽に SQL を発行してデータ取得できる Dataclips ってのを提供している。今回はその Dataclips をどうやって活用するのか、サンプルとともに紹介する。

前回似たような記事を書いているけど、今回はその発展版的な位置付けだ。

www.bokukoko.info

XLS, CSV, JSON エクスポート

Dataclips には取ってきたデータを簡単にエクスポートすることのできる機能が備わっている。データのエクスポートは、よくあるニーズなんだけど自前で実装するとなるとそれなりにめんどくさいし、実装に時間がかかる。社内向けのツールでデータをエクスポートしたいって場合にはまずは Dataclips の利用を検討しよう。それを知っているだけで、無駄な管理機能を実装する必要がなくなる。

具体的にはどんなケースで使うのかっていうのを以下の2パターンで紹介する。

一部のデータを落として特定のプログラムを一括で実行したい

本来であれば、定期的なジョブなら Heroku Scheduler を使って自動化すべきところなんだけど、イレギュラーなパターンで毎回違う SQL を叩かないといけないってことがサービスを運営しているとよくある。

そんな時は Dataclips で SQL を用意し、いつでも気軽に SQL を変えられるようにしておこう。実際にその Dataclips を使う時はちょっとパラメータを変えて結果を取得し、JSON 形式で取ってこれれば実行しやすいデータ形式にすることができる。

f:id:cevid_cpp:20180302211212p:plain

JSON をクリックするだけで手軽に落とすことができる

その他に、毎回 heroku run console で取ってくるってのも手としてある。これはこれで便利で有効な方法なので、うまく使い分けるようにしたいところだ。heroku run console は方法は誰でもマスター権限的な感じで何でも実行できちゃうので便利な反面リスクもある。

統計データをエクセルで可視化したい

よくある話として、分析担当の人がエンジニアに今月の売り上げを取ってきてほしいみたいなことがある。その度にエンジニアが特定の SQL を叩いて取ってきて、それを渡してあげる的なフローだ。

こういうのはまさに Dataclips を使っていきたいところだ。必要な SQL を予め準備しておいて、そこにアクセスするだけで XLS 形式で落とすこともできる。それをエクセルで開いて、グラフに描画したりフィルタかけたり、自由に扱うことができる。

統計分析の初歩として、エクセルを使うってのは今だに便利な方法だ。自分の好きなようにデータをフィルタリング、ソートをかけて、好きなようにグラフ表示ができ、計算式を通して集計も実現できる。それを SQL のような専門知識を通さずにできるのだから、やはりエクセルは今でもスゴイ。

最終的に目指す方向ってのは誰もが SQL が書けて、そのデータをグラフ表示や分析に活用できる Redash のようなツールを使うことになるんだろうけど、それは本当にデータが多くなってきて超大量のデータを分析するみたいな本格的なタイミングになった時でいいと思う。最初からそこに時間かけるよりも、手軽にすぐに修正できる Dataclips でまずは経験を積んで、欲しい情報はなんなのかを突き詰めた後でも遅くはないだろう。他の大企業の事例を小規模のチームで真似すると手痛い思いをするので気をつけて欲しい。

終わりに

今回は Dataclips の中でも特にエクスポートでの活用例について簡単にご紹介した。

サービス開発してると無駄に管理ツールにこだわって時間かけすぎて本質を見失ってるケースは多々ある気がしている。それは単に仕事をした気になっているだけの、無駄な時間だ。 Heroku を使っている方なら インフラに余計な時間を使わないようにしているように、 Dataclips を使うことで管理ツール構築の手間も削減していこう。

自前実装を減らして、提供されているツールを活用することを考える。そしてどうしても自前でやらないといけないくらいクリティカルな課題にぶち当たった時だけ自前を検討する。そうした意識を続けることで少数のエンジニアで最大の成果を生み出すことができるようになるだろう。