BigQueryサンドボックスを無料で試す
これはなに?
BigQueryサンドボックスと公開データセットを使って、お金をかけずにBigQueryに触ってみる記事です。
動機
iOSアプリに入れているFirebase Analyticsのデータを詳しく見てみたいという気持ちがありましたが
👻「ミスったときの高額請求がコワイ」
ので、ちょっと気軽に試してみたい!という温度感だと二の足を踏んでいました。
当然、請求対策には色々あると思います。
が、それよりまずは触ってみたいというのがありました。
そこで、無料のBigQueryサンドボックスを使ってみることにします。
BigQueryサンドボックスとは?
BigQuery サンドボックスを使用すると、BigQuery機能を無料で調べることができ、ニーズに適合したことを確認できます。サンドボックスでは、クレジット カード情報の登録、請求先アカウントの作成、プロジェクトの課金の有効化を行うことなく、BigQuery と Google Cloud Console を体験できます。
気になる制限ですが
- BigQuery(課金有効)の無料枠と同じ上限まで使用出来る
という点が良さそうです(2022/03/25時点
ただ、テーブルなどの有効期限が60 日間しかなく、これ過ぎると自動で削除されてしまう点には注意が必要です。
詳しい制限はこちら👇
やってみる
BigQuery を有効化
まずはGCPコンソールへアクセスします。
https://console.cloud.google.com/bigquery
はじめての場合は、BigQuery API を有効化します。
使うデータセット
最終的にはFirebase Analyticsのデータを使ってみたいので、それに似た公開データセット 「Google Analytics Sample」 を練習用として利用しました。
👇ここから今回使うデータセットをインポート。
- 「Google Analytics Sample」
「データセットを表示」をクリックするとコンソールが開きます。
次に、コンソール上のエクスプローラと表示されているナビゲーションパネルに、プロジェクト「bigquery-public-data」が新たに追加されているのを確認。
この「bigquery-public-data」の下に、「Google Analytics Sample」配置されます。
ちなみにアカウント、プロジェクト、データセット、テーブルは👇こんな関係性になっている模様。
- GCPアカウント
- プロジェクト
- データセット
- テーブル
- データセット
- プロジェクト
テーブル
ナビゲーション パネルから、データセット「Google Analytics Sample」を検索
(or 直接テーブル名「ga_sessions...」で探してもOK)
データセットを展開したら「ga_session_ ...」をクリックします。
そうすると右側のパネルにテーブルのスキーマが表示されます。
タブの「プレビュー」を開くと、レコードのイメージも確認出来ます。
SQLを試す
ナビゲーション パネルから、テーブル「ga_sessions...」の右側3点メニューから「クエリ」をクリック。
SQLエディタが開きます。
(この方法でエディタを開くとテーブル名が指定されている状態)
SELECT
FROM
`bigquery-public-data.google_analytics_sample.ga_sessions_20170801`
LIMIT
1000
試しにクエリを実行してみます。
SELECT
*
FROM
`bigquery-public-data.google_analytics_sample.ga_sessions_20170801`
LIMIT
10
クエリ実行時、すべてのカラムをSELECTすると処理サイズが大きくなるので注意
逆にカラムを限定すると、一気に「15MB → 19KB」と大幅に小さくなることを確認出来ます。
今回はこのまま全てのカラムを指定して実行してみます。
実行の結果
今度は、Group By を使って、ブラウザ別のレコード数を表示してみます。
SELECT
device.browser,
count(device)
FROM
`bigquery-public-data.google_analytics_sample.ga_sessions_20170801`
group by
device.browser
LIMIT
100
実行の結果
これらクエリ結果のビューからは
- 処理にかかったバイト数
- 実行時の詳細情報
の確認や
- エクスポート(CSVやJSON形式など
を行うことが出来ます。
以上。
これで今日からデータサイエンティスト?🤔
Discussion