Экспорт данных трекинга

По мере работы трекеров их данные отправляются и сохраняются в базе данных платформы Navixy, поэтому вы можете просматривать поездки в мониторинге и формировать отчёты о поездках. Однако могут возникнуть ситуации, когда необходимо выгрузить всю записанную информацию трекинга в виде геолокационных точек. Это обычно требуется для анализа данных в спорных случаях. В таком случае вы можете запросить такую информацию напрямую из базы данных.

circle-info

Этот метод позволяет получить данные более детально и «технически», чем вы видите в мониторинге. Но важно понимать, что для появления в базе данных данные должны фактически быть переданы трекером, и восстановить полностью отсутствующие в мониторинге поездки таким образом не получится.

Вам потребуется прямой доступ к базе данных MySQL чтобы вытащить данные трекинга, а это означает, что ваши клиенты не имеют прав на эту операцию, и только техники с доступом к серверу обладают необходимой авторизацией.

Данные трекинга хранятся в tracking базе данных. В зависимости от того, когда и как была развёрнута ваша инстанция платформы, возможны два принципиально разных способа организации структуры базы данных.

  • Структура с bucket'ами. В этом случае данные трекинга разбиваются на несколько bucket'ов (по умолчанию 16).

  • Файловая структура, где каждому трекеру соответствует отдельная таблица, названная по его IMEI.

Тип организации данных, который вы используете, легко проверить, просто открыв директорию хранения файлов базы данных — например, в Linux это по умолчанию /var/lib/mysql/tracking . Внутри вы найдёте либо разбиенные файлы с именами вида bucket_****.ibd, либо множество ibd и frm файлов, названных по IMEI устройств.

triangle-exclamation

Структура с bucket'ами

Это современный тип организации базы данных, где для оптимизации производительности данные хранятся не в отдельных таблицах для каждого трекера, а в так называемых bucket'ах. По умолчанию их 16, трекеры распределяются по ним случайным образом. У каждого трекера есть свой storage_id, по которому мы можем найти нужный bucket.

Для запроса данных вам нужен IMEI трекера (в этом примере мы используем условный IMEI 987654321012345) и внутренний идентификатор устройства, называемый source_id.

Узнайте source_id и storage_id с помощью этого запроса:

SELECT storage_id, source_id FROM google.sources WHERE source_imei='987654321012345'; 

Получившийся storage_id начинается с номера bucket'а — от 1 до 16. Например, storage_id=201000 означает bucket_2 и storage_id=1301000 означает bucket_13.

В следующем запросе нам понадобятся и номер bucket'а, и source_id. Этим запросом мы запрашиваем данные трекинга за нужный период и выгружаем их в CSV-файл.

Обратите внимание:

  • мы используем source_id и bucket номер которого был найден предыдущим запросом.

  • get_time — это время записи данных устройством, оно указано в UTC+0, независимо от часового пояса учётной записи пользователя.

  • У MySQL должны быть права на запись в папку, указанную в запросе.

Сам SQL-запрос выглядит следующим образом:

Для Windows путь выглядит примерно так:

Файловая структура

Это более старый способ организации структуры базы данных, который тем не менее остаётся актуальным для многих инстанций Navixy с многолетней историей.

Чтобы запросить данные в этом случае, вам нужен только IMEI трекера (в этом примере мы используем условный IMEI 987654321012345).

Обратите внимание:

  • get_time — это время записи данных устройством, оно указано в UTC+0, независимо от часового пояса учётной записи пользователя.

  • У MySQL должны быть права на запись в папку, указанную в запросе.

SQL-запрос выглядит следующим образом:

Для Windows путь выглядит примерно так:

Вывод данных

Указанный выше SQL-запрос сгенерирует CSV-файл, содержащий все точки трекинга, записанные для устройства.

Этот файл можно импортировать в Excel или использовать в любой внутренней разработке.

Последнее обновление

Это было полезно?