<< Click to Display Table of Contents >> Navigation: Проект > Архивы > Архивирование данных > Подсистемы архивации |
Поступающие архивные данные, поступают в подсистему архивации, каждая из которых имеет собственный алгоритм хранения данных.
Все архивные значения полученные от устройств сначала попадают в Архив в памяти, который находится в оперативной памяти компьютера, а затем спустя некоторое время данные сбрасывают в постоянное хранилище - файловый или базу данных. Такой подход позволяет сбрасывать набор архивных значений, что уменьшает обращение к диску и ускоряет работы системы. Также архив в памяти включается, если нет возможности записать архив в переменной в постоянное хранилище - например, если нет связи с базой данных или переменная была добавлена на тренд в режиме исполнения.
Как либо настраивать архив в памяти, как правило, не требуется.
Файловый архив - базовый функционал архивирования, который используется по умолчанию. Данные в этом случае хранятся в специальной папке в файле проекта. Папка проектов MasterSCADA повторяет структуру проекта - всю иерархию дерева объектов и дерева системы вашего проекта. В каждом объекте, создается папка _data, где и хранится архив переменных которые находятся в этом объекте. Файлы имеют название FNN_1.dat, FNN_2.dat и т.д., где NN - специальный системный индекс переменной, не зависящий от ее имени, а 1, 2 и т.д. - индексы архива. Файлы бинарные - внешним редактором его прочитать нельзя (но можно увидеть через вкладку Данные конкретной переменной), размер архивной записи составляет 38 байт. В файлы записываются значения переменной (точнее записывается значение, метка времени и признак качества), до тех пор пока размер файла не превысит 256 килобайт. После этого создается новый файл FNN_2.dat - куда и записываются новые данные, а индекс последнего записанного файла записывается в файл index_d.dat. Перед тем как создать новый файл MasterSCADA проверяет нет ли превышения срока или объема хранения - и если такое превышение есть, то сначала удаляется самый старый файл (с наименьшим индексом), и запись продолжается. Пользователя не должно удивлять, если для отдельных (обычно редкоизменяющихся) параметров данные хранятся дольше, чем задано (это хорошо видно при пролистывании тренда на время начало хранения - самые старые записи у разных переменных отличаются по времени). Такой подход позволяет разумно сочетать своевременное освобождение места и быстродействие архивной подсистемы, которая при очистке оперирует не отдельными значениями, а блоками информации. Для файлового архива такой блок – целый файл.
С целью страхования от переполнения дискового хранилища в целом может быть задан размер остающегося на диске свободного места, при приближении к которому начинается удаление наиболее старых записей.
Архивация в БД - экспорт в стороннюю базу данных (MS SQL, Oracle, Firebird, PostreSQL). Данный вариант архивации является опцией, но это дает ряд серьезных преимуществ:
Первое преимущество - СУБД, это внешняя служба изначально рассчитанная на работу с большим объемом данных. Она использует отдельно выделенные ресурсы компьютера, а также оптимизирована для работы с данными.
Второе преимущество - можно разнести проект и данные на разные диски. Например Windows, MasterSCADA и проект будут находится на SSD диске C, а данные - на HDD диске D.
Третье преимущество - использование СУБД в MasterSCADA позволяет использовать слои данных. Слой данных – это отдельно хранимый набор архивных значений того же самого параметра, отличающийся периодом записи, способом предварительной обработки перед записью и длительностью хранения (слои поддерживаются только при архивации в БД).
Основное назначение слоев – повышение быстродействия при извлечении данных для их отображения или обработки, а также более гибкой настройки длительности хранения.
Ускорение работы при использовании слоев возникает в случае, если необходимо просматривать тренды за большие интервалы времени (от месяца и выше), с большим количеством параметров. Представим себе ситуацию – переменная сохраняет архив каждые 10 секунд – 6 записей в минуту. За час будет это 360 записей, за день 8640, за месяц – 259 тысяч. Мы хотим просмотреть данные в тренде за месяц, при этом монитор имеется разрешение 1920х1080, т.е. на один пиксель монитора будет приходиться по 135 записей. Понятно, что нет возможности отобразить 135 записей в одной точке, поэтому записи будут прорежены. Однако, тренду будет необходимо загрузить все эти записи из архива и обработать. При использовании слоев, тренд сможет загрузить данные не из основного слоя, а из прореженного (минутного или часового) и сократить в десятки раз объемы загружаемых данных. Соответственно в разы ускорится и построение графика на тренде.
Гибкость хранения заключается в том, что можно настроить разный срок хранения каждой записи. Например, основной слой (непрореженный) – 30 дней, минутный – 90, часовой – 360. В итоге, даже спустя долгое время мы будем иметь в архиве данные, хоть и прореженные, не переполняя при этом жесткий диск компьютера.
Еще одно преимущество слоев – можно настроить алгоритм обработки данных за формируемый интервал. Например, можно выбрать обработка Интегральное среднее (в том числе можно выбрать чтобы слой формировался в ровное время – в начало часа), и затем использовать этот слой в редакторе отчетов. В итоге редактору отчетов не потребуется грузить большие объемы данных, обрабатывать их, а взять готовые значения из базы и вывести их в отчет, что также в разы ускоряет формирование отчета.
Кроме того, при просмотре тренда за большие временные интервалы, тренд автоматически выбирает предпочтительный слой, что существенно ускоряет построение графика. Это особенно актуально для сетевых проектов, когда приходится перегонять данные по сети.
Таблица сравнений возможностей каждой подсистемы архивирования.
Основные возможности подсистемы архивирования |
Архив в памяти |
Файловый архив |
Архив в БД SQL |
Неограниченный размер архива |
Нет |
Да |
Да |
Любой срок хранения данных |
Нет |
Да |
Да |
Хранение в архиве меток времени, присваиваемых значениям переменных при их создании |
Да |
Да |
Да |
Использование шаблонов для быстрой настройки параметров архивируемых переменных |
Да |
Да |
Да |
Запись значений переменных: по изменению/ периодическая/ всех значений |
Да |
Да |
Да |
Экспорт архива в форматы MS Access и SQL сервер |
Да |
Да |
Да |
Архив сообщений |
Нет |
Да |
Да |
Автоматическая чистка (прореживание) архива |
Да |
Да |
Да |
Послойное хранение данных |
Нет |
Нет |
Да |
Использование обработок для сглаживания, фильтрации, статистики, аналитики хранимых данных |
Нет |
Нет |
Да |
Ограничение предельного суммарного размера архива |
Да |
Нет |
Да |
Ограничение предельного размера архива для каждого объекта |
Нет |
Да |
Нет |