Несколько лет назад вышел релиз продукта, который получил название ArcGIS GeoAnalytics Server. Он представляет собой отдельный сервер (или группу серверов) в составе ArcGIS Enterprisе и позволяет производить распределенную обработку данных. Под словом распределенная обработка в данном случае подразумевается выполнение задач геопроцессинга, при которых исходный набор данных разделяется на фрагменты и каждый фрагмент обрабатывается отдельным процессом. После чего результаты распределенной обработки объединяются в итоговый результат и сохраняются в памяти или на диске. В качестве программной основы GeoAnalytics Server используется популярный фреймворк Apache Spark.
Что дает распределенная обработка данных? Она позволяет сократить в разы время вычислений, если вы работаете с большими объемами данных. В какой то момент крупные интернет-компании обнаружили, что для решения аналитических задач им нужно обрабатывать массивы данных которые уже не помещаются на одном сервере. В результате им пришлось писать программное обеспечение, которое умело бы разделять массив данных на фрагменты, обрабатывать параллельно эти фрагменты в кластере серверов и сохранять результаты обработки в виде нового набора данных. Потом это направление получило название Big Data и на данный момент практически в каждой крупной компании есть свои подразделения по работе с большими данными или хотя бы программное обеспечение относящееся к этой категории.
Технологии Big Data в продуктах Esri
Инструменты GeoAnalytics Server сейчас можно запускать из веб-интерфейса на Портале или из настольного продукта ArcGIS Pro.
В ArcGIS Pro 2.4 появился новый набор инструментов GeoAnalytics Desktop Tools, который также может запускать распределенную обработку данных.
Ключевое отличие настольной версии GeoAnalytics от серверной заключается в том, что процессы запускаются локально на компьютере, на котором установлен ArcGIS Pro. Основой продукта служит все тот же Apache Spark. Набор инструментов похож на тот, что поставляется вместе с серверной версией, но совпадение не полное. Серверная версия обладает более широкими возможностями. Еще одно отличие от серверной версии — нет возможности чтения данных из Big Data File Share. Все входные данные должны быть классами пространственных объектов или таблицами. Результаты расчетов также сохраняются локально.
Сравнение производительности инструментов
Мы провели небольшое сравнение производительность инструмента GeoAnalytics Desktop Tools и стандартного инструмента геообработки ArcGIS Pro. В качестве тестовой задачи было выбрано суммирование атрибутов слоя точечных адресов, состоящего из 13 миллионов точек. Стандартному инструменту потребовалось 24 минуты для выполнения расчета. Аналогичный инструмент из набора GeoAnalytics Desktop Tools справился с той же задачей за 1 минуту 31 секунду, то есть примерно в 15 раз быстрее. Связано это с тем, что инструмент GeoAnalytics Desktop, а точнее фреймворк Apache Spark, на базе которого он написан, задействует все доступные ядра процессора и достаточно хорошо оптимизирован для операций типа суммирования, агрегирования и сортировки. Этот пример не означает, что любой инструмент из набора GeoAnalytics всегда будет минимум в 15 раз быстрее аналогичного стандартного инструмента ArcGIS Pro, но в большинстве случае выигрыш в производительности будет очень существенным.
Еще один пример применения новых инструментов: построение сетки ячеек с суммарным количеством точечных адресов на всю территорию России. Размер каждой ячейки — 2 километра, цвет показывает количество точечных адресов, попадающих внутрь ячейки. На обработку 13 миллионов исходных точек потребовалась 1 минута 47 секунд.
Что будет, если запустить инструмент GeoAnalytics на небольшом наборе данных? Будет ли выигрыш производительности? Ответ: скорее всего нет, потому что этим инструментам нужно некоторое время на то, чтобы разбить датасет на фрагменты, запустить параллельные процессы в операционной системе и только после этого начинается процесс расчета. Стандартный инструмент как правило стартует сразу. Поэтому на небольших наборах данных он может показать лучшее время. Если количество объектов в слое измеряется хотя бы сотнями тысяч, есть смысл попробовать инструменты GeoAnalytics.
Лицензирование: набор инструментов GeoAnalytics Desktop Tools доступен всем пользователям ArcGIS Pro c лицензией уровня Advanced (ранее она называлась ArcInfo).