CloudHistorian - распределенная система хранения

технологических потоковых данных

Автоматизация технологических процессов и производств требует обработки больших объемов данных о состоянии и параметрах работы объектов и оборудования. Количество измеряемых и вычисляемых параметров достигает, в некоторых случаях, миллионов в секунду.

Источниками данных выступает всевозможная контрольно-измерительная аппаратура, подсистемы

и контроллеры. Используются различные протоколы и стандарты связи. Объёмы накопленных данных могут измеряться петабайтами.

Для решения этих задач предназначен CloudHistorian.

Это распределённая, отказоустойчивая система, позволяющая строить кластеры, состоящие из десятков и сотен серверов в отказоустойчивых и катастрофоустойчивых конфигурациях.

CloudHistorian

может применяться как

OEM-решение, встраиваемое

в другие системы и комплексы.

Для приема, хранения и обработки такого количества и типа данных применяются специализированные СУБД, ориентированные на работу с так называемыми «временными рядами» (time series data). 

Взяв в качестве базового программного обеспечения такие продукты, как Apache TomCat, Apache Cassandra, PostrgeSQL, мы разработали набор инструментов (CloudHistorian) для создания высокопроизводительных, отказоустойчивых, распределенных и масштабируемых систем сбора, обработки и хранения различных видов измерений промышленных объектов и систем.

CloudHistorian сочетает в себе сопоставимую с европейскими и американскими аналогичными системами производительность и надежность, но при этом обладает свойством кроссплатформенности (может работать под управлением операционных систем Windows, UNIX/Linux), базируется на открытом исходном коде и не содержит лицензируемых программных продуктов других производителей.

 

Исторически CloudHistorian разрабатывался и применяется для задач в области электроэнергетики, однако нет никаких ограничений на его применение в любых других технических системах и комплексах, где требуется сбор, накопление и обработка временных рядов.

 

Название CloudHistorian происходит от одной из базовых особенностей продукта – возможность создавать распределенные базы данных, где данные размещаются на нескольких (географически разнесенных) узлах системы (облако). Сами данные, поступающие от измерительных или других информационных систем, хранятся

в базе данных того узла CloudHistorian, на котором был запущен интерфейс приема данных.

 

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

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

 

Кроме того, пользователь узла может настроить процедуру получения данных от других узлов циклически, по факту поступления данных или по настраиваемым событиям.

Технические особенности реализации

Открытая архитектура

на базе технологии Java

1.

Отсутствие проприетарных западных продуктов

в составе решения

2.

Поддержка широкого спектра операционных систем

(включая Linux и другие open-source ОС)

3.

Использование веб-технологий

для визуализации

4.

Использование технологии больших распределенных массивов данных

для хранения больших объемов данных (Big Data)

5.

Совмещение в одной системе базы данных реального времени

и исторического хранилища

6.

Высокая производительность (частота записи 50-200 измерений в секунду по каждому тегу), быстрый поиск по историческим данным

7.

Отказоустойчивость

(кластер от 2 до 65535 серверов)

8.

Масштабируемость

(распределения данных по любому количеству серверов в кластере)

9.

Низкие требования к вычислительным ресурсам - возможность реализации на маломощных промышленных контроллерах (до 20 000 записей в секунду на одном ядре процессора Intel Core i5 2.33 ГГц)

10.

Соответствие архитектуре SaaS

(Software As A Service)

11.

Решения для IIoT (Industrial Internet of Things)

и Fog Computing (туманные вычисления)

12.

В системе реализованы:

Адаптеры к источникам данных

– MQTT

– Клиент МЭК 60870-5-104

– Клиент OPC

– Modbus RTU Master

– Клиент C37.118-2011/2008 (для сбора с регистраторов СМПР)

– Прием в формате C37.111-1991 (COMTRADE)

– Прием в формате CSV (файлы)

– RTdbcon

Собственные протоколы распределённого взаимодействия между узлами системы (CH-to-HC)
и другими системами автоматизации

– Сервер C37.118-2011

– Решение на основе протокола UDP (unicast, multicast) – обмен оперативными данным с низкими задержками

– Веб-сервисы для передачи архивов по запросу

– REST API / JSON

– Thrift API

Функции по обработке данных

– Прием и сохранение данных в хранилище
– Расчет и сохранение ROLL-UP (срезы данных, интегрированные за период времени)
– Очистка устаревших данных
– Дорасчеты производных параметров
– Расчет алармов (сигн. ситуаций)
– Мониторинг собственной работоспособности и выдача диагностической информации
– Предоставление программного интерфейса (API) для доступа к данным (чтение и запись) сторонних приложений

Производительность (усредненная)

Ноутбук с харакетристиками:

OS Microsoft Windows, Intel Core 5i 4 cores, 2.67 GHz, RAM 16 GB,

HDD WDC SATA 500 GB 7200 RPM 16 MB cache

Запись: 200 000 записей в секунду

(200 тэгов по 1000 записей в секунду для каждого) или

80 000 записей в секунду (для 80 000 тэгов - по одной

записи в секунду для каждого).

Чтение серий данных: 

250 000 – 500 000 измерений в секунду.


Чтение срезов (выровненных по метке времени):

200 измерений в 20 мс.

Чтение последних значений: 50 000 измерений в сек. 

Более подробную техническую информацию можно получить здесь

Продукт внесен в государственный реестр программ для ЭВМ.

Свидетельство №2016613661

Система включена в Единый реестр российских программ для электронных вычислительных машин и баз данных по Приказу Минкомсвязи России от 08.11.2016 №538, Приложение 2, пункт №15, реестровый № 2199.