BigQuery — мощный инструмент для выполнения аналитики. Вы можете использовать его для хранения долгосрочных журналов и выполнения SQL-подобных запросов к данным. Чтобы использовать BigQuery для анализа, вы должны явно направить свои журналы в BigQuery, как описано в следующем разделе.
Направлять журналы в BigQuery
- В обозревателе журналов создайте фильтр, который изолирует журналы Fleet Engine:
Fleetengine.googleapis.com/Fleet
. - На панели «Результаты запроса» щелкните меню «Действия» или «Дополнительные действия» и выберите «Создать приемник» .
- Укажите имя приемника (например, FleetEngineLogsSink ). Нажмите Далее .
- В поле «Назначение приемника» выберите набор данных BigQuery .
- В разделе «Выбрать набор данных BigQuery» выберите «Создать новый набор данных BigQuery» .
- В диалоговом окне «Создать набор данных» введите идентификатор набора данных .
- Оставьте все остальное как есть и нажмите «Создать набор данных» .
- Отметьте Использовать секционированные таблицы . Нажмите Далее .
- Оставьте параметры «Выбрать журналы для включения в приемник» и «Выбрать журналы для фильтрации из приемника» без изменений.
- Нажмите «Создать раковину» .
Теперь ваши журналы должны начать заполнять набор данных BigQuery, что может занять некоторое время. См. также Маршрутизация журналов в поддерживаемые пункты назначения .
После маршрутизации данных журнала в BigQuery автоматически заполняются несколько таблиц в наборе данных FleetEngineLogs , по одной для каждого типа журнала:
- СоздатьТранспортное средство
- GetVehicle
- СписокТранспортные средства
- ПоискТранспортные средства
- ОбновлениеТранспортное средство
- CreateTrip
- GetTrip
- ОбновлениеПоездка
- СписокПоездки
Названия таблиц имеют следующий шаблон:
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)
. - Установите тип Гео->Широта, Долгота .
- Вы можете добавить элементы управления на панель мониторинга для фильтрации данных. Например, выберите фильтр Date-range .
- Измените поле диапазона дат, чтобы выбрать диапазон дат по умолчанию.
- Вы можете добавить дополнительные элементы управления раскрывающимся списком для
vehicle_id
. С помощью этих элементов управления вы можете визуализировать движение транспортного средства или движение в рамках поездки.
Пример вывода Looker Studio:
Что дальше?
Чтобы соблюдать политику хранения данных, см. раздел Ограничение хранения журналов .