BigQuery GIS 為 Google BigQuery 服務中所提供針對地理空間資訊(Geospatial Information Systems, GIS)的分析相關功能,簡稱 BigQuery GIS,首度曝光於 2018 年發佈的 beta 測試版。當時 BigQuery 是全球第一個支援地理空間數據類與功能的雲端 MPP(Massively Parallel Processing, 大規模平行處理運算技術)的資料倉儲服務,這使得傳統 GIS 領域中的地理空間相關資料格式(如:經/緯度、城市、州、郵政編碼…等)也成為 BigQuery 預設支援的資料格式之一,提供使用者將相關的 GIS 數據,如點、線、面等相關資訊,進行資料分析、轉換,以進一步獲取深入見解。而在 2019 年,BigQuery GIS 正式宣布釋出了 GA 版,即官方正式公開發行版本。
如今,地理空間與位置資訊在資料分析中非常常見,根據 Google 統計,在 Github 中有 9% 的 SQL 檔案會執行空間查詢,其分析結果更與企業的商業決策息息相關,例如:「商店開在哪個位置能吸引到最多人流?」、「 我的包裹會準時到達嗎?」 或「我們應該將促銷優惠券推播給誰?」等,數據分析人員可以透過 BigQuery GIS 輕鬆執行空間資訊相關的資料分析操作,更輕易地做出數據導向的決策。
除了能在 BigQuery 運用 GIS 的各式語法,BigQuery GIS 還提供了 BigQuery Geo Viz — 這是一套由 Google 推出的免費開源工具,讓使用者可將透過 BigQuery 語法查詢的運算結果於地圖上快速地視覺化展示,並支援設定在地圖呈現上點/線/面等不同樣式。
BigQuery GIS 支援點(Point)、線(Linestring)、面(Polygon)的 GIS 空間資料格式,其功能與傳統使用 PostGIS 的經驗非常相似,均遵循且符合 SQL MM(ISO 標準);BigQuery GIS 所提供空間分析功能範疇,參見下表:
思想科技 實際測試案例
#Demo範例 1
公開資料集public dataset
- bigquery-public-data.geo_us_boundaries.zip_codes (美國郵遞區號分區)
- bigquery-public-data.census_bureau_usa.population_by_zip_2010 (全美2010年人口統計數據)
測試情境
- 使用「空間連結(spatial joins)」語法,將人口統計數據join加入至郵遞區號分區中,並從中選出紐約市範圍資料,於BigQuery Geo Viz上進行視覺化展示
語法
SELECT
zip_code, city, county, state_name, zip_code_geom, zipcode, population
FROM
`bigquery-public-data.geo_us_boundaries.zip_codes`
join `bigquery-public-data.census_bureau_usa.population_by_zip_2010` on zip_code = zipcode
where city = 'New York city'=
BigQuery Geo Viz 結果
#Demo範例 2
公開資料集 Public Dataset
- bigquery-public-data.geo_us_boundaries.zip_codes (美國郵遞區號分區)
- bigquery-public-data.new_york_citibike.citibike_stations (紐約citybike公共腳踏車租借站)
測試情境
- 使用「ST_DWithin」空間環域分析語法,選取郵遞區號為「10026」或「10029」兩區、以及距離此二區域外圍300公尺內之所有citybike公共腳踏車租借站,於BigQuery Geo Viz上視覺化展示,動態增減環域範圍觀察選取結果變化
語法
WITH zipcode AS (
SELECT zip_code_geom AS polygon
FROM `bigquery-public-data.geo_us_boundaries.zip_codes`
WHERE zip_code = '10026' or zip_code = '10029'
),
stations AS (
SELECT
name, num_bikes_available, latitude, longitude,
ST_GeogPoint(longitude, latitude) coordinates,
FROM
`bigquery-public-data.new_york_citibike.citibike_stations` as cbs,
zipcode
WHERE ST_DWithin(ST_GeogPoint(longitude, latitude), zipcode.polygon, 300)
)
SELECT * from stations
BigQuery Geo Viz 結果
更多介紹影片
How Geotab Drives Smart City Innovation, Using BigQuery
Google Partner – Geotab,於 Cloud Next ’18 大會中,展示如何使用 BigQueryGIS 運用於車載系統回傳之 GPS 數據,提供校園附近行車車速監控與街區潛在風險分析。
BigQuery GIS (3分鐘功能一覽)
運用 BigQueryGIS 語法,選出某一郵遞區號分區周圍 10 公里的所有氣象站;並使用「空間連結 (Spatial Joins)」語法,將人口統計數據 Join 加入至郵遞區號分區地理資料中。影片說明欄提供所使用的 query 語法放在 Github 上的連結供各界參考
BigQuery Public Dataset and GIS demo
運用 BigQueryGIS 語法,顯示全美 2018 年雷擊次數之空間分佈,並以奧克拉荷馬州為例,將平均每日雷擊次數以「空間連結 (Spatial Joins)」語法 Join 加入至郡行政區分區圖以及郵遞區號分區圖中。
相關資源
BigQuery GIS – 說明文件
BigQuery GIS 實際應用情境 – 繪製颶風行經路徑
Google Platform Console Marketplace – Public Dataset 公開資料集,供 BigQuery GIS 功能測試使用