Когда организации необходимо осуществлять мониторинг своих активов то при проектировании системы зачастую возникает вопрос о высокопроизводительном, масштабируемом хранилище пространственных данных.
ArcGIS уже имеет готовое решение по сбору и анализу данных, поступающих в реальном времени. ArcGIS GeoEvent Extension for Server позволяет принимать данные из различных устройств и источников, используя стандартные распространенные протоколы, применять к ним «на лету» пространственные и атрибутивные фильтры и отправлять обновления и предупреждения различным клиентам: веб-карте, БД, e-mail сотруднику, специализированный сервис и иные… http://server.arcgis.com/ru/geoevent-extension/
По бенчмарк-тестам версия ArcGIS GeoEvent Extension for Server 10.3.х принимала до 3000 событий в секунду (8 CPU Intel Core i7, 2.8 Ггц). Как и вся серверная платформа ArcGIS компонент GeoEvent умеет горизонтально масштабироваться, поднимая планку максимального числа принимаемых сообщений за единицу времени.
В версии 10.3 платформы ArcGIS появился Потоковый сервис (Stream service), основанный на передаче данных посредствам WebSocket.
WebSocket — протокол полнодуплексной двунаправленной связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени. Протокол позволяет клиенту подписаться на обновления данных и получать их в режиме приближенному к реальному времени. В веб-сокетах нет теоретических ограничений на количество подписчиков. Соединение постоянно держится открытым, но не передаёт лишних HTTP заголовков. При этом связь становится быстрее, за счет сокращения не нужных сетевых пакетов.
Применение протокола WebSocket позволяет изящно решить проблему проверки обновления данных и при этом обеспечить клиентам прием сообщений в реальном времени. На графике ниже заметно значительное снижение накладных расходов использования сети для приложений, использующих WebSocket вместо классических HTTP-запросов. (источник http://www.websocket.org/quantum.html)
Поддержка Потокового сервиса (Stream service) встроена как в ArcGIS Server, так и в стандартный веб-клиент, а также в JavaScript REST API. WebSocket обеспечивает скорость передачи в 3000 событий в секунду. С другой стороны, когда имеется большее количество объектов для мониторинга то становится затруднительно их отображать на стороне веб-приложения и необходим сервис онлайн-агрегации данных.
Таким образом, в версии 10.3 обеспечивается прием и отображение 3000 событий в секунду, что в большой степени покрывает потребности современной организации. Однако, при необходимости вести историю событий ахиллесовой пятой являлась СУБД, обеспечивающая в среднем запись потока из 200 сообщений в секунду. В esri понимали критичность такого ограничения и разработали специальное хранилище больших пространсвенно-временных данных.
Начиная с версии 10.4 хранилище spatiotemporal big data store доступно для использования.
Spatiotemporal big data store записывает десятки тысяч сообщений в секунду, обеспечивает эффективный доступ и поиск больших объемов данных. Хранилище поддерживает увеличение объемов хранения и производительности за счет горизонтального масштабирования путём присоединения новых узлов, обеспечивая возможность хранения миллионов и биллионов наблюдений. А также повышает надежность хранения данных путем использования автоматической репликации данных на несколько узлов.
Хранилище Spatiotemporal big data store реализовано на базе NoSQL-подобной БД и позволяет хранить точечные, линейные и полигональные объекты. В будущем планируется поддержка табличных данных. Построение индексов объектов проводится по времени, пространству, атрибутам и их комбинациям. Возможно настроить частоту автоматического обновления индексов в зависимости от интенсивности поступления данных: раз в день, час или год.
Доступ к данным хранящимся в Spatiotemporal big data store осуществляется через динамический картографический сервис и сервис объектов ArcGIS Server.
Картографический сервис на лету агрегирует данные на сервере. В текущей версии доступна агрегация по прямоугольной сетке и овалам. При настройке сервиса можно указать метод агрегирования объектов – либо по их количеству, либо статистку по любому из атрибутивных полей, например, средняя скорость движения. Также настраивается цветовая шкала отображения, минимальный размер сетки, наличие и стили надписей значений для сетки.
Кроме этого настраивается количество объектов после которого сервис отображает не агрегированные данные, а конкретное местоположение объектов. В будущем планируется реализовать агрегацию по треугольникам, квадратам, полигонам и гексагонам (что представляется наиболее удобным для больших территорий).
Т.к. картографический сервис и сервис объектов Spatiotemporal big data store по умолчанию оперирует и отметкой о времени события, то к нему можно применить стандартные фильтры или включить анимацию по времени. Кроме того, сервисы можно фильтровать по любым дополнительным атрибутам, которые содержат данные.
Ниже приведены примеры отображения картографическим сервисом данных треков автотранспорта хранящихся в Spatiotemporal big data store.
Для развертывания Spatiotemporal big data store требуется полностью настроенный стек Веб ГИС ArcGIS и ArcGIS GeoEvent Extension for Server. Лицензия на Spatiotemporal big data store включена в ArcGIS for Server без ограничения на число узлов.
Минимальная архитектура для развертывания Spatiotemporal big data store включает использование трех серверов с установленными серверными компонентами ArcGIS не ниже 10.4
1. Сервер Веб ГИС
- Portal for ArcGIS
- ArcGIS for Server – интегрирован с Portal и настроен в как размещающий сервер (hosting server) с Data Store
- ArcGIS Web Adaptor – требуется для работы Portal
- ArcGIS Data Store – традиционная РСУБД для размещающего сервера ArcGIS for Server
2. Сервер Реального Времени
- ArcGIS for Server – может быть интегрирован с Portal (installed on a separate server which can be federated)
- ArcGIS GeoEvent Extension for Server
3. Сервер Больших Данных
- ArcGIS Data Store – реализована функциональность spatiotemporal big data store
В текущей версии администрирование, настройка и загрузка данных в Spatiotemporal big data store осуществляется через веб-интерфейс администрирования ArcGIS GeoEvent Extension for Server.
Можно создать новое хранилище, определит схему данных для хранения объектов, настроить период автоматического построения индексов, настроить число реплик данных, выбрать способы отображения, временной интервал анимации данных по умолчанию. Настроить сервис ArcGIS GeoEvent Extension для записи данных поступающих в реальном времени в Spatiotemporal big data store.
Для загрузки уже существующих данных в Spatiotemporal big data store можно воспользоваться стандартными коннекторами GeoEvent, например, коннектором обеспечивающим чтение новых файлов формата csv из папки.
Для более детального ознакомления с Spatiotemporal big data store можно ознакомиться с учебными материалами, в которых подробно освещены детали по инсталляции и настройке, а также поэкспериментировать с хранилищем, используя учебные данные. Учебные материалы доступны по ссылке