見出し画像

初心者がBigQueryを使ってみた感想

こんばんは。
この記事はWEBやデータ分析に関する投稿をみんなでしてみようというアドベントカレンダーの12/20(カレンダー2)担当記事でございます。
日付を跨いでしまいました…。申し訳ありません。
グリニッジ…すみません何でもありません。本題へ行きましょう。

BigQuery、使っていますか?

使ってるよ!という方々には残念ながら何も益がない記事なのですが、自分のような初心者がゼロからBigQueryを学んで触ってみた感想をつらつらと書いていこうと思います。

主観ですが、BigQueryを使いたがらない初心者ユーザーにとってのハードルが「従量課金コワイ」「SQLコワイ」「導入までの社内調整タイヘン」などでは無いかなと思うので、ちょっとくらいそのような不安を取り除ければいいなと思います。

BigQueryでGA360,GA4を連携するメリットが無視できないレベルで大きい

なぜ初心者がGA4を利用しようと思ったのかと言いますと、Googleアナリティクスの生データを活用したくなったからなんですね。

今まではGA360に限定されていたBigQueryとの連携機能が、GA4では無料で連携できるということもあり最近ではGAユーザー間でBigQueryの話題が増えてるように感じています。

一方で、話題になるのってある程度使いこなせている先輩方が多く、僕のような「まずはスライム倒す…いやメニューの開き方と歩き方から教えて下さい^^」みたいなレベル1の方が全然見当たらないようにも感じました。
※筆者は文系出身WEBディレクターなのでとてもすごく無知です。

皆さんなんでそんなにすごいんですか。僕はライフコッド村の崖あたりでひのきのぼうを振り回していますよ。

そんなレベル1がGA×BigQuery環境の構築に手を出さなければ行けなかった理由が「生データ活用」です。
もっと言うと「サンプリング回避して爆速で色々自動で集計してデータポータルに繋げられるデータほしい」です。

UAプロパティのGoogleアナリティクスの頃から、様々な自動集計やダッシュボードの構築方法がありましたが、長期間での集計や複雑な集計を行う際に発生するサンプリングは常に悩みのタネでした。

この問題は、アドホックな分析をしたいケースよりも定常的にKPI指標を計測し続けるダッシュボードの運用において特に厄介でした。

そんなわけで、仕事用GAでもプライベートの勉強用GAでも、BigQueryと向き合ってみるかというテンションになったわけですね。

従量課金コワイ問題

初心者がビビってしまうハードルの一つ目は「料金コストの見積もりが難しい」と感じる点ではないでしょうか?僕は大いにビビって頭を悩ませました。

とはいえ別に怖いものではないのでざっとまとめると

・BigQueryは有償のDWHである
・GA4とBigQueryの連携機能自体は無料で提供されている
・連携後にはBigQuery側で2種類の利用料金が発生する
 └分析料金:クエリの処理にかかる費用
 └ストレージ料金:BigQueryにデータを保管する費用

処理したデータの分だけ従量課金される「オンデマンド料金」と、月額や年額で支払う「定額料金」の2パターンが用意されています。

詳細は公式のページでご確認頂きたいですが、毎月無料で利用できる枠もちゃんとあるし料金自体もかなり安価です。ほらこわくない怖くない。

でもSQL書くの下手っぴ(死語)だと、従量課金で全財産吹っ飛ぶんでしょ?と、ライフコッド村在住の初心者は思っておりました。
それについても幾つか解決方法があります。

解決方法その1

出典:【BigQuery】料金制限の話 - Qiita

・クエリで課金される最大バイト数の設定
・ユーザーレベルまたはプロジェクトレベルのカスタムコスト管理

このような設定を行うことで、まず発生する費用の上限を定義できます。オンデマンド料金モデルでもおっかなびっくりSQL実行してデータをつつくことができます。つついてる内に、自分が普段利用したいデータのボリューム・保存期間・定期実行時・アドホックなクエリ実行時のコストが掴めてくるかと思います。

解決方法その2

出典:無料・10分でできる、BigQuery サンドボックス利用手順

データの保存期間が短いなどの利用制限が特に気にならない場合、BigQueryサンドボックスのプロジェクトでまずは試してみることを強くおすすめします!

クラウドSQLの分析環境構築が未経験で、SQLもまだまだ未熟な僕には大変ありがたかったのがこのサンドボックスです。
例によって詳しくは公式ページを御覧頂きたいのですが、制限範囲内での利用で十分な場合は「サンドボックス=絶対にコスト発生しないテスト環境」から初めて徐々に慣れていくと良いと思います。

スケジュールされたクエリの集計結果テーブルをデータポータルに繋いで見る

これです。やりたかったのこれです。
アドホックな分析をゴリゴリできるほどSQLによるデータ抽出に慣れてない初心者は、まずは一つ自分がほしいデータを取得できるSQLを用意して「スケジュールされたクエリ」で毎日定期実行するようにしてみてはいかがでしょうか。

集計結果テーブルをデータポータルなどで可視化してみると、そこで初めてBigQueryの良さや使い勝手、自分のSQLのダメなところetcに気づくことができます。

BigQueryをゴリゴリ活用できる方からすれば、散歩をするくらいのことかもしれませんがゼロからスタートするBigQuery初心者にとっては初めてのレベルアップくらい嬉しいものです。振り回してたひのきのぼう、ちゃんと当たってたんだなと。

BigQueryを使ってみて感じた課題

初心者ですので、大量の壁とハードルにぶち当たってました。

まず困ったのが「ガチ初心者はどこから学べば良いのか検討もつかない」ということでした。いきなり有料セミナーに飛び込む勇気と予算もなかったので、聞ける人も周りにいなきゃ自力でやるしかないなぁと僕の場合どんどん実践しながらトライアンドエラーを繰り返してました。多分効率最悪です。

また、「GA4のデータ構造がSQL初心者に優しくない」というのも中々厳しかったです。

・1行の中に沢山のデータが入っている為、select 文でアクセスするとエラーが出る
・イベントによって key:value の組み合わせが異なる

というハードルを飛び越えるために、サブクエリ内で unnest して、データの重複を避けてGA4のイベントデータを抽出する必要があります。

できるかぁ!!!!!!とかなり眉間にシワを寄せながら泣きながらSQLを勉強したのが筆者の2021年です。
BigQueryもSQLもGA4も初心者だよという方はどうぞご安心ください。僕が多分世界で一番BigQueryとSQLとGA4下手くそですから。失敗しても死にはしないし破産もしないので、安心して今からでもチャレンジしてみてください。

今回はあえて苦手なBigQueryについて、ちょっとだけ書いてみました。
生憎忙しすぎて学ぶ時間を最近作れていない為、自信を持ってクエリやダッシュボードをお披露目できるのは来年になりそうです。

GAを利用したアクセス解析も、BigQuery×BIツールなどの他のサービス・ツールとの連携を前提とした環境構築・活用が求められるようになってきました。

失敗しても良いので、ちょっとずつ新しいことに挑戦してみることをオススメします。最初の一歩でこけても大丈夫ですから、頑張りましょう~。

この記事が気に入ったらサポートをしてみませんか?