どうも、最近道を歩いていたら、バイクシェアのポートでとても困った感じでスマホをいじっている外国人の方を発見、(ふっ、しゃあねえな)と思いつつ「Can I help you?」と尋ねたら「いや、それがね、普通は返却ボタン押したらメール来るじゃないですか、なのにね……」とめちゃくちゃ流暢な日本語で返された、分析官の岡部です。(バイクシェアアプリの不具合だったみたいです)
本記事はMatillion for BigQueryのTipsです。
BigQueryユーザーの方以外はご容赦ください。
また、Matillionってなんじゃい??という方はこちらの記事をご覧ください
それではいきましょう。
What:何をやろうとしているのか?
こちらの記事に引き続き、実務でも頻出の、Google Analyticsデータを例にして説明していきます。
- 自社サイトの PVはどれくらいなの?
- そのPVは日々どれくらい変動してるの?
- PVの増減に影響を与えている原因はなんなの?
「〜~みたいなことを知りたくてさー、データはBigQeuryに入ってるから調べといてよ」
と上司から言われたとしましょう*1。
早速、データが格納されているBigQueryをみてみると、どうも日ごとに別テーブルとして格納されているようです。
さて、困りました、まさか読込テーブルを変えて1日ごと集計するわけにもいきません。
どうしようかと、途方に暮れているその時、思い出したのです。
そう、Matillionの存在を。*2
How:どうやるのか?
というわけで、とりあえず日ごとにサイトのPV数を算出していきましょう。
テーブル名は
{Project}.{Dataset}.ga_sessions_yyyymmdd
だとします。
早速本題ですが、Read以下のWildcard Table Inputを使います。
まずはProject名とDataset名でテーブルが格納されている場所を指定してください。
次にTable Prefix、
ここには日付部分以外のga_sessions_と打ち込みます。
最後にWhere Clauseですが
_TABLE_SUFFIX BETWEEN '{yyyymmdd(開始日)}' AND '{yyyymmdd(終了日)}'
のように記述してください。
これで開始日ー終了日までの日付テーブルを一気に読み込めます。
以上です、簡単ですね。
ちなみに、指定した日付を新しくカラムとして持ちたい時は
Input Table SuffixをYesにして、Table Suffix Column Nameにカラムの名前を記述してください。
そうすると、例えば20170701テーブル中の全てのレコードに、20170701と入るようなカラムが追加されます。
GAのように日付カラム(date)が元から入っている場合はそれを指定すればいいのですが、ファイル名のみで日付を管理するようなテーブルの場合は役に立つでしょう。
ここまでくるとこちらの記事に従って、unnestをして日ごとにPVを集計すると欲しかったものが出てきます。
土日(1, 2, 7, 8)はややPVが落ち込むこと、10日の月曜日にPVが増えていることがわかります。
あとはその原因を探っていくため、例えば10日はどのページへのアクセスが多かったのか?などを調べていくことになるでしょう。
簡単ではありますが、日付ごとに分割された複数テーブルを読み込む方法のご紹介でした。
それでは快適なMatillionライフを
*1:「GAのレポート画面で見ればいいじゃん」という方、もっともでございます。こちらの記事の脚注をご参考ください。
*2:別にMatillionを使わなくてもBigQueryで簡単にできます。あくまでMatillionでのやり方解説です。