開始使用 BigQuery GIS

本教學課程將為您介紹 BigQuery GIS。BigQuery GIS 讓您可以在 BigQuery 中輕鬆進行分析,並將地理空間資料視覺化。

目標

在本教學課程中,您將執行下列作業:

  • 使用 BigQuery GIS 函式將經度與緯度的資料欄轉換為地理點
  • 執行查詢作業,搜尋有超過 30 輛可供出租自行車的 Citi Bike 站點。
  • BigQuery Geo Viz 中以視覺化的方式呈現結果

費用

本教學課程使用 Google Cloud 的計費元件包括:

  • BigQuery

您需要支付下列費用:

  • 在 BigQuery 的公開資料集裡查詢資料
    • 每個月前 1TB 免費
    • 如果您使用固定費率,則查詢費用會包含在每個月的固定費率中。

事前準備

  1. 登入您的 Google 帳戶。

    如果您沒有帳戶,請申請新帳戶

  2. 在 GCP Console 的專案選擇器頁面中,選取或建立 GCP 專案。

    前往專案選取器頁面

  3. 請確認您已啟用 Google Cloud Platform 專案的計費功能。瞭解如何確認您已啟用專案的計費功能

  4. 新專案會自動啟用 BigQuery。如要在現有專案中啟用 BigQuery,請前往 啟用BigQuery必要的 。

    啟用 API

匯出樣本資料

本教學課程使用 Google Cloud Public Dataset Program 提供的資料集。公開資料集是儲存在 BigQuery 中且可供一般大眾使用的任何資料集。公共資料集是 BigQuery 託管的資料集,讓您能夠存取與整合到您的應用程式中。這些資料集的儲存空間費用由 Google 支付,Google 也透過專案將這些資料集提供給大眾存取。您只需要支付資料查詢費用 (每月前 1 TB 免費,相關規定請參閱查詢費率詳情)。

紐約市 Citi Bike 行程資料集

NYC Citi Bike Trips

Citi Bike 是美國最大的自行車共享計劃,在曼哈頓、布魯克林、皇后區和澤西市設有 10,000 輛自行車及 600 個站點。這個資料集包含 Citi Bike 自 2013 年 9 月推出以來所記錄的所有行程,並且每日更新。資料已由 Citi Bike 處理過,移除了工作人員為了維修檢驗系統而騎乘的行程,以及時間長度在 60 秒內的任何行程,因為這些都視為誤始行程。

您可以在 BigQuery 主控台中查看 citibike_stations 資料表的詳細資料,開始探索這份資料:

前往 citibik_stations 結構定義

在此資料表中,以下有三個資料欄與本教學課程有關:

  • bike_stations.longitude - 車站的經度。這個值是十進位制格式的有效 WGS 84 經度。
  • bike_stations.latitude - 車站的緯度。這個值是十進位制格式的有效 WGS 84 緯度。
  • num_bikes_available - 可供出租的自行車數量。

查詢可供出租超過 30 輛自行車的站點

在此教學課程章節中,您將執行一個標準 SQL 查詢,在紐約市中找到所有可供出租自行車超過 30 輛的 Cite Bike 站點。

查詢詳情

以下的標準 SQL 查詢用於搜尋超過 30 輛自行車的 Citi Bike 站點。

SELECT
  ST_GeogPoint(longitude, latitude)  AS WKT,
  num_bikes_available
FROM
  `bigquery-public-data.new_york.citibike_stations`
WHERE num_bikes_available > 30

查詢子句會執行下列動作:

  • SELECT ST_GeogPoint(longitude, latitude) AS WKT, num_bikes_available
    SELECT 子句會選取 num_bikes_available 資料欄,並使用 ST_GeogPoint 函式,將 latitudelongitude 資料欄中的值轉換為 GEOGRAPHY 類型 (資料點)。
  • FROM `bigquery-public-data.new_york.citibike_stations`
    FROM 子句指定要查詢的資料表:citibike_stations
  • WHERE num_bikes_available > 30
    WHERE 子句篩選 num_bikes_available 資料欄中的值,只選出有 30 輛自行車以上的站點。

執行查詢

如何使用 Cloud Console 中的 BigQuery 網頁版 UI 執行查詢:

  1. 前往 Cloud Console。

    前往 Cloud Console

  2. 在「Query editor」(查詢編輯器) 文字區域中,輸入下列標準 SQL 查詢。

    -- Finds Citi Bike stations with > 30 bikes
    SELECT
      ST_GeogPoint(longitude, latitude)  AS WKT,
      num_bikes_available
    FROM
      `bigquery-public-data.new_york.citibike_stations`
    WHERE num_bikes_available > 30
    
  3. 按一下 [Run] (執行)

    查詢需要一些時間才會完成。查詢執行完畢之後,您的結果會呈現於「Query results」(查詢結果) 窗格中。

    自行車站點查詢結果

在 Geo Viz 中將查詢結果視覺化

下一步,您會透過 BigQuery Geo Viz 將查詢結果視覺化。BigQuery Geo Viz 是一個網頁工具,使用 Google Maps API 在 BigQuery 中顯示地理空間資料。

啟用 Geo Viz 並進行身分驗證

在您使用 Geo Viz 之前,您必須在 BigQuery 中對資料進行身分驗證並授予存取權。

如何設定 Geo Viz:

  1. 開啟 Geo Viz 網頁版工具。

    開啟 Geo Viz 網頁版工具

  2. 在第一步「Select data」(選取資料) 中按一下 [Authorize] (授權)。

    Geo Viz 授權按鈕

  3. 在「Choose an account」(選擇帳戶) 對話方塊中,按一下您的 Google 帳戶。

    選擇帳戶對話框

  4. 在存取對話方塊中,按一下 [Allow] (允許) 以取得您 BigQuery 資料的 Geo Viz 存取權。

    允許存取對話框

