CloudHistorian - распределенная система хранения
технологических потоковых данных
Автоматизация технологических процессов и производств требует обработки больших объемов данных о состоянии и параметрах работы объектов и оборудования. Количество измеряемых и вычисляемых параметров достигает, в некоторых случаях, миллионов в секунду.
Источниками данных выступает всевозможная контрольно-измерительная аппаратура, подсистемы
и контроллеры. Используются различные протоколы и стандарты связи. Объёмы накопленных данных могут измеряться петабайтами.
Для решения этих задач предназначен CloudHistorian.
Это распределённая, отказоустойчивая система, позволяющая строить кластеры, состоящие из десятков и сотен серверов в отказоустойчивых и катастрофоустойчивых конфигурациях.
CloudHistorian может применяться как OEM-решение, встраиваемое в другие системы и комплексы.
Для приема, хранения и обработки такого количества и типа данных применяются специализированные СУБД, ориентированные на работу с так называемыми «временными рядами» (time series data).
Взяв в качестве базового программного обеспечения такие продукты, как Apache TomCat, Apache Cassandra, PostrgeSQL, мы разработали набор инструментов (CloudHistorian) для создания высокопроизводительных, отказоустойчивых, распределенных и масштабируемых систем сбора, обработки и хранения различных видов измерений промышленных объектов и систем.
CloudHistorian сочетает в себе сопоставимую с европейскими и американскими аналогичными системами производительность и надежность, но при этом обладает свойством кроссплатформенности (может работать под управлением операционных систем Windows, UNIX/Linux), базируется на открытом исходном коде и не содержит лицензируемых программных продуктов других производителей.
Исторически CloudHistorian разрабатывался и применяется для задач в области электроэнергетики, однако нет никаких ограничений на его применение в любых других технических системах и комплексах, где требуется сбор, накопление и обработка временных рядов.
Название CloudHistorian происходит от одной из базовых особенностей продукта – возможность создавать распределенные базы данных, где данные размещаются на нескольких (географически разнесенных) узлах системы (облако). Сами данные, поступающие от измерительных или других информационных систем, хранятся
в базе данных того узла CloudHistorian, на котором был запущен интерфейс приема данных.
Однако другие узлы, благодаря специальной подсистеме передачи данных, обмениваются информацией
о топологии распределенной базы данных и составе информации, хранимой на каждом из узлов.
В случае, когда пользователю одного из узлов потребуется информация, физически хранимая на другом, подсистема передачи данных автоматически доставит их до базы данных узла пользователя, где в дальнейшем они будут храниться уже параллельно с основным источником в соответствие с настроенной политикой хранения.
Кроме того, пользователь узла может настроить процедуру получения данных от других узлов циклически,
по факту поступления данных или по настраиваемым событиям.