使用 BigQuery 分析日志

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

将日志转送到 BigQuery

  1. Logs Explorer 中,创建一个用于隔离 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. 将类型设置为地理位置 -> 纬度、经度
  5. 您可以向信息中心添加控件来过滤数据。例如,选择日期范围过滤条件。
  6. 修改日期范围框,选择默认日期范围。
  7. 您可以为 vehicle_id 添加其他下拉列表控件。借助这些控件,您可以直观地查看车辆的移动情况或行程中的移动情况。

Looker Studio 示例输出:

Looker Studio 输出示例

后续步骤

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