非エンジニア向けにSQL社内勉強会を開催しました
先日SQLの社内勉強会を開催しました。
今回は特に「非エンジニア」に向けて、SQLの初歩〜社内分析環境(Redash)の使い方までを勉強しました。
非エンジニアがSQLを書けるメリットとしては
- 自分でスピーディーに仮説を検証できる
- エンジニアのプロダクト開発工数を奪わない
などのメリットがあるかと思います。
SQLを叩くのはエンジニアの担当、ってことが多いかと思いますが、最近はプロデューサーやマーケターもSQLを書けるようにトレーニングしている会社が多いようです。
僕の以前勤めていたDeNAでも、イケてるプロデューサーは自分でSQLを書いて仮説を確かめていた気がします。
maricuruの分析環境
maricuruではメインの分析環境にAmplitudeを使用していました。
というか今も使っています。
Amplitudeは特にExpoを使っていると導入が簡単で、またローンチ初期は非常にスピーディーに基本的な分析ができる印象です。
ブラウザ上でSQLっぽい抽出条件をポチポチと選ぶと、グラフや表を出力できます。
ただサービスが成長してきて、より細かい分析をしたくなると生SQLを叩きたくなります。
(Amplitudeではこれが有料版でないとできず、有料版は半端なく高価)
そこでmaricuruではAmplitudeのデータをBigQueryに流し込む基盤を開発し、BiqQuery + Redashで分析できるようにしました。
構成はこんな感じです。
AmplitudeのExportデータだけでなく、RDBのスナップショットもBiqQueryに格納しています。
勉強会 〜基礎編〜
まずは基礎からです。
教材はこちら。
みんな大好き、新日本プロレスのIWGPチャンピオンを題材にしています。
参加者の中にはSQLってもの自体が初めてのメンバーも多いので
- テーブル
- カラム
- レコード
などの概念からはじめました。
続いて実際にSQLを書きながら体験してみます。
SQLを実行するにあたりプレイグラウンド的なサービスの
SQL Fiddle
を利用しました。
SQLを書いて実行結果を確かめるまでをブラウザ上で体験できるので、勉強にはちょうどよかったです。
まずはSELECT
、WHERE
などのSQLコマンドです。
今回の目的は「分析」だったので、UPDATE
や DELETE
などのデータ操作する系は割愛しました。
あとは JOIN
です。
多くのテーブルを横断して分析することになるので、JOIN
の理解は必須ですね。
この辺が割と難しそうな印象でした。
が、なんとか参加者全員が課題をクリアすることができました。
実践編 〜ReDash〜
続いて実践編として、本番のデータをReDashで抽出してみました。
が、これはだいぶハードルが高かったようです。。
- テーブルの種類が膨大でどこに欲しいデータがあるかわからない
WITH
やJOIN
を多用する必要がある
などが難しいポイントだったようです。
エンジニア側で
- どのデータがどのテーブルにあるかの資料を用意する
- コピペで使える便利なSQLを予めいくつか用意しておく
などできるともう少しスムーズに進みそうです。