На первый взгляд кажется, что нашим партнерам не так важно, как именно Wialon работает с сообщениями. Они устанавливают трекеры и датчики на транспорт своих клиентов, подключают их к Wialon, устройства передают информацию, наша платформа ее отображает – все работает!
На практике неизбежны вопросы от пользователя. «Весь месяц я отслеживал данные в мобильном приложении, а сегодня сформировал отчет – и результаты другие!», «Датчики прислали новую информацию – почему в отчете это не отражено?».
Мы считаем, что понимание алгоритмов нашей платформы сильно облегчает работу с ней и конечным пользователем.
Именно поэтому, к примеру, Олег Жарковский, лидер команды по обучению Wialon, и Мария Поклонская, бизнес-аналитик Gurtam, провели митап на тему «3 метода обработки данных в Wialon».
А в этой статье мы собрали и структурировали самую важную и полезную информацию на основе митапа.
Начнем с терминов: что в данном случае мы имеем в виду под «данными»?
Данные – это сообщения, которые сохраняет и передает устройство, установленное на объекте. Такие сообщения включают в себя:
Wialon принимает эти данные, в случае необходимости вносит в них изменения и обрабатывает.
Данные в Wialon и способы их обработки
Расскажем подробно о каждом этапе работы с данными.
Для Wialon время – это исключительно важная информация, так как именно по времени происходит сортировка сообщений.
Как это работает: трекер формирует сообщение, используя формат Unix-времени (количество секунд, прошедших с полуночи 1 января 1970 года) и отправляет на сервер Wialon.
Команда разработчиков Wialon рассматривает возможность увеличения размера поля для времени на три символа. Но реализация и тестирование этой доработки – дело небыстрое, так как обработка данных по секундам и миллисекундам должна быть максимально надежной.
Время сохранения сообщения трекером меньше либо равно времени его отправки трекером из своей памяти, и все это меньше либо равно времени прихода на сервер.
Выглядит это так:
Правило Wialon для времени сохранения сообщения
На практике пользователь может столкнуться с ситуацией, которую мы называем «сообщение из будущего»: сервер получает сообщение с меткой времени, которое по его часам еще не наступило. Из-за чего это происходит:
Параметры – это значения в сообщениях, которые описывают состояние отслеживаемого объекта и установленного на него оборудования.
Нечитабельность данных. Информация, которую Wialon получает, не всегда понятна пользователю.
Когда пользователь видит значение temperature13, он понимает: речь идет о температуре. Но температуре чего: двигателя, топлива или воздуха? В градусах по Цельсию или Фаренгейту?
И таких вопросов может быть очень много по любому параметру. Каждый производитель трекеров имеет свое представление о том, как нужно записывать значения.
Wialon со своей стороны унифицирует общие для всех трекеров параметры. Например, параметр speed – это всегда скорость, lat, lon – координаты и так далее.
Чтобы расшифровать сообщения от трекеров, вы можете зайти в специальный раздел «GPS/ГЛОНАСС оборудование» на вкладке «Оборудование».
Если вы не смогли найти нужную информацию, то напишите в отдел по работе с оборудованием Gurtam на hw@gurtam.com, и наши специалисты обязательно помогут.
Wialon удаляет те данные, которые попадают в категорию неточных согласно настройкам валидности. Все настройки осуществляет пользователь, без них Wialon ничего не удаляет.
Коротко напомним, как работает фильтрация валидности:
Фильтрация валидности сообщений
Несмотря на то, что датчики тоже работают с параметрами, они сильно упрощают их отображение для пользователя:
Например, тарировка бака при использовании датчика уровня топлива помогает определить соответствие уровня топлива в баке объему этого топлива.
Также с помощью таблицы расчета можно сопоставить значение датчика с диапазоном исходного параметра.
Например, если напряжение больше 23, то датчик зажигания включен, то есть равен 1, а если меньше, то датчик выключен и выдает 0.
Разобравшись с тем, что такое данные в Wialon и где есть «узкие» места с их предобработкой, переходим к финальной обработке этих данных.
Есть три ключевых метода обработки данных в Wialon, с которыми чаще всего встречаются пользователи. Два из них – онлайн и аналитика – хорошо известны. Третий – события – появился относительно недавно.
Сразу стоит отметить, что в качестве исходные данных эти методы берут одни и те же сообщения.
Алгоритм работы метода обработки данных онлайн – самый простой и прозрачный: он обрабатывает каждое новое сообщение в режиме реального времени.
Онлайн на первый взгляд кажется достаточно понятным и прозрачным методом обработки данных. На практике все может оказаться не так просто, подробнее мы рассмотрели пример в митапе.
В некотором смысле аналитику можно противопоставить онлайну: онлайн обрабатывает каждое приходящее сообщение здесь и сейчас, а аналитика работает с законченным периодом.
Например, если пользователь построил отчет за последний час, а потом трекер прислал какие-то данные из «черного ящика» за этот час после формирования отчета, то отчет их не будет видеть до тех пор, пока пользователь не сформирует его еще раз.
Вкладка «Сообщения»: здесь не только отображаются полученные данные, но также рассчитываются пробег и длительность поездки.
Вкладка «Треки» учитывает детектор поездок и отображает заправки и прочие маркеры.
Отчеты: представляют собой гибкий инструмент для отображения широкого спектра информации.
Wialon выгружает набор данных за указанный период, а затем работает с ними по заранее известной логике. При этом логика для каждого инструмента аналитики будет разной.
Например, таблица «Поездки» ориентируется на детектор поездок, таблица «Заправки» – на свойства из датчика уровня топлива, а таблица «Хронология» может отобразить поездки и заправки одновременно.
К онлайну и аналитике мы добавили события, в каком-то смысле объединив ключевые плюсы двух других методов.
От онлайна взяли оперативность: события учитывают все новые сообщения, обрабатывая их в фоне.
От аналитики – работу с объемом сообщений: события учитывают ранее накопленные сообщения и обрабатывают их еще раз при необходимости. В отличие от онлайна, событие отображает информацию при временном отсутствии данных. Это значит, что если в последнем сообщении нет информации по какому-то параметру, то событие возьмет эту информации из последнего известного сообщения. Онлайн не смотрит так далеко и просто ставит прочерк.
Что получаем в итоге: в тот момент, когда пользователь запросит информацию, данные уже обработаны и могут быть сразу же отображены.
На данный момент такой алгоритм применяется для показаний 6 видов:
Например, во время движения транспортного средства трекер может отправлять сообщение «двигатель работает» снова и снова. Но гораздо экономичнее прислать сообщение «двигатель работает» один раз, когда его включили, а затем – сообщение «двигатель не работает», когда состояние изменилось и двигатель выключили. Так события позволяют по одному сообщению «двигатель работает» или «двигатель не работает» судить о том, что было в промежутке.
В идеале расхождений между событиями и аналитикой не должно быть. Но в реальности они встречаются. Чаще всего это связано с различием в алгоритмах. Но в этом случае мы видим скорее разную скорость отображения результата, а не разные результаты.
Если говорить о расхождениях значений, это возможно по нескольким причинам.
Большой объем данных. Алгоритм событий, который обрабатывает данные только в хронологическом порядке, сначала рассортировывает все сообщения, а затем начинает обрабатывать их с того места, где появились новые данные.
В случае серьезной разницы, которая не исчезает через какое-то время, пользователь всегда может обратиться в техподдержку. У таких задач высокий приоритет, и команда быстро и тщательно работает над каждым случаем расхождения.
Как избежать проблемы: настроить выдачу сообщений из трекера в хронологическом порядке. Это позволит быстрее обрабатывать данные, так как событиям не придется пересчитывать старые данные несколько раз.
Изменения настроек. Представим, что весь месяц пользователь отслеживал данные в формате событий в мобильном приложении и каждый день видел одни значения. Затем 31 числа изменил настройки, например, датчиков топлива, и построил отчет за месяц. Данные в отчете могут отличаться от тех, что он видел до этого в событиях. Так происходит потому, что отчет показывает данные с учетом обновленных настроек за весь месяц, а события автоматически пересчитались только за последние 24 часа.
Как избежать проблемы: запросить перерасчет событий за все время через техподдержку support@gurtam.com.
Мы надеемся, что благодаря нашей статье вы смогли лучше разобраться в обработке данных и работе Wialon. Это позволит лучше понимать возможные различия в результатах и точнее подбирать настройки для ваших клиентов.
На нашем YouTube-канале регулярно выходят полезные и нужные видео – подписывайтесь, смотрите митапы и вебинары и присылайте комментарии, мы учитываем ваши предложения и отзывы в своей работе. Также не забывайте следить за блогом на gurtam.com, чтобы оставаться в курсе наших обновлений, аналитических материалов и подробных инструкций по использованию Wialon. И не забывайте про справочный центр Wialon – там мы собираем самую полезную информацию.