使用 Looker Studio 動態呈現地點洞察資料

總覽

工作流程圖:說明 Looker Studio 將城市、日期和時間的動態參數傳送至 BigQuery 中的地點洞察,以產生地理空間密度熱度圖。

本文說明如何使用 Places InsightsLooker Studio 建立動態地理空間報表。讓非技術人員也能回答自己的問題,發揮位置資料的價值。本指南說明如何將靜態報表轉換為互動式熱度圖工具,用於市場分析,不必為每個要求編寫 SQL。啟用複雜位置資料的存取權,縮小資料工程與商業智慧之間的差距。

採用這種架構模式可帶來幾項主要優點:

  • 資料視覺化:將地點洞察資料轉換為互動式地圖和圖表,立即呈現空間密度和趨勢。
  • 簡化探索作業,不必使用 SQL:讓團隊成員 (例如市場分析師或房地產規劃人員) 使用預先定義的參數動態篩選資料 (例如使用下拉式選單變更「城市」或「時段」)。他們可以探索資料,完全不必編寫任何一行 SQL 程式碼。
  • 順暢協作:透過 Looker Studio 標準共用功能,安全地發布這些互動式洞察資料。

解決方案工作流程

下列工作流程可建立高效能的報表架構。從靜態基準轉移至完全動態的應用程式,確保資料正確性,再導入複雜性。

從競爭對手分析到根據特定設施選擇地點,皆適用此模式。

必要條件

開始之前,請先按照這些操作說明設定地點洞察資料。您需要存取 Looker Studio,這項工具免付費。

步驟 1:建立靜態地理空間基準

導入互動功能前,請先建立基本查詢,並確保查詢在 Looker Studio 中正確算繪。使用 Places Insights 和 BigQuery 的地理空間功能,透過 H3 索引系統將資料匯總到六邊形格線中。這會產生查詢輸出內容,可搭配 Looker Studio 的填滿地圖圖表類型,以視覺化方式呈現。

1.1 連結資料

請使用下列靜態查詢建立初始連線。這項測試會以固定位置 (倫敦) 和類別 (餐廳) 為目標,驗證資料管道。

SELECT
  h3_index,
  `carto-os.carto.H3_BOUNDARY`(h3_index) AS h3_geo,
  restaurant_count
FROM (
  SELECT WITH AGGREGATION_THRESHOLD
    `carto-os.carto.H3_FROMGEOGPOINT`(point, 8) AS h3_index,
    COUNT(*) AS restaurant_count
  FROM
    -- Note: Change 'gb' to your target country code (e.g., 'us')
    `places_insights___gb.places`
  WHERE
    'London' IN UNNEST(locality_names)
    AND 'restaurant' IN UNNEST(types)
  GROUP BY
    h3_index
)
ORDER BY
  restaurant_count DESC;

空間匯總注意事項

這項查詢會使用 Google Cloud BigQuery 中公開提供的 CARTO Analytics Toolbox (carto-os) 函式。H3_FROMGEOGPOINT 函式會將特定位置點轉換為 H3 儲存格,這個系統會將世界劃分為六邊形格線儲存格。

我們使用這項轉換,是因為 Looker Studio 的填滿地圖需要多邊形 (形狀) 才能算繪顏色。將點轉換成六邊形後,我們就能顯示特定區域的商家密度,而不是繪製數千個重疊的點。

匯總門檻注意事項

所有 Places Insights 查詢都需要 WITH AGGREGATION_THRESHOLD 子句。 這項隱私權保護措施可確保只有在匯總計數為 5 以上時,系統才會傳回資料。

就這項視覺化效果而言,如果 H3 格線儲存格包含的餐廳少於 5 間,該儲存格就會完全從結果集中省略,並在地圖上顯示為空白。

如要在 Looker Studio 中實作這項功能,請按照下列步驟操作:

  1. 建立新的空白報表
  2. 選取「BigQuery」BigQuery做為資料連接器。
  3. 從左側選單選擇「自訂查詢」,然後選取帳單「專案 ID」
  4. 將上方的靜態基礎查詢貼到編輯器。
  5. 取消勾選「使用舊版 SQL」、「啟用日期範圍」和「啟用檢視者電子郵件地址」參數。
  6. 按一下 [新增]。

