Процесс Geomesa TrackLabel WPS

Я пытаюсь отобразить текущую позицию каждого устройства, зарегистрированного в моей базе данных geomesa-accumulo, через WPS геосервера. Поскольку каждое устройство отправляет свою позицию каждые X секунд. Я использую процесс TrackLabel геомесы, чтобы получить последнюю позицию каждого устройства, настройка процесса WPS:

track: device_id
dtg  : date_time

С помощью я запускаю процесс и отображаю результаты с помощью листовки. Но я думаю, что результаты не такие, как я ожидал, потому что если я выполню следующий запрос в блокноте jupyter:

spark.sql("select device_id, date_time, position from positions where device_id = 145 order by date_time desc limit 1").show()

Он возвращает, что последняя позиция была 2016-05-17 20:47, но процесс TrackLabel говорит 2016-03-05 20:12.

Мои вопросы: если это правильный подход, то чего мне не хватает? Или каким должен быть правильный подход к этой проблеме?


person jramirez    schedule 26.09.2017    source источник
comment
можете ли вы использовать инструменты CLI, чтобы выяснить, что на самом деле является правильным значением?   -  person Emilio Lahr-Vivaz    schedule 26.09.2017
comment
Повторный запуск запроса дает те же результаты. Но процесс TrackLabel не показывает ту же позицию, что и текущая. Кроме того, некоторые device_id не отображаются в результате TrackLabel json.   -  person jramirez    schedule 26.09.2017
comment
можете ли вы использовать инструменты CLI geomesa для проверки вместо spark sql? это должно дать окончательный ответ. geomesa export ... --attributes date_time -q "device_id = 'foo'" | sort -r | head -n1   -  person Emilio Lahr-Vivaz    schedule 26.09.2017
comment
Спасибо за пример кли. Я запускаю команду, и она выводит: 2016-05-17T20:47:13.000Z,145,15121874,POINT (-57.555508 -25.258156) в качестве последней позиции, что совпадает с выводом SparkSQL.   -  person jramirez    schedule 26.09.2017
comment
Вы можете опубликовать полный XML, который вы используете для WPS?   -  person Emilio Lahr-Vivaz    schedule 27.09.2017
comment
Да, полную полезную нагрузку WPS, которую я использую, можно найти здесь pastebin.com/sJSpPWy9.   -  person jramirez    schedule 27.09.2017
comment
Я клонировал репозиторий Geomesa, чтобы проверить процесс TrackLabel. Я изменил его, чтобы напечатать одну запись в сгруппированной карте, выполнив следующие действия: grouped.get(int2Integer(145)).foreach(f =› print(SF: + f + \n)) результаты этого находятся в pastebin.com/XTWsJdp1 показывает данные только за 2015 год.   -  person jramirez    schedule 27.09.2017
comment
Давайте продолжим обсуждение в чате.   -  person Emilio Lahr-Vivaz    schedule 27.09.2017


Ответы (1)


Поскольку вы запрашиваете весь набор данных, вы можете достичь предела результатов WFS. Подробнее см. здесь.

person Emilio Lahr-Vivaz    schedule 27.09.2017
comment
Благодаря этой подсказке и всей помощи в чате я реализовал решение, в котором я сначала сужаю входные данные с помощью geomesa:Query, а затем использую процесс geomesa:TrackLabel для определения текущих позиций в моей базе данных. - person jramirez; 27.09.2017