第3話 たんたん、データの沼にはまっていく
大切な前置き
このお話はフィクションです。実在の人物や団体、事件などとは一切関係ありません。
たんたん、データを求める
初めての失敗と初めての成功を体験したたんたんは、今日もグロースハックに精を出していた。
ABテストの作業は地道ではあるが、正しいやり方で行っていけば着実に成果が出る。だからこそいろいろな企業がこのやり方を使っているんだろうなあと、たんたんはぼんやりと理解してきた。
そして、たんたんは、本人が気づかないうちにグロースハッカーとして次のステージに進んでいた。
もっといろいろなデータがみたいと思うようになったのである。
FUを使うユーザーは女性が多いと言われているが、男性はどの程度いるのだろうか。女性と男性では入会時の会話の好みが違うのではないか。それで言うなら女性でも年代が違えば好みも違うだろう。
そもそもアプリを使っているユーザーはどういう目的でFUを使っているのだろう。どんな人がどんなときにアプリのどの機能を使っているのだろう。
知りたいことが山のようにあって、知らないことが海のようにあった。
「こんなときは、よりーさんに相談ね!!」
たんたんは走り出した。たどり着きたい場所が、あるから。
SQLを書こう
「そんなわけで、データをください!!!」
「落ち着いて。どうしたのいきなり。」
「もっといろいろなデータが見たくなったんです。」
「なるほどなんとなくわかったよ。データ分析という沼にようこそ。」
「沼?」
「ああ、こっちの話。それはそうと、せっかくだしこれを機にSQLの書き方を覚えたらどうだろう?」
「QOL?」
「SQL。データを抽出するための言葉みたいなものだね。普段たんたんが見ているBIツールの、ここのボタンを押してみて。」
「はい。あ、なにか出てきました。」
「それがSQL。BIツールっていうのは、そうやってSQLを書いてデータベースから取ってきたデータをグラフにしてくれるツールなんだ。それで、データベースからデータを抽出するためには、文法に沿ってSQL文、クエリって言うんだけど、それを書けばいいんだ。」
「これが、プログラミングってやつですか。難しそう。。。」
「プログラミングの一種と言えばそうなるかな。そこの定義は難しいから置いておくとして、覚えてしまえば難しくないよ。」
「がんばります!!」
「いい返事だね。基礎的な話をすると、データはデータベースの中にあるテーブルっていうのに入っている。」
「この例だとテーブル1にはユーザーの年齢とインストールした日、テーブル2には身長と体重のデータがあることになるね。この縦のageとかinstall_dateとかのことを列もしくはカラム、横の1行のことをレコードって呼ぶね。」
「こうやってみるとExcelにデータが書いてあるのと似てますね。」
「そう考えればわかりやすいね。ここからデータを取り出すための手続きがSQLを書くということだね。まずは基本的な文法から覚えていこう。1番単純なSQLはこんな感じになるよ。」
「欲しいデータ、どこからデータを出して欲しいか、季節の挨拶。この3つが1番単純なSQLの書き方なんだ。」
「最初の2つはなんとなくわかるんですけれど、最後の季節の挨拶は必要なんですか?」
「良い質問だね。挨拶はとても大事だよ。古事記にもそう書いてあるからね。
SQLは機械に命令するための言語だから、文法に忠実じゃなきゃいけないんだけれど、季節の挨拶は『命令はここでおしまいですよ』っていうのを表しているんだ。これを入れないと機械は『まだ続きがある』って判断して命令を実行してくれないんだ。
実はここはツールによっては省略できるんだけど、書いたほうがいいね。」
「なるほど。御飯を食べた後のごちそうさまと同じで、挨拶は大事なんですね。」
「うん。今話した通りSQLは文法に厳しい。1つ1つの意味を理解して、正しい文法を覚えていこう。実は、このくらい簡単なSQLでもよく間違えることがあるんだ。よくある間違いはこんな感じかな。」
「確かに、うっかり間違っちゃいそうです。」
「ある程度SQLを書き慣れてても結構やってしまうミスだからね。そして、こういうミスをするとエラーが表示されるんだ。例えば最初のミスだと『Error running query: syntax error at or near "from" LINE 5: from ^』っていうエラーが出る(※使用しているデータベースによりエラーの表示は異なります)。」
「エラーってなんか怖いです。」
「そう。エラーが出て怖かったり、解消できなくて諦めてしまうっていうのが、SQLを書き始めたときに最初に出会う問題なんだ。でも、エラーをよく見ればどこがおかしいのかわかるから、諦めずに頑張ることが大事なんだよ。」
「確かに。LINE 5って書いてありますね。LINE 5のあたりがおかしいって教えてくれてるんですね。」
「わかってきたみたいだね。『syntax error』っていうのは文法のエラーという意味だから、書いたSQLが文法的におかしいんだなってなるよね。そうしてLINE 5付近がおかしいって言われてて、よく見たらfromの前の最後の行に , をつけちゃっているのがおかしいんだなって気づけるね。」
「なるほど!」
「3つ目の例のタイプミスの場合は、本来 from と書くべき場所の色が変わってないことでも気づくことが出来るね。このSQLを書く場所をエディターって言うんだけど、賢いエディターは人間が読みやすいように意味のある文字は色を変えて表示してくれるんだ。」
「人間に優しく作られてるんですね。」
「人間が使うものだからね。そういう配慮が行き届いているかどうかなんかも、BIツールを選ぶポイントになるね。」
「なるほど!」
「文法については最近はオンラインで勉強できるサイトもあるから、そういうところで勉強するのがいいと思う。おすすめはこのあたりかな。
http://studybyyourself.com/seminar/sql/course/?lang=ja
あとは他の人が書いているクエリを見たりしながら、とにかく書いて慣れることだね。色々なエラーに出会ってそのたびに調べて解決していくうちに書けるようになってくると思う。」
「わかりました。自信はないですけれど、やってみます!!」
「あ、注意点だけど、文法を間違えるとデータベースにものすごく負荷がかかってデータベースがダウンしたり、ダッシュボードを表示しているサーバーがダウンしたりするんだ。それをすると分析基盤っていう怖い人たちを怒らせることになるから、最初のうちはクエリを書いたら必ず見せてね。」
(サプリメントの用法・用量に注意が必要なのと同じ。定められた文法・データ量を守らないいけないのね。)
たんたん、データの沼にハマる
その後SQLを勉強したたんたんは、無事にある程度のSQLが書けるようになった。SQLという武器を手に入れたたんたんは、その武器を手に様々なデータを見た。
ユーザーの男女比、年代の人数比、ログイン時間の分布、利用している機能、見れば見るほどさらに細かいデータが知りたくなり、SQLを書く手が止まらない。
それは奇しくも管理栄養士時代に、食事の献立を考える作業に似ていた。食べる人の年齢、性別、普段の生活によって必要なソリューションが違う。最適な献立を考えるためには、どれだけ細かくデータを見ても足りない。足りない。
「これは、、たしかに沼。」
「一度データを覗き始めた者を深くに引きずり込む、人食い沼ッ…!」
こうしてたんたんはデータの深淵を見た。SAN値が3ほど減少した。
次回予告
データの深淵に触れてまた1つ成長したたんたんに与えられた次なる試練は、近々リリースされる新機能のグロースハック作業だった。
新機能のグロースハック作業に必要なデータを参照するためのクエリの作成から行うことになったたんたんは、データの在り処を知るべく、エンジニアのもとに赴くことになった。
そこでたんたんは、これまでエンジニアとひとくくりに呼んでいた人たちが実はたくさんの種類に分かれているということを知るのだった。
次回「たんたん、エンジニアに会う」絶対見てくれよな!