Explore weather data

進行状況を確認

/ 25

Explore New York citizen complaints data

進行状況を確認

/ 25

Saving a new table of weather data

進行状況を確認

/ 20

Find correlation between weather and complaints

進行状況を確認

/ 30

このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。

GSP009

Google Cloud セルフペース ラボ

概要

このラボでは、BigQuery を使用して、アメリカ海洋大気庁(NOAA)の過去の気象観測データを分析してから、その気象データをニューヨーク市の 311 市民サービスコールセンター(NYC311)に寄せられた苦情に関するデータと組み合わせて使用します。これは、データ変数の相関関係を調べた Reto Meier のブログ投稿によく似た内容になっています。

サイエンティストにとって非常に便利な、Google Cloud の以下のような特長を体験できます。

  1. サーバーレス: データ処理のためにお使いのマシンにデータをダウンロードする必要はありません。データセットはクラウドに置いたままで作業します。
  2. 使いやすさ: インデックス処理などのデータの準備を事前に行わなくても、データセットに対してアドホック SQL クエリを実行できます。
  3. スケール: 非常に大規模なデータセットに対してインタラクティブにデータ探索を行うことができます。データをタイムリーに処理するためのサンプリングは必要ありません。
  4. 共有機能: 異なるデータセットのデータに対して問題なくクエリを実行できます。BigQuery はデータセットを共有するための便利な手段です。もちろん、すべてのデータを一般公開にする必要はなく、データを非公開にすることも、特定のユーザーとのみ共有することもできます。

最終的に、天候と相関性がある苦情のタイプを見つけることが目標です。たとえば、当然ながら、外気温が低い時期に住居用暖房についての苦情が最も多いことを確認します。

暖房に関する 1 日の 311 番通報と 1 日の平均気温の散布図

学習内容

このラボで行うことは以下のとおりです。

  • BigQuery コンソールでインタラクティブ クエリを実行する。
  • 複数のデータセットを組み合わせて分析を行う。
  • CORR 関数を使用して、データセット間に正または負の相関があるか、または相関がないかを判断する。

前提条件

これは、BigQuery と SQL に関して一定の経験がある方を対象とした入門レベルのラボです。BigQuery や MySQL を使用したことがない場合は、BigQuery: Qwik Start - コンソールラボで、これらの Google Cloud サービスについての知識を習得できます。

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 右側の [ラボの設定とアクセス] パネルには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • このラボで使用する一時的な認証情報(ユーザー名とパスワード)
    • このラボを行うために必要なその他の情報(ある場合)

    ラボのタイマーはページの上部に表示され、残り時間が示されます。

  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示された場合は、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの設定とアクセス] パネルでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの設定とアクセス] パネルでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで指定された認証情報を使用する必要があります。ご自身の Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後のページはクリックして先に進みます。

    • 利用規約に同意します。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

しばらくすると、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニューのアイコンと検索フィールド

タスク 1. 気象データを確認する

BigQuery コンソールを開く

  1. Google Cloud コンソールで、ナビゲーション メニュー > [BigQuery] を選択します。

[Cloud コンソールの BigQuery へようこそ] メッセージ ボックスが開きます。このメッセージ ボックスには、クイックスタート ガイドとリリースノートへのリンクが表示されます。

  1. [完了] をクリックします。

BigQuery コンソールが開きます。

  1. [エクスプローラ] タブで、[+ データを追加] をクリックします。

[追加] ウィンドウが開きます。

  1. [その他のソース] の下で [名前を指定してプロジェクトにスターを付ける] をクリックします。

  2. bigquery-public-data」と入力して [スターを付ける] をクリックします。

BigQuery コンソールの [エクスプローラ] ペインにプロジェクトが 2 つ表示されます。一方は名前がラボのプロジェクト ID、もう一方は bigquery-public-data です。

  1. BigQuery コンソールの [エクスプローラ] ペインで、bigquery-public-data データセットを展開し、[データセット] をクリックします。[プロパティ名または値を入力] フィールドで「noaa_gsod」を検索し、gsod2014 テーブルを選択します。

  2. テーブル(gsod2014)のウィンドウで [プレビュー] タブをクリックします。

[プレビュー] タブページ

  1. 各列と、いくつかのデータ値を確認します。

  2. [クエリ] をクリックして、次のクエリを置き換えます。

