Explore weather data

Check my progress

/ 25

Explore New York citizen complaints data

Check my progress

/ 25

Saving a new table of weather data

Check my progress

/ 20

Find correlation between weather and complaints

Check my progress

/ 30

This lab may incorporate AI tools to support your learning.

GSP009

Google Cloud 自學實驗室

總覽

在本實驗室中,您將使用 BigQuery 分析美國國家海洋暨大氣總署 (NOAA) 的歷來天氣觀測資料,然後將天氣資料與紐約市 311 專線收到的市民投訴進一步結合分析,以瞭解資料變數之間的關聯性 (類似概念可參閱 Reto Meier 的網誌文章)。

您將實際體驗多項對科學家極具效益的 Google Cloud 特色:

  1. 無伺服器:可直接在雲端處理資料集,不必將資料下載到本機。
  2. 使用便利:可對資料集執行臨時 SQL 查詢,不必事先準備資料 (例如建立索引)。
  3. 擴充性佳:能以互動的方式探索極大型資料集,不必對資料取樣也能及時分析。
  4. 共用性佳:輕鬆查詢不同資料集的資料。在 BigQuery 中共用資料集十分便利。當然,您也可以將資料設為私密,或只與特定對象分享,不需公開所有資料。

分析完畢後,您將瞭解哪些類型的市民投訴與天氣具有關聯性。舉例來說,您會理所當然地發現,室外寒冷時最常收到有關住宅暖爐的投訴。

散布圖:每日 311 專線收到的供暖相關通報數對比每日平均溫度

課程內容

在本實驗室中,您將:

  • 在 BigQuery 控制台進行互動式查詢。
  • 合併多個資料集並執行分析。
  • 使用 CORR 函式,判斷資料集之間具有正相關、負相關或沒有相關性。

事前準備

這是入門等級的實驗室,我們假設您已具備一些 BigQuery 和 SQL 的使用經驗。如果您從未用過 BigQuery 或 MySQL,可以透過 BigQuery:Qwik Start - 控制台實驗室快速認識這些 Google Cloud 服務。

設定和需求

瞭解以下事項後,再點選「Start Lab」按鈕

請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。

您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。

為了順利完成這個實驗室,請先確認:

  • 可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
注意事項:請使用無痕模式 (建議選項) 或私密瀏覽視窗執行此實驗室,這可以防止個人帳戶和學員帳戶之間的衝突,避免個人帳戶產生額外費用。
  • 是時候完成實驗室活動了!別忘了,活動一旦開始將無法暫停。
注意事項:務必使用實驗室專用的學員帳戶。如果使用其他 Google Cloud 帳戶,可能會產生額外費用。

如何開始實驗室及登入 Google Cloud 控制台

  1. 按一下「Start Lab」按鈕。如果實驗室會產生費用,請在開啟的對話方塊中選取付款方式。右側的「Lab setup and access」面板會顯示下列項目:

    • 「Open Google Cloud console」按鈕
    • 此實驗室所需的臨時憑證 (使用者名稱和密碼)
    • 完成此實驗室所需的其他資訊 (如有)

    請注意,實驗室計時器位於頁面頂端附近,會顯示剩餘時間。

  2. 按一下「Open Google Cloud console」。如果使用 Chrome 瀏覽器,也可以按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」

    接著,實驗室會啟動相關資源,並開啟另一個分頁,顯示「登入」頁面。

    提示:您可以在不同的視窗並排開啟分頁。

    注意:頁面顯示「選擇帳戶」對話方塊時,請點選「使用其他帳戶」
  3. 如有必要,請將下方的 Username 貼到「登入」對話方塊。

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

    您也可以在「Lab setup and access」面板找到「Username」。

  4. 點選「下一步」

  5. 複製下方的 Password,並貼到「歡迎使用」對話方塊。

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

    您也可以在「Lab setup and access」面板找到「Password」。

  6. 點選「下一步」

    重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。 注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。
  7. 繼續點按後續頁面:

    • 接受條款及細則。
    • 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
    • 請勿申請免費試用。

