BigQuery は、分析を実行するための強力なツールです。これを使用して、長期間のログを保存し、データに対して SQL のようなクエリを実行できます。BigQuery を分析に使用するには、次のセクションで説明するように、ログを BigQuery に明示的に転送する必要があります。
ログを BigQuery に転送する
- ログ エクスプローラで、Fleet Engine ログ(
Fleetengine.googleapis.com/Fleet
)を分離するフィルタを作成します。 - [クエリ結果ペイン] で、[アクション] または [その他のアクション] メニューをクリックし、[シンクの作成] を選択します。
- シンク名を指定します(FleetEngineLogsSink など)。[次へ] をクリックします。
- [シンク デスティネーション] で [BigQuery データセット] を選択します。
- [BigQuery データセットを選択] で、[新しい BigQuery データセットを作成する] を選択します。
- [データセットを作成] ダイアログで、データセット ID を入力します。
- その他の設定はそのままにして、[データセットを作成] をクリックします。
- [パーティション分割テーブルを使用] チェックボックスをオンにします。[次へ] をクリックします。
- [シンクに含めるログの選択] と [シンクに含めないログの選択] はそのままにします。
- [シンクを作成] をクリックします。
ログが BigQuery データセットに入力され始めます。これにはしばらく時間がかかります。サポートされている宛先にログを転送するもご覧ください。
ログデータを BigQuery に転送すると、FleetEngineLogs データセットの下にあるいくつかのテーブルに、ログタイプごとに 1 つずつ自動的にデータが入力されます。
- 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
1 時間あたりの車両あたりの停留所数
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
たとえば、このクエリは過去 1 時間の次の情報を確認できます。
- 車両 A は 12 時間目に 10 件の停留所を完了し、13 時間目に 8 件の停留所を完了しました。
- 車両 B は 11 時間目に 5 件、12 時間目に 7 件の停留所を完了しました。
- 車両 C は、13 時間目に 12 件の停留所を完了し、14 時間目に 9 件の停留所を完了しました。
BigQuery に転送されたログを表示するも参照してください。
BigQuery と Looker Studio を統合する
BigQuery はビジネス インテリジェンス ツールと統合して、ビジネス分析用のダッシュボードを作成できます。Looker Studio をご覧ください。
次の例は、ルートや車両の移動を地図上に可視化するための Looker Studio ダッシュボードを作成する方法を示しています。
- 新しい Looker Studio ダッシュボードを起動し、データ接続として BigQuery を選択します。
- [カスタム クエリ] を選択し、課金先の Cloud プロジェクトを手動で入力するか選択します。
- クエリ ボックスに次のいずれかのクエリを入力します。
オンデマンド ルートのクエリ例
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`
- [グラフの種類としてバブルマップ] を選択し、[location] フィールドを選択します。
- [フィールドを追加] を選択します。
- フィールドに名前を付け、次の数式
CONCAT(lat, ",", lng)
を追加します。 - タイプを [Geo->Latitude, Longitude] に設定します。
- ダッシュボードにコントロールを追加して、データをフィルタできます。たとえば、[期間] フィルタを選択します。
- 期間の編集ボックスで、デフォルトの期間を選択します。
vehicle_id
にプルダウン リスト コントロールを追加できます。これらのコントロールを使用すると、車両の移動やルート内の移動を可視化できます。
Looker Studio の出力例:
次のステップ
データ保持ポリシーに準拠するには、ログ保持を制限するをご覧ください。