SELECT -- Create a timestamp from the date components. stn, TIMESTAMP(CONCAT(year,"-",mo,"-",da)) AS timestamp, -- Replace numerical null values with actual null AVG(IF (temp=9999.9, null, temp)) AS temperature, AVG(IF (wdsp="999.9", null, CAST(wdsp AS Float64))) AS wind_speed, AVG(IF (prcp=99.99, 0, prcp)) AS precipitation FROM `bigquery-public-data.noaa_gsod.gsod20*` WHERE CAST(YEAR AS INT64) > 2010 AND CAST(MO AS INT64) = 6 AND CAST(DA AS INT64) = 12 AND (stn="725030" OR -- La Guardia stn="744860") -- JFK GROUP BY stn, timestamp ORDER BY timestamp DESC, stn ASC
  1. [実行] をクリックします。結果を確認して、このクエリによって何が行われたのかを考えてみましょう。

下の [進行状況を確認] をクリックして、このラボの進捗状況を確認します。

気象データを確認する

タスク 2. ニューヨーク市民の苦情データを確認する

  1. BigQuery コンソールの [エクスプローラ] ペインで、新しく追加した bigquery-public-data データセットを選択し、[データセット] をクリックします。[プロパティ名または値を入力] フィールドで「new_york_311」データセットを検索し、311_service_requests テーブルを選択します。

  2. 次に [プレビュー] タブをクリックすると、コンソールには次のように表示されます。

311_service_requests の [プレビュー] タブページ

  1. 各列と、いくつかのデータ値を確認します。

  2. エディタが閉じている場合は、[+](SQL クエリ)アイコンをクリックします。

  3. 以下をクエリエディタに貼り付けます。

SELECT EXTRACT(YEAR FROM created_date) AS year, complaint_type, COUNT(1) AS num_complaints FROM `bigquery-public-data.new_york.311_service_requests` GROUP BY year, complaint_type ORDER BY num_complaints DESC
  1. [実行] をクリックします。

  2. 結果を見て、数が多い苦情を確認します。このラボの後半部分では、こうした苦情に天候との相関関係があるかどうかを判断します。

下の [進行状況を確認] をクリックして、このラボの進捗状況を確認します。

ニューヨーク市民の苦情データを確認する

タスク 3. 気象データの新しいテーブルを保存する

  1. BigQuery コンソールの [エクスプローラ] ペインで、プロジェクト ID の横にあるその他アイコンをクリックし、[データセットを作成] をクリックします。

  2. [データセットの作成] ダイアログで [データセット ID] を「demos」に設定し、他のオプションはすべてデフォルト値のままにします。

  3. [データセットを作成] をクリックします。これで、プロジェクトに「demos」というデータセットが作成されました。

  4. [+](SQL クエリ)アイコンをクリックして、次のクエリを実行します。

SELECT -- Create a timestamp from the date components. timestamp(concat(year,"-",mo,"-",da)) as timestamp, -- Replace numerical null values with actual nulls AVG(IF (temp=9999.9, null, temp)) AS temperature, AVG(IF (visib=999.9, null, visib)) AS visibility, AVG(IF (wdsp="999.9", null, CAST(wdsp AS Float64))) AS wind_speed, AVG(IF (gust=999.9, null, gust)) AS wind_gust, AVG(IF (prcp=99.99, null, prcp)) AS precipitation, AVG(IF (sndp=999.9, null, sndp)) AS snow_depth FROM `bigquery-public-data.noaa_gsod.gsod20*` WHERE CAST(YEAR AS INT64) > 2008 AND (stn="725030" OR -- La Guardia stn="744860") -- JFK GROUP BY timestamp
  1. クエリエディタ セクションで、[編集] > [クエリの設定] をクリックします。

  2. [クエリの設定] ダイアログで次のフィールドを設定します。他のフィールドはデフォルト値のままにします。

宛先: [クエリ結果の宛先テーブルを設定する] を選択します。

データセット: 「.demos」と入力し、データセットを選択します。

テーブル ID: 「nyc_weather」と入力します。

結果サイズ: [大容量の結果を許可する(サイズ上限なし)] をオンにします。

  1. [保存] をクリックします。

  2. [実行] をクリックします。

作成したデータセット(demos)に結果が保存されます。

  1. [編集] > [クエリの設定] に戻り、[宛先] オプションで [一時テーブルにクエリ結果を保存] を選択します。これで demos データセットは今後のクエリの宛先ではなくなります。

  2. [保存] をクリックしてクエリの設定を閉じます。

下の [進行状況を確認] をクリックして、このラボの進捗状況を確認します。

