現在、Google Cloud認定資格の取得に向けて勉強中です。
学習を進める中で、「BigQueryはサーバーレスで高速」と知識では分かっていても、「実際に触ってみないとイメージが湧かない」「でも、高額な請求知らない間に来ていたら嫌だな...」 という不安がありました。
そこで調べてみたところ、Google Cloudにはクレジットカード登録不要・完全無料で使える 「BigQuery Sandbox(サンドボックス)」 というモードがあることを知りました。
今回は、このSandbox環境を使って、Google検索のトレンドデータを実際に分析(SQL実行)してみた手順をまとめます。私と同じようにインフラ未経験でGoogle Cloudを勉強中の方の参考になれば幸いです。
対象読者
この記事は以下のような方を対象としています。
- Google Cloud に興味があるが、課金が不安で手を出せていない方
- Google Cloud認定資格の勉強を始めたい方
- BigQuery を触ってみたいが、何から始めればいいかわからない方
- SQL の基本は知っているが、クラウド環境での実行経験がない方
この記事で得られること
- クレジットカード登録なしで Google Cloud を試す方法
- BigQuery の基本的な操作手順
- 公開データセットを使った実践的なSQL実行体験
前提条件
この記事の手順は、以下の環境があればすぐに試せます。
-
Googleアカウント: 個人のGmailアカウント
(会社のアカウントではなく、個人用を推奨) - ブラウザ: Google Chrome
- クレジットカード: 不要
⚠️ 注意:
すでに請求先アカウント(クレジットカード)が紐付いているプロジェクトを使うと、Sandboxモードになりません。今回は「課金リスクゼロ」で検証するため、新規プロジェクトを作成して進めます。
BigQuery Sandbox とは?(通常版との違い)
BigQuery Sandbox は、クレジットカード情報を登録せずに BigQuery の機能を試せる「体験版」のようなモードです。
機能制限はありますが、ACEの試験勉強やSQLの練習には十分すぎるスペックを持っています。
| 機能 | 通常モード(課金あり) | Sandboxモード(無料) |
|---|---|---|
| 料金 | 従量課金(無料枠あり) | 完全無料 |
| クエリ処理量 | 青天井(設定で制限可) | 毎月 1TB まで ※1 |
| ストレージ容量 | 制限なし | 毎月 10GB まで ※2 |
| データ保存期間 | 制限なし | 60日で自動削除 ※3 |
| 必要なもの | クレジットカード | Googleアカウントのみ |
| 制限される機能 | なし | DML、ストリーミング等 ※4 |
- ※1 毎月 1TB (テラバイト) まで: テキストベースのクエリであれば、学習用途で使い切ることはまずありません。安心して何回も SELECT を実行できます。
- ※2 毎月 10GB (ギガバイト) まで: アクティブストレージの上限です。自分でデータをアップロードする場合はこの容量に注意してください。一般公開データセットを使う分には気にする必要はありません。
- ※3 60日で自動削除: Sandboxで作成したテーブルやビューには、デフォルトで60日の有効期限が設定されます。
-
※4 制限される機能: 以下の機能はSandboxモードでは利用できません。
- データ操作言語(DML)ステートメント: INSERT、UPDATE、DELETE などは使用不可
- データのストリーミング: リアルタイムでのデータ取り込みは不可
- BigQuery Data Transfer Service: 外部データソースからの自動転送は不可
💡 学習への影響について:
DMLが使えないため、テーブルへのデータ追加・更新・削除の練習はできません。ただし、SELECT文によるデータ抽出やGROUP BY、JOINなどの分析クエリは問題なく実行できるため、勉強用として十分対応できます。
実施手順
1. 新規プロジェクトの作成(Sandbox環境の準備)
Google Cloudコンソールにアクセスし、検証用の新しいプロジェクトを作成します。
手順:
-
コンソール上部のプロジェクト選択メニューをクリックし、「新しいプロジェクト」を選択します。
-
プロジェクト名を入力します。(例:
sandbox-studyなど) -
「請求先アカウント」の設定
- 請求先アカウントをまだ作成していない場合
「請求先アカウントなし」の状態でプロジェクトが作成されます。 - 請求先アカウントがすでに存在する場合
自動的にリンクされることがあります。その場合は後から「課金を無効にする」手順で解除できます。
※1つの請求先アカウントしかない場合、新しいプロジェクトは自動的にその請求先アカウントにリンクされます。
- 請求先アカウントをまだ作成していない場合
-
「作成」をクリックします。
2. 【必要な場合のみ】課金を無効にしてSandbox化する
プロジェクト作成時に請求先アカウントが紐付いてしまった場合は、手動でリンクを解除して 完全なSandbox状態(課金が発生しない状態) にします。
- 左上のナビゲーションメニュー(≡)から「お支払い」>「アカウント管理」を選択します。
- 先ほど作成したプロジェクト(例:
sandbox-study)を探します。 - 右端にある「アクション」メニュー(︙)をクリックし、「課金を無効にする」を選択します。
- 確認画面で「課金を無効にする」をクリックします。
これでプロジェクトから請求先アカウントが切り離され、安全なSandbox環境の構築は完了です。
3. BigQuery コンソールを開く
作成したプロジェクトを選択した状態で、メニューから「BigQuery」を開きます。
画面の上部(プロジェクト名の横あたり)に 「SANDBOX」 というラベルが表示されていることを確認してください。これが出ていれば、何度クエリを実行しても課金されることはありません。
4. テンプレート(デモクエリ)を選択する
画面中央にある「テンプレートを使ってみる」セクションから、「Googleトレンドのデモクエリを試す」 をクリックします。
クリックすると、SQLエディタに自動的にコードが入力されます。
デフォルトでは「アメリカ(US)」のデータを見る設定になっているため、これを日本のデータを取得できるように書き換えます。
5. 日本のデータを取得できるようにSQLを修正
エディタに入力されたSQLを一度すべて消し、以下のコードに書き換えます。
(テーブルを international_top_terms に変更し、country_name = 'Japan' で絞り込んでいます)
SELECT
refresh_date AS Day,
term AS Top_Term,
rank,
FROM `bigquery-public-data.google_trends.international_top_terms`
WHERE
rank = 1
AND country_name = 'Japan'
AND refresh_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 2 WEEK)
GROUP BY Day, Top_Term, rank
ORDER BY Day DESC
6. 実行と結果確認
「実行」ボタンをクリックします。
Sandbox環境でも、BigQueryのパワフルな処理能力により、わずか数秒で結果が返ってきます。
解説:何が起きているのか?
振り返りとして、今回触った機能のポイントを整理します。
一般公開データセット(Public Datasets)
今回のSQLにある FROM 句では、Googleが無料で提供している一般公開データセットを指定しています。
FROM `bigquery-public-data.google_trends.international_top_terms`
自分でデータをアップロードしなくても、Google Trendsの他にも、気象データ、Wikipedia、COVID-19関連などのビッグデータをすぐに分析に利用できます。
※ 一般公開データセットの活用については、こちらの記事なども参考にさせていただきました。
BigQuery一般公開データセットを試してみよう | ジェイ・アール東日本企画 デジタル・データ・ラボ
実行したSQLの意味
今回実行したSQLクエリを、句ごとに分解して解説します。
SELECT
refresh_date AS Day,
term AS Top_Term,
rank,
FROM `bigquery-public-data.google_trends.international_top_terms`
WHERE
rank = 1
AND country_name = 'Japan'
AND refresh_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 2 WEEK)
GROUP BY Day, Top_Term, rank
ORDER BY Day DESC
SELECT 句 - 取得するカラムの指定
SELECT
refresh_date AS Day,
term AS Top_Term,
rank,
| カラム名 | 別名(AS) | 内容 |
|---|---|---|
refresh_date |
Day |
データが更新された日付 |
term |
Top_Term |
検索されたキーワード |
rank |
- | 検索ランキング順位 |
AS を使うことで、出力結果のカラム名をわかりやすく変更できます。
FROM 句 - データの取得元
FROM `bigquery-public-data.google_trends.international_top_terms`
BigQueryでは、テーブルを プロジェクトID.データセット名.テーブル名 の形式で指定します。
| 要素 | 値 | 説明 |
|---|---|---|
| プロジェクトID | bigquery-public-data |
Googleが提供する公開データセット |
| データセット名 | google_trends |
Google トレンドのデータ |
| テーブル名 | international_top_terms |
国際版の検索トレンドデータ |
WHERE 句 - データの絞り込み条件
WHERE
rank = 1
AND country_name = 'Japan'
AND refresh_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 2 WEEK)
| 条件 | 意味 |
|---|---|
rank = 1 |
検索ランキング 1位のみ に絞り込む |
country_name = 'Japan' |
日本 のデータのみに絞り込む |
refresh_date >= DATE_SUB(...) |
直近2週間分 のデータのみに絞り込む |
DATE_SUB(CURRENT_DATE(), INTERVAL 2 WEEK) の意味
-
CURRENT_DATE(): 今日の日付を取得 -
DATE_SUB(..., INTERVAL 2 WEEK): 指定した日付から2週間を引く - つまり「今日から2週間前以降のデータ」という条件になります
GROUP BY 句 - 重複の排除
GROUP BY Day, Top_Term, rank
同じ日付・キーワード・ランクの組み合わせが複数あった場合に、1行にまとめます。
ORDER BY 句 - 並び替え
ORDER BY Day DESC
| 設定 | 意味 |
|---|---|
Day |
日付(refresh_date)を基準に並び替え |
DESC |
降順(新しい日付が上に来る) |
補足:
ASC(昇順)を指定すると、古い日付が上に来ます。省略した場合はASCがデフォルトです。
これにより、ブラウザの履歴ではなく、Google検索全体で、日本でその日に何が話題になったか(急上昇ワード)の直近2週間分 を抽出できました。
まとめ
「インフラの勉強にはお金がかかる」というイメージがありましたが、Sandbox機能を使えば環境構築不要・完全無料で、Google Cloudの強力なデータウェアハウスを体験できました。
Google Cloud試験勉強においても、実際にコンソール画面で「データセット」や「クエリ実行」の手順を確認しておくことは、記憶の定着に非常に役立つと感じました。
参考リンク(公式ドキュメント)
さらに詳しく学びたい方は、以下の公式ドキュメントが参考になります。



