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

예를 들어 이 쿼리는 지난 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 대시보드를 빌드하는 방법을 보여줍니다.

  1. Looker Studio 대시보드를 실행하고 데이터 연결로 BigQuery를 선택합니다.
  2. 커스텀 쿼리 를 선택하고 청구할 클라우드 프로젝트를 수동으로 입력하거나 선택합니다.
  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 예시 출력

다음 단계

데이터 보관 정책을 준수하려면 로그 보관 제한을 참고하세요.