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
차량 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`
- 차트 유형을 풍선 지도로 선택한 다음 위치 필드를 선택합니다.
- 필드 추가를 선택합니다.
- 필드 이름을 지정하고 다음 수식을 추가합니다.
CONCAT(lat, ",", lng)
- 유형을 지역->위도, 경도로 설정합니다.
- 대시보드에 컨트롤을 추가하여 데이터를 필터링할 수 있습니다. 예를 들어 기간 필터를 선택합니다.
- 기간 상자를 수정하여 기본 기간을 선택합니다.
vehicle_id
에 드롭다운 목록 컨트롤을 추가할 수 있습니다. 이러한 컨트롤을 사용하면 차량의 움직임이나 이동 내의 움직임을 시각화할 수 있습니다.
Looker Studio 출력 예시:
다음 단계
데이터 보관 정책을 준수하려면 로그 보관 제한을 참조하세요.