BigQuery로 로그 분석
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
BigQuery는 분석을 실행하기 위한 강력한 도구입니다. 이를 사용하여 장기 로그를 저장하고 데이터에 대해 SQL과 유사한 쿼리를 실행할 수 있습니다. BigQuery를 사용하여 분석하려면 다음 섹션에 설명된 대로 로그를 BigQuery로 명시적으로 라우팅해야 합니다.
BigQuery로 로그 라우팅
- 로그 탐색기에서 Fleet Engine 로그를 분리하는 필터(
Fleetengine.googleapis.com/Fleet
)를 만듭니다.
- 쿼리 결과 창에서 작업 또는 작업 더보기 메뉴를 클릭하고 싱크 만들기를 선택합니다.
- 싱크 이름을 지정합니다 (예: FleetEngineLogsSink). 다음을 클릭합니다.
- 싱크 대상 위치에서 BigQuery 데이터 세트를 선택합니다.
- BigQuery 데이터 세트 선택에서 새 BigQuery 데이터 세트 만들기를 선택합니다.
- 데이터 세트 만들기 대화상자에서 데이터 세트 ID를 입력합니다.
- 다른 모든 설정은 그대로 두고 데이터 세트 만들기를 클릭합니다.
- 파티션을 나눈 테이블 사용을 선택합니다. 다음을 클릭합니다.
- 싱크에 포함할 로그 선택 및 싱크에서 필터링할 로그 선택은 그대로 둡니다.
- 싱크 만들기를 클릭합니다.
이제 로그가 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
예를 들어 이 쿼리를 통해 지난 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`
- 차트 유형을 풍선 지도로 선택한 다음 위치 필드를 선택합니다.
- 필드 추가를 선택합니다.
- 필드 이름을 지정하고
CONCAT(lat, ",", lng)
공식을 추가합니다.
- 유형을 지역->위도, 경도로 설정합니다.
- 대시보드에 컨트롤을 추가하여 데이터를 필터링할 수 있습니다. 예를 들어 기간 필터를 선택합니다.
- 기간 상자를 수정하여 기본 기간을 선택합니다.
vehicle_id
에 드롭다운 목록 컨트롤을 추가할 수 있습니다. 이 컨트롤을 사용하면 차량의 움직임이나 여행 중 움직임을 시각화할 수 있습니다.
Looker Studio 예시 출력:

다음 단계
데이터 보관 정책을 준수하려면 로그 보관 제한을 참고하세요.
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2025-08-31(UTC)
[null,null,["최종 업데이트: 2025-08-31(UTC)"],[[["\u003cp\u003eBigQuery enables analysis of Fleet Engine logs via SQL-like queries after routing logs to a BigQuery dataset.\u003c/p\u003e\n"],["\u003cp\u003eRouting logs to BigQuery involves creating a sink in the Logs Explorer and selecting a BigQuery dataset as the destination.\u003c/p\u003e\n"],["\u003cp\u003eBigQuery automatically populates tables for each Fleet Engine log type under the specified dataset.\u003c/p\u003e\n"],["\u003cp\u003eExample queries demonstrate how to analyze trip creation, vehicle stops, and other data points within BigQuery.\u003c/p\u003e\n"],["\u003cp\u003eBigQuery integrates with Looker Studio for creating dashboards and visualizing data, such as vehicle movement on a map.\u003c/p\u003e\n"]]],[],null,["BigQuery is a powerful tool for performing analytics. You can use it to store\nlonger-term logs and to perform SQL-like queries against the data. To use\nBigQuery for analysis, you must explicitly route your logs to BigQuery, as\ndescribed in the next section.\n\nRoute logs to BigQuery\n\n1. In the [Logs Explorer](https://cloud.google.com/logging/docs/view/logs-explorer-interface), create a filter that isolates the Fleet Engine logs: `Fleetengine.googleapis.com/Fleet`.\n2. In the **Query Results pane** , click the **Actions** or **More Actions** menu and choose **Create Sink**.\n3. Specify a sink name (for example, *FleetEngineLogsSink* ). Click **Next**.\n4. In the **Sink Destination** , select **BigQuery dataset**.\n5. In **Select BigQuery dataset** , select **Create new BigQuery dataset**.\n6. In the **Create dataset** dialog, enter a **Dataset ID**.\n7. Leave everything else as is and click **Create dataset**.\n8. Check **Use partitioned tables** . Click **Next**.\n9. Leave **Choose logs to include in sink** and **Choose logs to filter out of\n sink** as they are.\n10. Click **Create Sink**.\n\nYour logs should now begin to populate the BigQuery dataset, which can take a\nshort while. See also [Route logs to supported destinations](https://cloud.google.com/logging/docs/export/configure_export_v2).\n\nOnce you are routing log data to BigQuery, several tables under the\n*FleetEngineLogs* dataset are automatically populated, one for each log type:\n\n- CreateVehicle\n- GetVehicle\n- ListVehicles\n- SearchVehicles\n- UpdateVehicle\n- CreateTrip\n- GetTrip\n- UpdateTrip\n- ListTrips\n\nThe table names use the following pattern: \n\n project_id.data_set.log_name\n\nFor example, if the project is called *test-project* and the dataset name is\n*FleetEngineLogs* , the `CreateTrip` table has the following name: \n\n test-project.FleetEngineLogs.fleetengine_googleapis_com_create_trip\n\nExample queries for BigQuery\n\nThe following example queries show how you can search for different log entries\nin BigQuery.\n\nNumber of CreateTrips logs grouped by hour \n\n SELECT TIMESTAMP_TRUNC(timestamp, HOUR) as hour,\n count(*) as num_trips_created\n FROM\n `ProjectId.FleetEngineLogs.fleetengine_googleapis_com_create_trip`\n GROUP BY hour\n ORDER by hour\n\nNumber of stops per vehicle per hour \n\n SELECT\n jsonpayload_v1_updatevehiclelog.request.vehicleid AS vehicle,\n TIMESTAMP_TRUNC(timestamp, HOUR) AS hour,\n COUNT(*) AS num_stops\n FROM\n `ProjectId.FleetEngineLogs.fleetengine_googleapis_com_update__vehicle`\n WHERE\n ARRAY_LENGTH(jsonpayload_v1_updatevehiclelog.request.vehicle.remainingvehiclejourneysegments) \u003e 0\n AND jsonpayload_v1_updatevehiclelog.request.vehicle.remainingvehiclejourneysegments[\n OFFSET\n (0)].stop.state = 'VEHICLE_STOP_STATE_LOG_ARRIVED'\n GROUP BY\n 1,\n 2\n ORDER BY\n 2\n\nFor example, this query could tell you that in the last hour:\n\n- Vehicle A completed 10 stops in hour 12 and 8 stops in hour 13.\n- Vehicle B completed 5 stops in hour 11 and 7 stops in hour 12.\n- Vehicle C completed 12 stops in hour 13 and 9 stops in hour 14.\n\nSee also [View logs routed to BigQuery](https://cloud.google.com/logging/docs/export/bigquery).\n\nIntegrate BigQuery with Looker Studio\n\nBigQuery can be integrated with business intelligence tools to create dashboards\nfor business analytics. See [Looker Studio](https://lookerstudio.google.com).\n\nThe following example shows how to build a Looker Studio dashboard for\nvisualizing trips and vehicle movements on a map.\n\n1. Launch a new [Looker Studio](https://lookerstudio.google.com) dashboard and select **BigQuery** as the data connection.\n2. Select **Custom Query** and manually enter or select the Cloud Project to which it should be billed.\n3. Enter one of the following queries into the query box.\n\nOn-demand trips example query \n\n SELECT\n timestamp,\n labels.vehicle_id,\n jsonpayload_v1_updatevehiclelog.response.lastlocation.location.latitude AS lat,\n jsonpayload_v1_updatevehiclelog.response.lastlocation.location.longitude AS lng\n FROM\n `ProjectId.TableName.fleetengine_googleapis_com_update_vehicle`\n\nScheduled Tasks example query \n\n SELECT\n labels.delivery_vehicle_id,\n jsonpayload_v1_updatedeliveryvehiclelog.response.lastlocation.rawlocation.longitude as lat, jsonpayload_v1_updatedeliveryvehiclelog.response.lastlocation.rawlocation.latitude as lng\n FROM `ProjectID.TableName.fleetengine_googleapis_com_update_delivery_vehicle`\n\n1. Select **Chart Type as Bubble Map** , and then select the **location** field.\n2. Select **Add a Field**.\n3. Name the field and add the following formula: `CONCAT(lat, \",\", lng)`.\n4. Set the type to **Geo-\\\u003eLatitude, Longitude**.\n5. You can add controls to the dashboard to filter data. For example, select the **Date-range** filter.\n6. Edit the date range box to select a default date range.\n7. You can add additional *drop-down list* controls for `vehicle_id`. With these controls, you can visualize the movement of the vehicle or the movement within a trip.\n\nLooker Studio example output:\n\nWhat's next\n\nTo comply with data retention policies, see [Restrict log\nretention](/maps/documentation/mobility/operations/cloud-logging/reduce-cost)."]]