Google Cloud 控制台稍後會在這個分頁開啟。

注意:如要使用 Google Cloud 產品和服務,請按一下「導覽選單」,或在「搜尋」欄位輸入服務或產品名稱。「導覽選單」圖示和搜尋欄位

工作 1:探索天氣資料

開啟 BigQuery 控制台

  1. 在 Google Cloud 控制台中,依序選取「導覽選單」>「BigQuery」

接著,畫面中會顯示「歡迎使用 Cloud 控制台中的 BigQuery」訊息方塊,當中會列出快速入門導覽課程指南的連結和版本資訊。

  1. 點選「完成」

BigQuery 控制台會隨即開啟。

  1. 在「Explorer」分頁中,點選「+ 新增資料」

「新增資料」視窗隨即開啟。

  1. 在「其他來源」下方,點選「依據名稱為專案加上星號」

  2. 輸入 bigquery-public-data 並點選「星號」圖示

BigQuery 控制台的「Explorer」窗格中會顯示兩個專案,其中一個的名稱是實驗室專案 ID,另一個是 bigquery-public-data

  1. 在 BigQuery 控制台的「Explorer」窗格中,依序展開 bigquery-public-data 資料集並點選「資料集」。在「輸入屬性名稱或值」欄位中,搜尋 noaa_gsod 並選取 gsod2014 資料表。

  2. 在「Table (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. 點選「執行」並查看結果,試著判斷這個查詢的作用。

點選下方的「Check my progress」,確認您已完成本階段的操作。

探索天氣資料

工作 2:探索紐約市民投訴資料

  1. 在 BigQuery 控制台的「Explorer」窗格中,選取新加入的 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. 查看結果,找出最常見的投訴內容。您會在本實驗室的後續部分,嘗試判斷這些投訴是否與天氣有關。

點選下方的「Check my progress」,確認您已完成本階段的操作。

探索紐約市民投訴資料

工作 3:儲存新的天氣資料表

  1. 在 BigQuery 控制台的「Explorer」窗格中,點選專案 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. 點選「儲存」,關閉查詢設定頁面。

點選下方的「Check my progress」,確認您已完成本階段的操作。

儲存新的天氣資料表

工作 4:找出資料集之間的關聯性

CORR 函式可衡量兩個變數的關聯性,數值越高,代表兩者關係越密切且穩定。當一個變數的值增加時,另一個變數的值也會以可預測的方式增加 (正相關) 或減少 (負相關)。一般來說,絕對值大於或等於 0.7 的相關性即為強相關,這表示某變數的變化,至少能解釋另一個變數 49% 的變化。

接著,您將使用 CORR 函式,比較收到的投訴數量和每日氣溫。

  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 資料欄的值皆為負數。不妨想想看為何在有風的日子,噪音投訴會減少?係數是否具有足夠的統計意義?

點選下方的「Check my progress」,確認您已完成本階段的操作。

找出天氣與投訴之間的關聯性

恭喜!

在本實驗室中,您直接查詢資料,不需先行設定任何叢集、建立索引等。您還合併兩個資料集並建立結果的關聯性,獲得一些有趣的洞察資訊。

後續步驟/瞭解詳情

Google Cloud 教育訓練與認證

協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。

使用手冊上次更新日期:2026 年 6 月 12 日

實驗室上次測試日期:2026 年 6 月 12 日

Copyright 2026 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。

Before you begin

  1. Labs create a Google Cloud project and resources for a fixed time
  2. Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
  3. On the top left of your screen, click Start lab to begin

Use private browsing

  1. Copy the provided Username and Password for the lab
  2. Click Open console in private mode

Sign in to the Console

  1. Sign in using your lab credentials. Using other credentials might cause errors or incur charges.
  2. Accept the terms, and skip the recovery resource page
  3. Don't click End lab unless you've finished the lab or want to restart it, as it will clear your work and remove the project

This content is not currently available

We will notify you via email when it becomes available

Great!

We will contact you via email if it becomes available

One lab at a time

Confirm to end all existing labs and start this one

Use private browsing to run the lab

Using an Incognito or private browser window is the best way to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.