1.2 設定地理空間視覺化

連結資料後,請設定 Looker Studio,確保系統能正確辨識 H3 邊界資料:

  1. 從「新增圖表」選單,將「填滿地圖」視覺化效果新增至報表畫布。
  2. 確認包含多邊形幾何圖形的 h3_geo 欄位已設為「地理空間」資料類型。
    1. 按一下連線名稱旁邊的「編輯資料來源」 (鉛筆) 圖示。
    2. 如果 h3_geo 設為「文字」 (ABC),請使用下拉式選單依序選取「地理位置」 >「地理空間」
    3. 按一下 [完成]。
  3. h3_index 欄位對應至「地點」 (做為專屬 ID)。
  4. h3_geo 欄位對應至「地理空間欄位」 (做為多邊形幾何)。
  5. restaurant_count 欄位對應至「顏色指標」

這會根據 H3 儲存格顯示餐廳密度地圖。深藍色 (預設顏色選項) 代表餐廳數量較多的儲存格。

倫敦地圖上覆蓋六邊形網格,深藍色格線代表餐廳密度較高。圖例顯示的密度計數範圍為 5 到 1,215。

步驟 2:導入動態參數

如要讓報表具備互動性,我們會在報表中加入控制項,讓使用者從下列選項中選取:

  • 地區:控制報告的重點城市。
  • 星期幾:根據地點的營業日篩選,並運用結構化資料中的 regular_opening_hours 記錄。
  • 一天中的時間:根據 start_timeend_time 欄位比較,篩選營業時間內的場所。

如要達成這個目標,您會在執行階段將使用者選取的參數直接傳遞至修改後的 Places Insights 查詢。在 Looker Studio 的資料來源編輯器中,您必須明確將這些參數定義為型別變數。

在 Looker Studio 中選取「資源」選單,然後按一下「管理已新增的資料來源」。在隨即顯示的面板中,選取先前新增的 BigQuery 自訂 SQL 資料來源旁的 EDIT

在「編輯連線」視窗中,選取「新增參數」。我們將新增三個參數,值如下所示。

參數名稱 資料類型 允許的值 值清單 (必須與資料庫完全相符)
p_locality 文字 值清單
標籤
London 倫敦
Manchester 曼徹斯特
Birmingham 伯明罕
Glasgow 格拉斯哥
p_day_of_week 文字 值清單
標籤
monday 星期一
tuesday 週二
wednesday 週三
thursday 週四
friday Friday (週五)
saturday Saturday (週六)
sunday 星期日
p_hour_of_day 文字 值清單
標籤
03:00:00 凌晨 3 點至 4 點
08:00:00 上午 8 點至上午 9 點
19:00:00 晚上 7 點至 8 點

p_hour_of_day 參數的設定範例。

p_hour_of_day 參數的設定介面,顯示值清單部分,其中時間字串會對應至可讀取的標籤。

對於 p_hour_of_day 參數,請密切注意 Value 欄。 由於 SQL 查詢使用 CAST(@p_hour_of_day AS TIME),從 Looker Studio 傳遞的值必須採用嚴格的 HH:MM:SS 格式 (24 小時制)。

設定並儲存所有三個參數後,請修改 BigQuery 自訂 SQL 連線,使用 @ 語法參照這些變數。

方法是按一下「編輯連線」,然後貼上下列修改後的查詢:

SELECT
  h3_index,
  `carto-os.carto.H3_BOUNDARY`(h3_index) AS h3_geo,
  restaurant_count
