仕事中の問題と解決メモ。

最近はPythonとGoogle Cloud Platformがメイン。株式会社ビズオーシャンで企画と開発運用、データ活用とか。https://github.com/uyamazak/

Google Data Studioでbizoceanのセグメント別に会員数を表示

データ活用プロジェクトoceanusの一環で、営業さん等が会員データを手早く、安全に確認できるツールを作った。

データを準備をしたのは私だけど、Data Stuidoのレポートを作ったのは私ではない。6月入社のmasui(仮)さんだ。


f:id:uyamazak:20170822101309p:plain


真ん中に表示されているようなチェックボックスをいじるだけで、その条件の会員数や、そのほかの割合もすぐ表示される。

営業さんが行っている会員向けメールマガジンの提案用、という目的でヒアリングをして、この形となった。


現在、BigQueryからデータを読み込んでいるが、BigQueryに入れた時点で名前、メールアドレスなどの漏れたらヤバいデータは削除してあるので、安心して使える。

以前は、メルマガ配信用システムをなんとか利用していたが、動作も遅いし、見た目もごちゃごちゃだし、個人情報も表示されてしまうので不安の種になっていた。


今の問題としては、条件が多すぎるので、チェックボックスを1クリックするだけで数~十数クエリがBigQueryに飛んでしまい、ポチポチ続けていると「割り当てエラーです」
と出て、すぐ下のような画面になる

f:id:uyamazak:20170822101759p:plain

エラーの詳細

データセットの割り当てポリシーを超過しました。

営業先でこれが起きたら致命的だ。

もうちょっとシンプルだった初期バージョンではDAtastudioのキャッシュに乗ってくれて、どんどん早くなったけど、複雑になったせいか今のバージョンではいつまでたってもキャッシュしてくれない。

あとデータ分析用の会員DBが300MB程度とはいえ、BQのスキャン料金も気になる。

そのため、データスタジオ用にBigQueryに入れているものをMySQLか何かにも入れれれば、快適になるのでは?と現在作業を進めている。

まず、SSDのCloud SQLで試しに作り、それでも遅いようなら、自分でインメモリテーブルのMySQLをDockerなどで構築する予定だ。

BigQueryは分散している構造上1TBを超えるような大型一括処理には向いているが、数百MB単位の処理を細々と行うには不向きな気がする。


bizoceanはまだまだ小さな会社でそんな予算もないけど、こういう社内が働きやすくなるとともに、技術の勉強になるものはどんどん作っていきたい。