使用 BigQuery 分析記錄檔

BigQuery 是一項強大的分析工具,您可以使用它儲存長期記錄,並對資料執行類似 SQL 的查詢。如要使用 BigQuery 進行分析,您必須明確將記錄導向 BigQuery,如下一節所述。

將記錄轉送至 BigQuery

  1. Logs Explorer 中,建立篩選器來隔離 Fleet Engine 記錄:Fleetengine.googleapis.com/Fleet
  2. 在「查詢結果」窗格中,按一下「動作」或「更多動作」選單,然後選擇「建立接收端」
  3. 指定匯入名稱 (例如 FleetEngineLogsSink)。點選「下一步」
  4. 在「Sink Destination」中,選取「BigQuery dataset」
  5. 在「選取 BigQuery 資料集」中,選取「建立新的 BigQuery 資料集」
  6. 在「Create dataset」對話方塊中,輸入「Dataset ID」
  7. 其他設定維持預設狀態,然後點選「建立資料集」
  8. 勾選「Use partitioned tables」。點選「下一步」
  9. 請保留「Choose logs to include in sink」和「Choose logs to filter out of sink」的預設值。
  10. 按一下「建立接收器」

記錄檔現在應該會開始填入 BigQuery 資料集,這可能需要一點時間。另請參閱「將記錄路由至支援的目的地」。

將記錄資料轉送至 BigQuery 後,系統會自動填入 FleetEngineLogs 資料集下方的多個資料表,每個記錄類型一個:

  • CreateVehicle
  • GetVehicle
  • ListVehicles
  • SearchVehicles
  • UpdateVehicle
  • CreateTrip
  • GetTrip
  • UpdateTrip
  • ListTrips

資料表名稱採用下列模式:

project_id.data_set.log_name

舉例來說,如果專案名稱為 test-project,資料集名稱為 FleetEngineLogs,則 CreateTrip 資料表的名稱會是:

test-project.FleetEngineLogs.fleetengine_googleapis_com_create_trip

BigQuery 查詢範例

以下範例查詢說明如何在 BigQuery 中搜尋不同的記錄項目。

按小時分組的 CreateTrips 記錄數

    SELECT TIMESTAMP_TRUNC(timestamp, HOUR) as hour,
           count(*) as num_trips_created
    FROM
    `ProjectId.FleetEngineLogs.fleetengine_googleapis_com_create_trip`
    GROUP BY hour
    ORDER by hour

每小時每輛車的停靠站數

    SELECT
      jsonpayload_v1_updatevehiclelog.request.vehicleid AS vehicle,
      TIMESTAMP_TRUNC(timestamp, HOUR) AS hour,
      COUNT(*) AS num_stops
    FROM
      `ProjectId.FleetEngineLogs.fleetengine_googleapis_com_update__vehicle`
    WHERE
    ARRAY_LENGTH(jsonpayload_v1_updatevehiclelog.request.vehicle.remainingvehiclejourneysegments) > 0
    AND jsonpayload_v1_updatevehiclelog.request.vehicle.remainingvehiclejourneysegments[
    OFFSET
    (0)].stop.state = 'VEHICLE_STOP_STATE_LOG_ARRIVED'
    GROUP BY
    1,
    2
    ORDER BY
    2

舉例來說,這個查詢可讓您知道過去一小時內:

  • 車輛 A 在第 12 小時完成 10 個停靠站,第 13 小時完成 8 個停靠站。
  • 車輛 B 在第 11 小時完成 5 個停靠站,第 12 小時完成 7 個停靠站。
  • 車輛 C 在第 13 小時完成 12 個停靠站,第 14 小時完成 9 個停靠站。

另請參閱「查看導向至 BigQuery 的記錄」。

將 BigQuery 與 Looker Studio 整合

BigQuery 可與商業智慧工具整合,用於建立業務分析儀表板。請參閱 Looker Studio

以下範例說明如何建構 Looker Studio 資訊主頁,以便在地圖上視覺化行程和車輛移動情形。

  1. 啟動新的 Looker Studio 資訊主頁,然後選取 BigQuery 做為資料連線。
  2. 選取「自訂查詢」,然後手動輸入或選取應收費的 Cloud 專案。
  3. 在查詢方塊中輸入下列任一查詢。

隨選行程查詢範例

    SELECT
     timestamp,
     labels.vehicle_id,
    jsonpayload_v1_updatevehiclelog.response.lastlocation.location.latitude AS lat,
    jsonpayload_v1_updatevehiclelog.response.lastlocation.location.longitude AS lng
    FROM
    `ProjectId.TableName.fleetengine_googleapis_com_update_vehicle`

已排定工作查詢範例

    SELECT
    labels.delivery_vehicle_id,
    jsonpayload_v1_updatedeliveryvehiclelog.response.lastlocation.rawlocation.longitude as lat, jsonpayload_v1_updatedeliveryvehiclelog.response.lastlocation.rawlocation.latitude as lng
    FROM `ProjectID.TableName.fleetengine_googleapis_com_update_delivery_vehicle`
  1. 選取「圖表類型」為「氣泡圖」,然後選取「位置」欄位。
  2. 選取「新增欄位」
  3. 為欄位命名,並新增以下公式:CONCAT(lat, ",", lng)
  4. 將類型設為「地理位置 -> 緯度、經度」
  5. 您可以將控制項新增至資訊主頁,用來篩選資料。例如,選取「日期範圍」篩選器。
  6. 編輯日期範圍方塊,選取預設日期範圍。
  7. 您可以為 vehicle_id 新增其他下拉式選單控制項。透過這些控制項,您可以以視覺化方式查看車輛的移動情形,或行程內的移動情形。

Looker Studio 輸出內容範例:

Looker Studio 輸出內容範例

後續步驟

如要遵守資料保留政策,請參閱「限制記錄保留時間」。