気象データの新しいテーブルを保存する

タスク 4. データセット間の相関関係を検出する

CORR 関数で測定される「強い相関」は、2 つの変数の間に一貫して密接な関係があることを示します。一方の変数の値が増加すると、他方の変数の値も予測可能な形で増加(正の相関)または減少(負の相関)する傾向があります。相関が強いと判断される値は、一般に絶対値で 0.7 以上です。つまり、一方の変数の変化によって、もう一方の変数の変化の少なくとも 49% を説明できるということです。

次に、CORR 関数を使用して、受け取った苦情の数と 1 日の気温を比較します。

  1. SQL クエリの作成 [+] をクリックして、次のクエリを実行します。
SELECT descriptor, sum(complaint_count) as total_complaint_count, count(temperature) as data_count, ROUND(corr(temperature, avg_count),3) AS corr_count, ROUND(corr(temperature, avg_pct_count),3) AS corr_pct From ( SELECT avg(pct_count) as avg_pct_count, avg(day_count) as avg_count, sum(day_count) as complaint_count, descriptor, temperature FROM ( SELECT DATE(timestamp) AS date, temperature FROM demos.nyc_weather) a JOIN ( SELECT x.date, descriptor, day_count, day_count / all_calls_count as pct_count FROM (SELECT DATE(created_date) AS date, concat(complaint_type, ": ", descriptor) as descriptor, COUNT(*) AS day_count FROM `bigquery-public-data.new_york.311_service_requests` GROUP BY date, descriptor)x JOIN ( SELECT DATE(timestamp) AS date, COUNT(*) AS all_calls_count FROM `demos.nyc_weather` GROUP BY date )y ON x.date=y.date )b ON a.date = b.date GROUP BY descriptor, temperature ) GROUP BY descriptor HAVING total_complaint_count > 5000 AND ABS(corr_pct) > 0.5 AND data_count > 5 ORDER BY ABS(corr_pct) DESC

この結果は、暖房に関する苦情と気温との間には負の相関関係があり(つまり、暖房に関する苦情は寒い日に多い)、枯れ木に関する苦情と気温との間には正の相関関係がある(つまり、枯れ木に関する苦情は暑い日に多い)ことを示しています。

次に、CORR 関数を使用して、苦情の数と風速を比較します。

  1. [+](SQL クエリ)アイコンをクリックして、次のクエリを実行します。
SELECT descriptor, sum(complaint_count) as total_complaint_count, count(wind_speed) as data_count, ROUND(corr(wind_speed, avg_count),3) AS corr_count, ROUND(corr(wind_speed, avg_pct_count),3) AS corr_pct From ( SELECT avg(pct_count) as avg_pct_count, avg(day_count) as avg_count, sum(day_count) as complaint_count, descriptor, wind_speed FROM ( SELECT DATE(timestamp) AS date, wind_speed FROM demos.nyc_weather) a JOIN ( SELECT x.date, descriptor, day_count, day_count / all_calls_count as pct_count FROM (SELECT DATE(created_date) AS date, concat(complaint_type, ": ", descriptor) as descriptor, COUNT(*) AS day_count FROM `bigquery-public-data.new_york.311_service_requests` GROUP BY date, descriptor)x JOIN ( SELECT DATE(timestamp) AS date, COUNT(*) AS all_calls_count FROM `demos.nyc_weather` GROUP BY date )y ON x.date=y.date )b ON a.date = b.date GROUP BY descriptor, wind_speed ) GROUP BY descriptor HAVING total_complaint_count > 5000 AND ABS(corr_pct) > 0.5 AND data_count > 5 ORDER BY ABS(corr_pct) DESC
  1. 騒音に関する苦情の場合、[Corr] 列は両方とも負です。風の強い日に騒音に関する苦情が少ない理由を推測できますか。係数は統計的に十分でしょうか。

下の [進行状況を確認] をクリックして、このラボの進捗状況を確認します。

天候と苦情の間の相関関係を検出する

お疲れさまでした

このラボでは、クラスタの設定やインデックスの作成を行わずに、データに対するクエリを実行できることを確認しました。また、2 つのデータセットを組み合わせて結果の関係性を調べ、興味深い分析情報を引き出しました。

次のステップと詳細情報

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2026 年 6 月 12 日

ラボの最終テスト日: 2026 年 6 月 12 日

Copyright 2026 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボを実行するには、シークレット モードまたはシークレット ブラウジング ウィンドウを使用することをおすすめします。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。