ARC133
概要
チャレンジラボでは、シナリオと一連のタスクが提供されます。手順ガイドに沿って進める形式ではなく、コース内のラボで習得したスキルを駆使して、ご自身でタスクを完了していただきます。タスクが適切に完了したかどうかは、このページに表示される自動スコアリング システムで確認できます。
チャレンジラボは、Google Cloud の新しいコンセプトについて学習するためのものではありません。デフォルト値を変更する、エラー メッセージを読み調査を行ってミスを修正するなど、習得したスキルを応用する能力が求められます。
100% のスコアを達成するには、制限時間内に全タスクを完了する必要があります。
設定と要件
[ラボを開始] ボタンをクリックする前に
こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。
このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
- 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
- ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。
チャレンジ シナリオ
あなたはチームに配属されたジュニア クラウド エンジニアです。これまで、チームが Google Cloud のリソースを作成して管理できるようサポートしてきました。
このラボの課題は、Google Cloud の BigQuery API(Apps Script の拡張サービス)と、Google スプレッドシート向けの組み込み Apps Script サービスを使用してデータ分析を行うことです。
また、Google スプレッドシートを作成してデータを入力する方法、スプレッドシート データを使用してグラフを作成する方法も学びます。
以下のタスクを完了するために必要なスキルと知識があることが前提です。
課題
このラボでは、次の作業を行います。
- BigQuery に対してクエリを実行し、Apps Script を使用して結果を Google スプレッドシートのワークシートにロギングする。
- BigQuery データセットを Google スプレッドシートに接続する。
- Google Charts を使用して、コネクテッド シートでスプレッドシートのデータを可視化する。
- Apps Script を使用して新しいワークシートを作成し、データを入力する。
タスク 1. BigQuery に対してクエリを実行して、結果を Google スプレッドシートにロギングする
このタスクでは、以降の手順の前提条件として、script.google.com に移動して新しい Apps Script プロジェクトを作成し、プロジェクト名を任意の名前に変更しておく必要があります。
アプリケーション コードを入力して実行する
- 下のボックス内のコードをコピーして、コードエディタのすべての内容を置き換えます。
Code.gs
/**
* Copyright 2018 Google LLC
*
* バージョン 2.0 の Apache ライセンス(「ライセンス」)による使用許諾。
* ライセンスに準拠している場合を除き、このファイルは使用できません。
* ライセンスのコピーは apache.org/licenses/LICENSE-2.0 で取得できます。
*
適用される法律で定められている場合、または書面での合意がある場合を除き、
* ライセンスに従って配布されるソフトウェアは、明示か黙示かを問わず、
* あらゆる保証および条件なしに「現状有姿」で提供されます。
* ライセンスの下、権限と制限事項を規定する
* 特定の文言については、ライセンスを参照してください。
*/
// データ結果のファイル名
var QUERY_NAME = "Most common words in all of Shakespeare's works";
var PROJECT_ID = "{{{project_0.project_id|PROJECT_ID}}}";
if (!PROJECT_ID) throw Error('Project ID is required in setup');
/**
* BigQuery クエリを実行して、結果をスプレッドシートに記録します。このコードを実行する前に
* BigQuery 拡張サービスを有効にする必要があります。
* @see http://developers.google.com/apps-script/advanced/bigquery#run_query
* @see http://github.com/gsuitedevs/apps-script-samples/blob/master/advanced/bigquery.gs
*
* @returns {Spreadsheet} BigQuery の結果を含むスプレッドシートを返します
* @see http://developers.google.com/apps-script/reference/spreadsheet/spreadsheet
*/
function runQuery() {
// サンプルを実際の BigQuery クエリに置き換えます。
var request = {
query:
'SELECT ' +
'LOWER(word) AS word, ' +
'SUM(word_count) AS count ' +
'FROM [bigquery-public-data:samples.shakespeare] ' +
'GROUP BY word ' +
'ORDER BY count ' +
'DESC LIMIT 10'
};
var queryResults = BigQuery.Jobs.query(request, PROJECT_ID);
var jobId = queryResults.jobReference.jobId;
// BQ ジョブが完了するまで待ちます(指数バックオフを使用)。
var sleepTimeMs = 500;
while (!queryResults.jobComplete) {
Utilities.sleep(sleepTimeMs);
sleepTimeMs *= 2;
queryResults = BigQuery.Jobs.getQueryResults(PROJECT_ID, jobId);
}
// BigQuery からすべての結果を取得します。
var rows = queryResults.rows;
while (queryResults.pageToken) {
queryResults = BigQuery.Jobs.getQueryResults(PROJECT_ID, jobId, {
pageToken: queryResults.pageToken
});
rows = rows.concat(queryResults.rows);
}
// データが返されなかった場合は null を返します。
if (!rows) {
return Logger.log('No rows returned');
}
// 結果のスプレッドシートを新規作成します。
var spreadsheet = SpreadsheetApp.create(QUERY_NAME);
var sheet = spreadsheet.getActiveSheet();
// スプレッドシートにヘッダーを追加します。
var headers = queryResults.schema.fields.map(function(field) {
return field.name.toUpperCase();
});
sheet.appendRow(headers);
// 結果を追加します。
var data = new Array(rows.length);
for (var i = 0; i < rows.length; i++) {
var cols = rows[i].f;
data[i] = new Array(cols.length);
for (var j = 0; j < cols.length; j++) {
data[i][j] = cols[j].v;
}
}
// 行 2、列 1 のデータから格納を開始します
var START_ROW = 2; // ヘッダー行をスキップします
var START_COL = 1;
sheet.getRange(START_ROW, START_COL, rows.length, headers.length).setValues(data);
Logger.log('Results spreadsheet: %s', spreadsheet.getUrl());
}
-
ファイル名を bq-sheets.gs に変更し、Enter キーを押します。
-
runQuery() 関数のクエリコードが次のとおりであることを確認します。
SELECT
LOWER(word) AS word,
SUM(word_count) AS count
FROM [bigquery-public-data:samples.shakespeare]
GROUP BY word
ORDER BY count
DESC LIMIT 10
このクエリは BigQuery の一般公開データセット内にあるシェークスピアの作品を検索し、全作品中の頻出単語上位 10 個を降順で並べ替えて表示します。
- ファイルを保存し、メニューバーの [実行] オプションをクリックしてコードを実行します。
注: コードを保存して実行した後、「Exception: BigQuery API サービスが有効になっていません」というエラーが発生した場合は、BigQuery API サービスを削除してもう一度追加してください。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
BigQuery に対してクエリを実行して、結果をスプレッドシートにロギングする
タスク 2. コネクテッド シートでグラフの計算を実行する
- このタスクでは、シカゴのタクシー賃走に関するデータを含む一般公開データセットを分析する必要があります。まず、Google スプレッドシートのホームページを開きます。
BigQuery データセットを Google スプレッドシートに接続する
- 新しい空白のスプレッドシートから BigQuery データセットへの接続を作成します。
-
データコネクタを使用して、BigQuery データセットを Google スプレッドシートに接続します。
- プロジェクト ID > [一般公開データセット] > [chicago_taxi_trips] > [taxi_trips] を選択します。
コネクテッド シートで数式を使用する
- 次に、コネクテッド シートでさまざまな数式を使用してみましょう。
- シカゴにあるタクシー会社の数を求めます。
- シカゴでチップが支払われたタクシーの乗車率を求めます。
- 運賃が 0 より大きい賃走の総数を求めます。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
コネクテッド シートで数式を使用する
タスク 3. コネクテッド シートで Google Charts を使用する
このタスクでは、グラフ(ここでは円グラフと折れ線グラフ)を使用して、頻度の高い乗車パターンと支払い方法の傾向を調査します。
Google Charts で次の情報を表示します。
- タクシーの乗客が使用した支払い方法(円グラフ)
- タクシー乗車料金の、モバイル決済による収益の経時的な変化(折れ線グラフ)
- モバイル決済の、2015 年に収益のピークに達してからの経時的な変化(折れ線グラフ)
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
コネクテッド シートでグラフを使用する
タスク 4. Apps Script を使用して Google スプレッドシートのワークシートを新規作成し、データを入力する
このタスクでは、新しい Google スプレッドシートに住所を入力して、Apps Script エディタを使用する準備をします。
-
新しいスプレッドシートを作成するには、[Google スプレッドシート] を開きます。
-
空白のスプレッドシートで、左上にある最初のセル(A1)をクリックします。これが A 列の 1 行目になります。
-
最初のセルに次の住所を入力します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
Google スプレッドシートのワークシートを新規作成して住所を入力する
お疲れさまでした
これで完了です。Apps Script を使用して BigQuery データと Google Workspace を統合し、クエリ結果を Google スプレッドシートのワークシートにロギングしました。また、BigQuery データセットを Google スプレッドシートに接続し、Google Charts を使用してコネクテッド シートでスプレッドシートのデータを可視化しました。さらに、Apps Script を使用して新しいワークシートを作成し、データを入力しました。

Google Cloud トレーニングと認定資格
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2024 年 8 月 9 日
ラボの最終テスト日: 2024 年 8 月 9 日
Copyright 2026 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。