BigQueryではじめるWeb解析入門 ① 〜はじめてのSQL〜

Miki Katsuragi
google-cloud-jp
Published in
Feb 23, 2022

--

お客様から「AutoMLはノーコードだから自分でも使えるんですが、BigQuery ML(以下 BQML )になるとハードルが上がります」「Google Analytics4(GA4)でデータがBigQueryにエクスポートされても活用方法が分からない」というお声をよく頂きます。

そこで、この記事ではSQLやコードを書いたことがない方、機械学習の初心者の方でもBigQueryでGA4のデータを使った特徴量エンジニアリングや機械学習モデルをトレーニングできるように解説します。

前提条件

  • BigQuery API が有効になっている Google Cloud プロジェクトへのアクセス権が必要です。BigQuery クイックスタート ガイドの「始める前に」の手順に沿って、新しい Google Cloud プロジェクトを作成するか、既存のプロジェクトで BigQuery API を有効にしてください。
  • 無料の BigQuery サンドボックス モードをご利用いただけます(制限付き)。 このデータセットを探索したりサンプルクエリを実行したりするには、無料枠で十分対応可能ですが、無料枠を超えてご利用の場合は、課金を有効にすることもできます。料金体系の詳細はこちらを参照ください。

SQLの基本

SQLはデータベース(RDBMS)やデータウェアハウス(DWH)を操作するための言語です。BigQueryではANSI 標準 SQL クエリに対応しており、データを挿入したり、検索する際に利用します。はじめてBigQueryのクエリ構文ページを見た方はオプションが多すぎると思われるかもしれませんが、実はSQLの基本的な構文はとても簡単で、まず覚えるべきは

SELECT 列名 FROM 表名

だけです。

SQLの最低限の構文

めちゃくちゃ簡単ですね。

やってみましょう

では、実際にみなさんも BigQuery 上で SQL を実行してみましょう。

1)[ビッグデータ > BigQuery] 画面を開きます。今回は、Google Merchandise Store という Google ブランドの商品を販売するオンラインストアのGA4のサンプルデータをみてみます。

2) 画面左の「エクスプローラ」という文字の右に並ぶ三つの点を選択し、「+データを追加 > 名前を指定してプロジェクトにスターをつける」リンクからプロジェクト名に bigquery-public-data を入力しスターをつけます。

3) 画面右に[エディタ] タブが表示されていない場合は、[+クエリを新規作成] をクリックします。以下のSQLを入力して「実行」ボタンを押してみてください。このSQLは、上で説明した基本(SELECT 列名 FROM 表名)と同じであることがお分かりと思います。

SELECT event_name
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_20201213`

このように、BigQueryのデータやオブジェクトは「プロジェクト名.データセット名.テーブル名」という3階層構造で格納されており、SQLで指定するときもこのフォーマットに準じています。今回は「bigquery-public-data」プロジェクトの「ga4_obfuscated_sample_ecommerce」というデータセットの「events_20201213」という表から「event_name」という列のデータを参照しているわけです。

また、緑のチェックアイコン(SQLが正確であることを示しています)の横に「このクエリを実行すると、603.4KBが処理されます。」と記載されています。これが、今回のSQLで課金対象となるデータ容量となります。BigQueryは上述のように月1TBのクエリは無料なので、無料枠の範囲内で実行可能です。

4) SQLの実行が完了すると、以下のようなクエリ結果が表示されます。なお、今回のクエリ結果だけみても、GA4のイベントにadd_payment_infoという値があるんだなということしか分かりません。さらに、結果が重複していることにお気づきだと思います。

5) そこで、これらの重複をなくして event_name の一覧を表示してみましょう。重複をなくすにはDISTINCTという関数を使います。以下のようにDISTINCTを付与してSQLを実行してみてください。

SELECT DISTINCT event_name --重複排除
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_20201213`

すると、以下のように重複を排除して結果が表示されます。先ほどの結果より、分かりやすいですね。

このように、SQLはさまざまな関数を使うことでよりデータを色んな粒度や見え方で抽出できるようになります。

まとめ

この記事では、SQLの最小限の構文と、BigQueryの画面の見方、操作方法の基本をご説明しました。BigQueryついてさらに知りたい方はBigQuery入門ガイドを参照ください。次回は、もう少し便利なSQLの基本をご案内します。

--

--