Анализ журналов с помощью BigQuery

BigQuery – это мощный инструмент для анализа данных. Вы можете использовать его для хранения журналов в течение более длительного времени и выполнения SQL-запросов к данным. Чтобы использовать BigQuery для анализа, необходимо явно направить журналы в BigQuery, как описано в следующем разделе.

Маршрутизация журналов в BigQuery

  1. В Проводнике журналов создайте фильтр, который изолирует журналы Fleet Engine: Fleetengine.googleapis.com/Fleet.
  2. На панели Query Results (Результаты запроса) нажмите на меню Actions (Действия) или More Actions (Дополнительные действия) и выберите Create Sink (Создать приемник).
  3. Укажите название приемника (например, FleetEngineLogsSink). Нажмите Далее.
  4. В разделе Sink Destination (Целевой приемник) выберите BigQuery dataset (Набор данных BigQuery).
  5. В разделе Выберите набор данных BigQuery нажмите Создать набор данных BigQuery.
  6. В диалоговом окне Создание набора данных введите идентификатор набора данных.
  7. Оставьте остальные настройки без изменений и нажмите Create dataset (Создать набор данных).
  8. Установите флажок Использовать секционированные таблицы. Нажмите Далее.
  9. Оставьте поля Выберите журналы, которые нужно добавить в приемник и Выберите журналы, которые нужно исключить из приемника без изменений.
  10. Нажмите Create Sink (Создать приемник).

Набор данных 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 сделало 10 остановок в 12:00 и 8 остановок в 13:00.
  • Транспортное средство B сделало 5 остановок в 11-й час и 7 остановок в 12-й час.
  • Транспортное средство C сделало 12 остановок в 13-й час и 9 остановок в 14-й час.

Подробнее о том, как посмотреть журналы, перенаправленные в 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. Выберите Chart Type as Bubble Map (Тип диаграммы: пузырьковая карта), а затем выберите поле location (местоположение).
  2. Выберите Добавить поле.
  3. Укажите название поля и добавьте следующую формулу: CONCAT(lat, ",", lng).
  4. Выберите тип Геоданные > Широта, долгота.
  5. Вы можете добавить на панель управления элементы управления для фильтрации данных. Например, выберите фильтр Диапазон дат.
  6. В поле диапазона дат выберите диапазон по умолчанию.
  7. Вы можете добавить дополнительные элементы управления раскрывающегося списка для vehicle_id. С помощью этих элементов управления вы можете визуализировать движение транспортного средства или движение в рамках поездки.

Пример выходных данных Looker Studio:

Пример выходных данных Looker Studio

Дальнейшие действия

Чтобы обеспечить соответствие правилам хранения данных, ознакомьтесь с разделом Ограничение хранения журналов.