FROM (
  SELECT WITH AGGREGATION_THRESHOLD
    `carto-os.carto.H3_FROMGEOGPOINT`(point, 8) AS h3_index,
    COUNT(*) AS restaurant_count
  FROM
    `places_insights___gb.places`
  WHERE
    -- Dynamic locality filter based on parameter
    @p_locality IN UNNEST(locality_names)
    AND 'restaurant' IN UNNEST(types)
    AND business_status = 'OPERATIONAL'
    AND EXISTS (
      SELECT 1
      FROM UNNEST(
        CASE @p_day_of_week
          WHEN 'monday' THEN regular_opening_hours.monday
          WHEN 'tuesday' THEN regular_opening_hours.tuesday
          WHEN 'wednesday' THEN regular_opening_hours.wednesday
          WHEN 'thursday' THEN regular_opening_hours.thursday
          WHEN 'friday' THEN regular_opening_hours.friday
          WHEN 'saturday' THEN regular_opening_hours.saturday
          WHEN 'sunday' THEN regular_opening_hours.sunday
        END
      ) AS hours
      WHERE hours.start_time <= CAST(@p_hour_of_day AS TIME)
        AND hours.end_time >= TIME_ADD(CAST(@p_hour_of_day AS TIME), INTERVAL 1 HOUR)
    )
  GROUP BY
    h3_index
)
ORDER BY
  restaurant_count DESC;

按一下「重新連結」即可儲存編輯內容。在修改後的查詢中,請注意新變數 (例如 @p_hour_of_day),這些變數與我們剛設定的參數名稱相關聯。

返回報表畫布,向使用者公開這些參數:

  1. 在報表中新增三個「下拉式清單」控制項。
  2. 針對每個控制項,將「控制項欄位」設為對應新建立的參數:
    • 控制項 1:p_locality
    • 控制項 2:p_day_of_week
    • 控制項 3:p_hour_of_day

最終報表應如下所示。變更任一下拉式控制項的值後,Looker Studio 會從 Places Insights 擷取所要求的資料,然後在地圖上顯示。

最終的互動式報表顯示格拉斯哥的餐廳密度地圖,頂端有三個下拉式篩選器。展開「一天中的時間」選單,顯示可選取的時間範圍。

步驟 3:分享結果

使用 Looker Studio 內建的共用工具共用報表。這樣一來,觀眾就能根據從下拉式清單中選取的參數,動態更新視覺化效果。

結論

這個模式會建立可擴充的互動式報表工具,運用 BigQuery 的運算能力,將匯總的 Places Insights 資料提供給 Looker Studio。這個架構可避免嘗試將大量原始資料集視覺化時可能遇到的問題,並讓使用者能彈性地探索不同維度的資料,例如時間、地點和商家類型,而且幾乎是即時顯示。這項強大工具可讓非技術利害關係人彈性探索資料。

後續步驟

如要探索其他動態報表變化,請將地點洞察架構的不同部分參數化:

  • 動態競爭對手分析:brand名稱建立參數,讓使用者在不同競爭對手之間即時切換熱度圖,查看他們在市場中的相對飽和度。如要瞭解品牌資料的適用情形,請參閱「關於 Places 洞察資料」。
  • 互動式網站選取:新增 price_level 的參數 (例如: 「中等」與「昂貴」) 和最低 rating,讓房地產團隊動態篩選出符合特定人口統計資料的區域。
  • 自訂集水區:使用者可定義自訂研究區域,不必依城市名稱篩選。
    • 以半徑為準:建立三個數值參數:p_latitude、p_longitude 和 p_radius_meters。座標可透過 Google 地圖平台 API 取得,包括地理編碼 API。在查詢中,將這些項目注入 ST_DWITHIN 函式:
      • ST_DWITHIN(point, ST_GEOGPOINT(@p_longitude, @p_latitude), @p_radius_meters)
    • 以多邊形為準:對於複雜的自訂形狀 (例如銷售區域),使用者無法輕鬆輸入幾何文字。請改為在 BigQuery 中建立對照表,內含形狀幾何和易記名稱 (例如「Zone A」)。在 Looker Studio 中建立文字參數 p_zone_name,讓使用者選取區域,並使用子查詢擷取 ST_CONTAINS 函式的幾何圖形。

貢獻者