對 GIS 資料執行標準 SQL 查詢

在您進行身分驗證並授予權限後,下一步是在 Geo Viz 中執行查詢。

執行查詢的方式如下:

  1. 在第一步「Select data」(選取資料) 中,於「Project ID」(專案 ID) 欄位中輸入您的專案 ID。

  2. 在查詢的視窗中,輸入下列標準 SQL 查詢。

    -- Finds Citi Bike stations with > 30 bikes
    SELECT
      ST_GeogPoint(longitude, latitude)  AS WKT,
      num_bikes_available
    FROM
      `bigquery-public-data.new_york.citibike_stations`
    WHERE num_bikes_available > 30
    
  3. 按一下 [Run] (執行)。

  4. 當查詢完畢之後,按一下 [See results] (查看結果)。您也可以按一下第二步的 [Define columns] (定義資料欄)

    查看結果

  5. 您會進入步驟二。在步驟二的「Geometry column」(Geometry 資料欄) 中,選擇 [WKT]。這會在您的地圖上標註相對應的自行車站點位置。

    地圖上的結果

設定您的視覺化格式

在樣式的部分,它提供您自定義的視覺化樣式列表。某些屬性僅適用於某些類型的資料。例如,circleRadius 僅會影響資料點。

系統支援的樣式屬性包含:

  • fillColor:多邊形或是點的填充顏色。例如,可以使用「linear」或「interval」函式以數值來對應顏色漸層。
  • fillOpacity:多邊形或是點的填充透明度。值必須在零至一的範圍內,其中 0 = 透明,且 1 = 不透明。
  • strokeColor:多邊形或線條的筆觸或外框顏色。
  • strokeOpacity:多邊形或線條的筆觸或外框的透明度。值必須在零至一的範圍內,其中 0 = 透明,且 1 = 不透明。
  • strokeWeight:多邊形或線條的筆觸或外框寬度 (以像素為單位)。
  • circleRadius:資料點的圓半徑 (以像素為單位)。例如,「linear」函式能夠以數值對應資料點的大小,以建立散佈圖的樣式。

每種樣式可能得到全域值 (應用於每個結果) 或是資料導向值 (根據每個結果資料列的資料採取不同的應用方式)。針對資料導向值,以下的項目皆會影響其結果:

  • 「function」:用於從欄位值計算樣式值的函式。
  • 「identity」:每個欄位的資料值都做為樣式值使用。
  • 「categorical」:將領域中列出的每個欄位的資料值以一對一的方式對應至範圍中的相應樣式。
  • 「interval」:每個欄位的資料值會無條件捨去至領域中最接近的值,並依據範圍中對應的樣式進行樣式設定。
  • 「linear」:每個欄位的資料值會線性內插於領域的值之間,並混合採用範圍中對應的樣式。
  • 「field」:將資料中的指定欄位當成樣式函式的輸入使用。
  • 「domain」:來自欄位的範例輸入值的已排序清單。範例輸入 (領域) 會根據指定的函式與範例輸出 (範圍) 配對,並用於推測所有輸入 (包括未列於領域中的輸入) 的樣式值。領域中的值必須要有相同的類型 (文字或數字等),做為您要進行視覺化之欄位的值。
  • 「range」:樣式規則的範例輸出值清單。範圍中的值必須要有相同的類型 (顏色或數字),做為您要控制的樣式屬性。例如,fillColor 屬性的範圍應該僅包含顏色。

如要將您的地圖進行格式化,請進行以下操作:

  1. 按一下第二步中的 [Add styles] (新增樣式),或按一下第三步的 [Style] (樣式)。

  2. 更換資料點的顏色。按一下 [fillColor]

  3. 在「Value」(值) 欄位中,輸入 #0000FF (藍色的 HTML 顏色代碼)。

    填滿顏色

  4. 查看您的地圖。若將滑鼠停留在其中一個資料點上,即會顯示該值。

    地圖資料點的詳細資訊

  5. 按一下 [fillOpacity]

  6. 在「Value」(值) 欄位中,輸入 .5

    填充不透明度

  7. 查看您的地圖。資料點的填充顏色目前為半透明。

    以半透明資料點標記於地圖上

  8. 依據可用自行車的數量改變資料點的大小。按一下 [circleRadius]

  9. 在「circleRadius」面板中:

    1. 按一下 [Data driven] (資料導向)
    2. 在「Function」(函式) 部分選擇 [linear]。
    3. 在「Field」(欄位) 部分,選擇 num_bikes_available
    4. 在「Domain」(領域) 部分,分別在第一個和第二個方塊中輸入 3060
    5. 在「Range」(範圍) 部分,分別在第一個和第二個方塊中輸入 520

      圓半徑

  10. 查看您的地圖。現在每個圓的半徑會根據該位置可用的自行車數量進行調整。

    最終地圖

  11. 關閉 Geo Viz。

清除所用資源

如何避免系統向您的 Google Cloud Platform 帳戶收取在本教學課程中使用資源的相關費用:

  • 您可以刪除建立的專案。
  • 或者您可以保留該專案以備將來使用。

如要刪除專案:

  1. 前往 GCP Console 中的「Manage resources」(管理資源) 頁面。

    前往「Manage resources」(管理資源) 頁面

  2. 在專案清單中選取您要刪除的專案,然後按一下「Delete」(刪除) 圖示
  3. 在對話方塊中輸入專案 ID,然後按一下 [Shut down] (關閉) 以刪除專案。

後續步驟