BigQuery — мощный инструмент для проведения аналитики. Вы можете использовать его для хранения долговременных логов и для выполнения SQL-подобных запросов к данным. Для использования BigQuery в анализе необходимо явно направлять ваши логи в BigQuery, как описано в следующем разделе.
Перенаправлять журналы в BigQuery
- В обозревателе журналов создайте фильтр, который изолирует журналы Fleet Engine:
Fleetengine.googleapis.com/Fleet. - В области «Результаты запроса» щелкните меню «Действия» или «Дополнительные действия» и выберите «Создать приемник» .
- Укажите имя приемника (например, FleetEngineLogsSink ). Нажмите «Далее» .
- В поле «Назначение приемника» выберите набор данных BigQuery .
- В разделе «Выбор набора данных BigQuery» выберите «Создать новый набор данных BigQuery» .
- В диалоговом окне «Создать набор данных» введите идентификатор набора данных .
- Оставьте все остальное как есть и нажмите «Создать набор данных» .
- Установите флажок «Использовать секционированные таблицы» . Нажмите «Далее» .
- Оставьте поля «Выбрать журналы для включения в приемник» и «Выбрать журналы для фильтрации из приемника» без изменений.
- Нажмите «Создать приемник» .
Теперь ваши журналы должны начать заполнять набор данных BigQuery, что может занять некоторое время. См. также раздел «Направление журналов в поддерживаемые места назначения» .
После того, как вы настроите передачу данных журналов в BigQuery, несколько таблиц в наборе данных FleetEngineLogs будут автоматически заполнены, по одной для каждого типа журналов:
- CreateVehicle
- GetVehicle
- ListVehicles
- Поисковые транспортные средства
- Обновить транспортное средство
- CreateTrip
- GetTrip
- Обновление поездки
- 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
Например, этот запрос может показать, что за последний час:
- Транспортное средство А совершило 10 остановок за 12 часов и 8 остановок за 13 часов.
- Транспортное средство B совершило 5 остановок за 11-й час и 7 остановок за 12-й час.
- Транспортное средство C совершило 12 остановок за 13-й час и 9 остановок за 14-й час.
См. также Просмотр журналов, направляемых в BigQuery .
Интеграция BigQuery с Looker Studio
BigQuery можно интегрировать с инструментами бизнес-аналитики для создания панелей мониторинга бизнес-аналитики. См. Looker Studio .
В следующем примере показано, как создать панель мониторинга Looker Studio для визуализации поездок и перемещений транспортных средств на карте.
- Запустите новую панель мониторинга Looker Studio и выберите BigQuery в качестве источника данных.
- Выберите «Пользовательский запрос» и вручную введите или выберите облачный проект, к которому следует отнести счет.
- Введите один из следующих запросов в поле для запроса.
Пример запроса для заказа поездок по требованию
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). - Установите тип данных на Geo->Latitude, Longitude .
- На панель управления можно добавить элементы управления для фильтрации данных. Например, выберите фильтр «Диапазон дат» .
- Отредактируйте поле «Диапазон дат», чтобы выбрать диапазон дат по умолчанию.
- Для
vehicle_idможно добавить дополнительные элементы управления в виде выпадающих списков . С помощью этих элементов управления можно визуализировать движение транспортного средства или движение в рамках поездки.
Пример выходных данных в Looker Studio:

Что дальше?
Для соблюдения правил хранения данных см. раздел «Ограничение хранения журналов» .