使用 BigQuery 分析日志

BigQuery 是一款功能强大的分析工具。您可以使用它来存储长期日志,并对数据执行类似 SQL 的查询。如需使用 BigQuery 进行分析,您必须明确将日志路由到 BigQuery,如下一部分所述。

将日志路由到 BigQuery

  1. 在日志浏览器中,创建一个用于隔离 Fleet Engine 日志的过滤器:Fleetengine.googleapis.com/Fleet。
  2. 在“查询结果”窗格中,点击操作或更多操作菜单,然后选择创建接收器。
  3. 指定接收器名称(例如 FleetEngineLogsSink)。点击下一步。
  4. 在接收器目标位置中,选择 BigQuery 数据集。
  5. 在选择 BigQuery 数据集部分,选择新建 BigQuery 数据集。
  6. 在创建数据集对话框中,输入数据集 ID。
  7. 保留所有其他设置不变,然后点击创建数据集。
  8. 选中使用分区表。点击下一步。
  9. 保持选择要包含在接收器中的日志和选择要从接收器中过滤掉的日志不变。
  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. 将类型设置为 Geo->Latitude, Longitude。
  5. 您可以向信息中心添加控件来过滤数据。例如,选择日期范围过滤条件。
  6. 修改“日期范围”框,选择默认日期范围。
  7. 您可以为 vehicle_id 添加其他下拉列表控件。借助这些控件,您可以直观呈现车辆的移动或行程中的移动。

Looker Studio 输出示例:

Looker Studio 输出示例

后续步骤

如需遵循数据保留政策,请参阅限制日志保留。