Анализируйте журналы с помощью BigQuery

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

Направляйте журналы в BigQuery

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

Теперь ваши журналы должны начать заполнять набор данных BigQuery, что может занять некоторое время. См. также Маршрутизация журналов в поддерживаемые пункты назначения .

После перенаправления данных журнала в BigQuery автоматически заполняются несколько таблиц в наборе данных FleetEngineLogs , по одной для каждого типа журнала:

  • Создать транспортное средство
  • Получить транспортное средство
  • СписокТранспорт
  • Поиск транспортных средств
  • Обновить транспортное средство
  • Создать поездку
  • GetTrip
  • ОбновлениеTrip
  • СписокПоездки

В именах таблиц используется следующий шаблон:

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

Например, этот запрос может сообщить вам, что за последний час:

  • Транспортное средство А совершило 10 остановок за 12-й час и 8 остановок за 13-й час.
  • Транспортное средство 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. Выберите тип диаграммы «Пузырьковая карта» , а затем выберите поле местоположения .
  2. Выберите Добавить поле .
  3. Назовите поле и добавьте следующую формулу: CONCAT(lat, ",", lng) .
  4. Установите тип Geo->Latitude, Longitude .
  5. Вы можете добавить элементы управления на панель мониторинга для фильтрации данных. Например, выберите фильтр «Диапазон дат» .
  6. Отредактируйте поле диапазона дат, чтобы выбрать диапазон дат по умолчанию.
  7. Вы можете добавить дополнительные элементы управления раскрывающимся списком для vehicle_id . С помощью этих элементов управления вы можете визуализировать движение автомобиля или движение в пределах поездки.

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

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

Что дальше

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