<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'> <html class="client-nojs" dir="ltr" lang="en"> <head> <meta charset="UTF-8" /> <title>Модули/ÐÑ€Ñ…Ð¸Ð²Ð°Ñ†Ð¸Ñ Ð½Ð° БД - OpenSCADAWiki</title> <meta content="MediaWiki 1.26.4" name="generator" /> <link href="https://www.gnu.org/copyleft/fdl.html" rel="copyright" /> <link href="../../en/files/doc.css" rel="stylesheet" /></head> <body><div class="floatright"><a href="../index.html"><img alt="OpenSCADA" src="../../en/files/index.png" /></a></div><div id="mw_header"> <div class="mw-indicators"> </div> <h1 id="firstHeading" lang="ru">Модули/ÐÑ€Ñ…Ð¸Ð²Ð°Ñ†Ð¸Ñ Ð½Ð° БД</h1> </div><div class="mw-content-ltr" dir="ltr" id="mw-content-text" lang="ru"><div class="mw-pt-translate-header noprint" dir="ltr" lang="en">This page is a <span class="plainlinks"><a class="external text" href="http://oscada.org/wiki/index.php?title=Special:Translate&group=page-Modules%2FDBArch&action=page&filter=&language=ru" rel="nofollow noreferrer noopener" target="_blank">translated version</a></span> of the page <a class="external" href="http://oscada.org/wiki/Modules/DBArch" title="Modules/DBArch">Modules/DBArch</a> and the translation is 100% complete.</div><hr /><div class="mw-pt-languages" dir="ltr" lang="en"><div class="mw-pt-languages-list autonym"><a class="mw-pt-languages-ui mw-pt-progress mw-pt-progress--complete" href="../../en/Modules/DBArch.html" title="Modules/DBArch (100% translated)">English</a> • ‎<span class="mw-pt-languages-selected mw-pt-progress mw-pt-progress--complete">mRussian</span> • ‎<a class="mw-pt-progress mw-pt-progress--complete" href="../../uk/Modules/DBArch.html" title="Модулі/ÐÑ€Ñ…Ñ–Ð²Ð°Ñ†Ñ–Ñ Ð½Ð° БД (100% translated)">УкраїнÑька</a></div></div> <table class="wikitable"> <tr> <th> Модуль </th> <th> Ð˜Ð¼Ñ </th> <th> ВерÑÐ¸Ñ </th> <th> Ð›Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ </th> <th> ИÑточник </th> <th> Языки </th> <th> Платформы </th> <th> Тип </th> <th> Ðвтор </th> <th> ОпиÑание </th></tr> <tr> <td> <a href="../Modules/DBArch.html" title="Special:MyLanguage/Modules/DBArch">DBArch</a> </td> <td> Ðрхиватор на БД </td> <td> 3.1 </td> <td> GPL2 </td> <td> arh_DBArch.so </td> <td> en,uk,ru,de </td> <td> x86,x86_64,ARM </td> <td> Ðрхив </td> <td> Роман Савоченко </td> <td> Модуль архиватора. ПредоÑтавлÑет функции Ð°Ñ€Ñ…Ð¸Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñообщений и значений на БД. <ul><li> <b>ÐžÐ±Ñ‰Ð°Ñ Ñ‚Ñ€ÑƒÐ´Ð¾Ñ‘Ð¼ÐºÐ¾ÑÑ‚ÑŒ:</b> > 5 <span title="человеко-дней, 1ЧД — 10 чаÑов">ЧД<sup style="color: blue">[!]</sup></span></li> <li> <b>СпонÑировано, имплементации групповых таблиц на 3.5 <span title="человеко-дней, 1ЧД — 10 чаÑов">ЧД<sup style="color: blue">[!]</sup></span>:</b> УÑÑ‚ÑŒÑнцев Михаил</li></ul> </td></tr></table> <p>Модуль предназначен Ð´Ð»Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñообщений и значений OpenSCADA на одну из баз данных, поддерживаемых OpenSCADA. </p><p>Ð›ÑŽÐ±Ð°Ñ SCADA ÑиÑтема предоÑтавлÑет возможноÑÑ‚ÑŒ Ð°Ñ€Ñ…Ð¸Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñобранных данных, Ñ‚.е. формирование иÑтории Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (динамики) процеÑÑов. Ðрхивы уÑловно можно разделить на два типа: архивы Ñообщений и архивы значений. </p><p>ОÑобенноÑтью архивов Ñообщений ÑвлÑетÑÑ Ñ‚Ð¾, что архивируютÑÑ Ñ‚Ð°Ðº называемые ÑобытиÑ. Характерным признаком ÑÐ¾Ð±Ñ‹Ñ‚Ð¸Ñ ÑвлÑетÑÑ ÐµÐ³Ð¾ Ð²Ñ€ÐµÐ¼Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ. Ðрхивы Ñообщений обычно иÑпользуютÑÑ Ð´Ð»Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñообщений программы, Ñ‚.е. ведение логов и протоколов. Ð’ завиÑимоÑти от иÑточника, ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ клаÑÑифицироватьÑÑ Ð¿Ð¾ различным критериÑм. Ðапример, Ñто могут быть: протоколы аварийных Ñитуаций, протоколы дейÑтвий операторов, протоколы Ñбоев ÑвÑзи и др. </p><p>ОÑобенноÑтью архивов значений ÑвлÑетÑÑ Ð¸Ñ… периодичноÑÑ‚ÑŒ, определÑÐµÐ¼Ð°Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ¶ÑƒÑ‚ÐºÐ¾Ð¼ времени между Ð´Ð²ÑƒÐ¼Ñ Ñмежными значениÑми. Ðрхивы значений применÑÑŽÑ‚ÑÑ Ð´Ð»Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ñтории непрерывных процеÑÑов. ПоÑкольку процеÑÑ Ð½ÐµÐ¿Ñ€ÐµÑ€Ñ‹Ð²Ð½Ñ‹Ð¹ то и архивировать его можно только путём Ð²Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð½ÑÑ‚Ð¸Ñ ÐºÐ²Ð°Ð½Ñ‚Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð¸ опроÑа, поÑкольку иначе мы получаем архивы беÑконечных размеров ввиду непрерывноÑти Ñамой природы процеÑÑа. Кроме Ñтого, практичеÑки мы можем получать Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñ Ð¿ÐµÑ€Ð¸Ð¾Ð´Ð¾Ð¼ ограниченным Ñамими иÑточниками данных. Ðапример, довольно качеÑтвенные иÑточники данных в промышленноÑти редко позволÑÑŽÑ‚ получать данные Ñ Ñ‡Ð°Ñтотой более 1кГц. И Ñто без учёта Ñамих датчиков, имеющих ещё менее качеÑтвенные характериÑтики. </p><p>Ð”Ð»Ñ Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð¾Ð² в OpenSCADA предуÑмотрена <a href="../Program_manual.html#Arch" title="Special:MyLanguage/Documents/Program manual">подÑиÑтема "Ðрхивы-ИÑториÑ"</a>. Ð”Ð°Ð½Ð½Ð°Ñ Ð¿Ð¾Ð´ÑиÑтема, в ÑоответÑтвии Ñ Ñ‚Ð¸Ð¿Ð°Ð¼Ð¸ архивов, ÑоÑтоит из двух чаÑтей: архив Ñообщений и архивы значений. ПодÑиÑтема, в целом, ÑвлÑетÑÑ Ð¼Ð¾Ð´ÑƒÐ»ÑŒÐ½Ð¾Ð¹, что позволÑет Ñоздавать архивы, оÑнованные на различной природе и ÑпоÑобах Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…. Данный модуль предоÑтавлÑет механизм Ð°Ñ€Ñ…Ð¸Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð° файловую ÑиÑтему как Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÐ° Ñообщений, так и Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÐ° значений. </p> <div class="toc" id="toc"><div id="toctitle"><h2>Contents</h2></div> <ul> <li class="toclevel-1 tocsection-1"><a href="#.D0.90.D1.80.D1.85.D0.B8.D0.B2.D0.B0.D1.82.D0.BE.D1.80_.D1.81.D0.BE.D0.BE.D0.B1.D1.89.D0.B5.D0.BD.D0.B8.D0.B9"><span class="tocnumber">1</span> <span class="toctext">Ðрхиватор Ñообщений</span></a></li> <li class="toclevel-1 tocsection-2"><a href="#.D0.90.D1.80.D1.85.D0.B8.D0.B2.D0.B0.D1.82.D0.BE.D1.80_.D0.B7.D0.BD.D0.B0.D1.87.D0.B5.D0.BD.D0.B8.D0.B9"><span class="tocnumber">2</span> <span class="toctext">Ðрхиватор значений</span></a></li> <li class="toclevel-1 tocsection-3"><a href="#.D0.98.D0.BD.D1.84.D0.BE.D1.80.D0.BC.D0.B0.D1.86.D0.B8.D0.BE.D0.BD.D0.BD.D0.B0.D1.8F_.D1.82.D0.B0.D0.B1.D0.BB.D0.B8.D1.86.D0.B0_.D0.B0.D1.80.D1.85.D0.B8.D0.B2.D0.BD.D1.8B.D1.85_.D1.82.D0.B0.D0.B1.D0.BB.D0.B8.D1.86"><span class="tocnumber">3</span> <span class="toctext">Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° архивных таблиц</span></a></li> <li class="toclevel-1 tocsection-4"><a href="#.D0.AD.D1.84.D1.84.D0.B5.D0.BA.D1.82.D0.B8.D0.B2.D0.BD.D0.BE.D1.81.D1.82.D1.8C"><span class="tocnumber">4</span> <span class="toctext"><span>ÐффективноÑÑ‚ÑŒ</span></span></a></li> <li class="toclevel-1 tocsection-5"><a href="#.D0.A1.D1.81.D1.8B.D0.BB.D0.BA.D0.B8"><span class="tocnumber">5</span> <span class="toctext">СÑылки</span></a></li> </ul> </div> <h2><span class="mw-headline" id=".D0.90.D1.80.D1.85.D0.B8.D0.B2.D0.B0.D1.82.D0.BE.D1.80_.D1.81.D0.BE.D0.BE.D0.B1.D1.89.D0.B5.D0.BD.D0.B8.D0.B9"><span class="mw-headline-number">1</span> Ðрхиватор Ñообщений</span></h2> <p>Ðрхивы Ñообщений формируютÑÑ Ð°Ñ€Ñ…Ð¸Ð²Ð°Ñ‚Ð¾Ñ€Ð°Ð¼Ð¸, которых может быть множеÑтво и Ñ Ð¸Ð½Ð´Ð¸Ð²Ð¸Ð´ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ð¼Ð¸ наÑтройками, что позволÑет разделÑÑ‚ÑŒ архивирование различных клаÑÑов Ñообщений. </p><p>Ðрхиватор Ñообщений Ñтого Ð¼Ð¾Ð´ÑƒÐ»Ñ Ñ…Ñ€Ð°Ð½Ð¸Ñ‚ данные в таблице БД, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð½Ð°Ð·Ñ‹Ð²Ð°ÐµÑ‚ÑÑ "DBAMsg_{ArchID}", где: </p> <ul><li> <i>ArchID</i> — идентификатор архиватора Ñообщений.</li></ul> <p>Модулем предоÑтавлÑÑŽÑ‚ÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ðµ параметры наÑтройки процеÑÑа архивированиÑ, риÑунок 1. </p> <div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:848px;"><a class="image" href="http://oscada.org/wiki/File:DBArch_mess_a_prm_ru.png"><img class="thumbimage" height="710" src="../files/DBArch_mess_a_prm_ru.png" width="846" /></a> <div class="thumbcaption">РиÑ.1. Дополнительные параметры наÑтройки процеÑÑа Ð°Ñ€Ñ…Ð¸Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñообщений.</div></div></div></div> <p>Ð’ чиÑло дополнительных параметров входÑÑ‚: </p> <ul><li> <i>Размер архива, дней</i> — определÑет размер архива по времени. ПоÑле Ð¿Ñ€ÐµÐ²Ñ‹ÑˆÐµÐ½Ð¸Ñ Ð»Ð¸Ð¼Ð¸Ñ‚Ð° Ñтарые запиÑи начнут удалÑÑ‚ÑŒÑÑ! УÑтановить в 0 Ð´Ð»Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ лимита и некоторого Ð¿Ð¾Ð²Ñ‹ÑˆÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ñти.</li> <li> <i>Формировать Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº Ñтрока</i> — ÑохранÑÑ‚ÑŒ Ð²Ñ€ÐµÐ¼Ñ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð² читабельном виде. Только Ð´Ð»Ñ Ð‘Ð” поддерживающих такое поÑредÑтвом ÑпецифичеÑких типов данных вроде "datetime" в MySQL. <a class="image" href="http://oscada.org/wiki/File:At.png"><img alt="At.png" height="22" src="../../en/files/At.png" width="22" /></a> Ð”Ð°Ð½Ð½Ð°Ñ Ð¾Ð¿Ñ†Ð¸Ñ Ð½ÐµÑовмеÑтима, Ñ‚.е. при её изменении Ð’Ñ‹ потерÑете ÑущеÑтвующие архивы.</li> <li> <i>Уникальные и недублирующие ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ за временем и категорией</i> — в первичном ключе иÑпользуютÑÑ Ð¿Ð¾Ð»Ñ <b>MIN</b>, <b>TM</b>, <b>TMU</b> и <b>CATEG</b>; иначе поле ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡Ð°ÐµÑ‚ÑÑ Ðº первичному ключу и его ограничено 255 Ñимволами.</li></ul> <p>Таблица БД архиватора Ñообщений имеет Ñтруктуру <b>{<u>MIN</u>, <u>TM</u>, <u>TMU</u>, <u>CATEG</u>, MESS, LEV}</b>, где: </p> <ul><li> <i>MIN</i> — UTC времÑ, в минутах, иÑпользуетÑÑ Ð´Ð»Ñ ÑƒÑÐºÐ¾Ñ€ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ чтении минутами.</li> <li> <i>TM</i> — UTC Ð²Ñ€ÐµÐ¼Ñ ÑообщениÑ, Ñекунды от Ñпохи (01.01.1970). Тут может иÑпользоватьÑÑ Ñпециализированный тип Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° "Формировать Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº Ñтрока", еÑли он поддерживаетÑÑ Ð‘Ð”.</li> <li> <i>TMU</i> — микроÑекунды времени.</li> <li> <i>CATEG</i> — ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ ÑообщениÑ.</li> <li> <i>MESS</i> — текÑÑ‚ ÑообщениÑ.</li> <li> <i>LEV</i> — уровень ÑообщениÑ.</li></ul> <h2><span class="mw-headline" id=".D0.90.D1.80.D1.85.D0.B8.D0.B2.D0.B0.D1.82.D0.BE.D1.80_.D0.B7.D0.BD.D0.B0.D1.87.D0.B5.D0.BD.D0.B8.D0.B9"><span class="mw-headline-number">2</span> Ðрхиватор значений</span></h2> <p>Ðрхивы значений формируютÑÑ Ð°Ñ€Ñ…Ð¸Ð²Ð°Ñ‚Ð¾Ñ€Ð°Ð¼Ð¸ значений индивидуально Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ зарегиÑтрированного архива. Ðрхиваторов может быть множеÑтво и Ñ Ð¸Ð½Ð´Ð¸Ð²Ð¸Ð´ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ð¼Ð¸ наÑтройками, которые позволÑющими разделить архивы по различным параметрам, например, по точноÑти и глубине. Ðрхивы параметров одного архиватора могут группироватьÑÑ Ð² группы, одна таблица, Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ð¼ ограничением количеÑтва параметров в группе. Группирование позволÑет значительно увеличить производительноÑÑ‚ÑŒ архивации за Ñчёт отправки в БД одного запроÑа Ñо значениÑми параметров в группе. </p><p>Ðрхив значений ÑвлÑетÑÑ Ð½ÐµÐ·Ð°Ð²Ð¸Ñимым компонентом, который включает буфер, обрабатываемый архиваторами. ОÑновным параметром архива Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ ÑвлÑетÑÑ Ð¸Ñточник данных. Ð’ роли иÑточника данных могут выÑтупать атрибуты параметров подÑиÑтемы "Сбор данных", а также другие внешние иÑточники данных (паÑÑивный режим). Другими иÑточниками данных могут быть: Ñетевые архиваторы удалённых OpenSCADA Ñтанций, Ñреда Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ OpenSCADA и др. Ðе менее важными параметрами архива ÑвлÑÑŽÑ‚ÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ‹ его буфера. От параметров буфера завиÑит возможноÑÑ‚ÑŒ работы архиваторов. <a class="image" href="http://oscada.org/wiki/File:At.png"><img alt="At.png" height="22" src="../../en/files/At.png" width="22" /></a> Так, периодичноÑÑ‚ÑŒ значений в буфере должна быть не больше периодичноÑти Ñамого быÑтрого архиватора, а размер буфера не менее двойного размера Ð´Ð»Ñ Ñамого медленного архиватора. Ð’ противном Ñлучае возможны потери данных. </p><p>ÐžÐ±Ñ‰Ð°Ñ Ñхема Ð°Ñ€Ñ…Ð¸Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ наглÑдно изображена на риÑунке 2. </p> <div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:621px;"><a class="image" href="http://oscada.org/wiki/File:Arch_val_sh_ru.png"><img class="thumbimage" height="391" src="../files/Arch_val_sh_ru.png" width="619" /></a> <div class="thumbcaption">РиÑ.2. ÐžÐ±Ñ‰Ð°Ñ Ñхема процеÑÑа Ð°Ñ€Ñ…Ð¸Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹.</div></div></div></div> <p>Ðрхиватор значений Ñтого Ð¼Ð¾Ð´ÑƒÐ»Ñ Ñ…Ñ€Ð°Ð½Ð¸Ñ‚ данные в таблице БД, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð½Ð°Ð·Ñ‹Ð²Ð°ÐµÑ‚ÑÑ "DBAVl_{ArchivatorID}_{ArchiveID}", Ð´Ð»Ñ Ð¾Ð´Ð¸Ð½Ð¾Ñ‡Ð½Ð¾Ð³Ð¾ режима, и "DBAVl_{ArchivatorID}_<GRP>{N}", Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð¾Ð²Ð¾Ð³Ð¾ режима, где: </p> <ul><li> <i>ArchivatorID</i> — идентификатор архиватора значений;</li> <li> <i>ArchiveID</i> — идентификатор архива значений;</li> <li> <i>N</i> — номер группы, опущен Ð´Ð»Ñ Ð¿ÐµÑ€Ð²Ð¾Ð¹.</li></ul> <p>Модулем предоÑтавлÑÑŽÑ‚ÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ðµ параметры наÑтройки процеÑÑа архивированиÑ, риÑунок 3. </p> <div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:719px;"><a class="image" href="http://oscada.org/wiki/File:DBArch_val_a_prm_ru.png"><img class="thumbimage" height="669" src="../files/DBArch_val_a_prm_ru.png" width="717" /></a> <div class="thumbcaption">РиÑ.3. Дополнительные параметры наÑтройки процеÑÑа Ð°Ñ€Ñ…Ð¸Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹.</div></div></div></div> <p>Ð’ чиÑло дополнительных параметров входÑÑ‚: </p> <ul><li> <i>Размер архива, дней</i> — определÑет размер архива по времени. ПоÑле Ð¿Ñ€ÐµÐ²Ñ‹ÑˆÐµÐ½Ð¸Ñ Ð»Ð¸Ð¼Ð¸Ñ‚Ð° Ñтарые запиÑи начнут удалÑÑ‚ÑŒÑÑ! УÑтановить в 0 Ð´Ð»Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ лимита и некоторого Ð¿Ð¾Ð²Ñ‹ÑˆÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ñти.</li> <li> <i>Формировать Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº Ñтрока</i> — ÑохранÑÑ‚ÑŒ Ð²Ñ€ÐµÐ¼Ñ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð² читабельном виде. Только Ð´Ð»Ñ Ð‘Ð” поддерживающих такое поÑредÑтвом ÑпецифичеÑких типов данных вроде "datetime" в MySQL. <a class="image" href="http://oscada.org/wiki/File:At.png"><img alt="At.png" height="22" src="../../en/files/At.png" width="22" /></a> Ð”Ð°Ð½Ð½Ð°Ñ Ð¾Ð¿Ñ†Ð¸Ñ Ð½ÐµÑовмеÑтима, Ñ‚.е. при её изменении Ð’Ñ‹ потерÑете ÑущеÑтвующие архивы.</li> <li> <i>Ограничение группировки параметров</i> — ненулевое значение включает групповое архивирование и определÑет ограничение на количеÑтво параметров в группе/таблице.</li></ul> <p>Таблица БД архиватора значений имеет Ñтруктуру <b>{<u>MARK</u>, <u>TM</u>, VAL}</b>, Ð´Ð»Ñ Ð¾Ð´Ð¸Ð½Ð¾Ñ‡Ð½Ð¾Ð³Ð¾ режима, и <b>{<u>MARK</u>, <u>TM</u>, {PRM1}, {PRM2}, {PRMN}}</b>, Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð¾Ð²Ð¾Ð³Ð¾, где: </p> <ul><li> <i>MARK</i> — метка быÑтрого доÑтупа/Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð°, {TM}/(10*{period}).</li> <li> <i>TM</i> — UTC Ð²Ñ€ÐµÐ¼Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ, Ñекунды от Ñпохи (01.01.1970). Тут может иÑпользоватьÑÑ Ñпециализированный тип Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° "Формировать Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº Ñтрока", еÑли он поддерживаетÑÑ Ð‘Ð”.</li> <li> <i>VAL</i> — значение параметра в одиночном режиме, тип Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñет тип данной колонки (Целое, ВещеÑтвенное, Строка).</li> <li> <i>PRM1...PRMN</i> — значение параметра Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ в имени колонки, Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð¾Ð²Ð¾Ð³Ð¾ режима, тип Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñет тип данной колонки (Целое, ВещеÑтвенное, Строка).</li></ul> <h2><span class="mw-headline" id=".D0.98.D0.BD.D1.84.D0.BE.D1.80.D0.BC.D0.B0.D1.86.D0.B8.D0.BE.D0.BD.D0.BD.D0.B0.D1.8F_.D1.82.D0.B0.D0.B1.D0.BB.D0.B8.D1.86.D0.B0_.D0.B0.D1.80.D1.85.D0.B8.D0.B2.D0.BD.D1.8B.D1.85_.D1.82.D0.B0.D0.B1.D0.BB.D0.B8.D1.86"><span class="mw-headline-number">3</span> Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° архивных таблиц</span></h2> <p>Ð”Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð½Ð°Ñ‡Ð°Ð»Ð°, конца и иной Ñлужебной информации архивов в архивных таблицах, ÑоздаётÑÑ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ данного Ð¼Ð¾Ð´ÑƒÐ»Ñ "DBArch". Ð”Ð°Ð½Ð½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° имеет Ñтруктуру <b>{<u>TBL</u>, BEGIN, END, PRM1, PRM2, PRM3}</b>, где: </p> <ul><li> <i>TBL</i> — Ð¸Ð¼Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ архива.</li> <li> <i>BEGIN</i> — начало данных в архиве. Секунды Ð´Ð»Ñ Ñообщений и микроÑекунды Ð´Ð»Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ от Ñпохи UNIX (01.01.1970).</li> <li> <i>END</i> — конец данных в архиве. Секунды Ð´Ð»Ñ Ñообщений и микроÑекунды Ð´Ð»Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ от Ñпохи UNIX (01.01.1970).</li> <li> <i>PRM1</i> — дополнительный параметр 1: периодичноÑÑ‚ÑŒ значений, в микроÑекундах.</li> <li> <i>PRM2</i> — дополнительный параметр 2: тип значений параметра, в одиночном режиме, или перечень параметров в группе <b>{Type}:{ArchiveId}</b>, Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð¾Ð²Ð¾Ð³Ð¾ режима.</li> <li> <i>PRM3</i> — дополнительный параметр 3.</li></ul> <p>СоглаÑно информации в указанной таблице, Ð´Ð»Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð°Ñ‚Ð¾Ñ€Ð¾Ð² значений поддерживаетÑÑ Ð²Ð¾ÑÑтановление и Ñоздание объектов архива. </p> <h2><span class="mw-headline" id=".D0.AD.D1.84.D1.84.D0.B5.D0.BA.D1.82.D0.B8.D0.B2.D0.BD.D0.BE.D1.81.D1.82.D1.8C"><span class="mw-headline-number">4</span> <span id="Efficiency" title="#Efficiency">ÐффективноÑÑ‚ÑŒ</span></span></h2> <p>При проектировании и реализации данного Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð¾Ñобых механизмов Ð¿Ð¾Ð²Ñ‹ÑˆÐµÐ½Ð¸Ñ ÑффективноÑти процеÑÑа Ð°Ñ€Ñ…Ð¸Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ðµ закладывалоÑÑŒ в виду Ð½Ð°Ð»Ð¸Ñ‡Ð¸Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð¸Ð²Ð½Ñ‹Ñ… ограничений Ñамих баз данных и интерфейÑов доÑтупа к ним. Следовательно, ÑффективноÑÑ‚ÑŒ архивации на БД в оÑновном ÑвÑзана Ñ Ñамой БД и интерфейÑом доÑтупа к ней. Из наиболее Ñффективных интерфейÑов и подходов по повышению производительноÑти нужно отметить Ñледующие: </p> <ul><li> Чтение из БД неÑкольких запиÑей не отдельными/конкретными командами SELECT, а обобщающими SELECT запроÑами, что Ð´Ð»Ñ Ð²Ñех БД минимум на порÑдок быÑтрее. Ð”Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñтой оÑобенноÑти, Ñлой доÑтупа к БД в OpenSCADA, в лице запроÑа "dataSeek()", был раÑширен на предмет поддержки предзагрузки вÑех запиÑей ответа на Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð² <i>full</i>. Данным модулем Ñта оÑобенноÑÑ‚ÑŒ также теперь иÑпользуетÑÑ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÑ Ð´Ð°Ð½Ð½Ñ‹Ðµ получать чаÑто быÑтрее чем они потом обрабатываютÑÑ, Ñ…Ð¾Ñ‚Ñ Ð¸ уÑÑ‚ÑƒÐ¿Ð°Ñ <a href="../Modules/FSArch.html" title="Special:MyLanguage/Modules/FSArch">архивации на файловую ÑиÑтему</a>.</li> <li> ЗапиÑÑŒ в БД отдельной колонки также значительно быÑтрее, чем Ð¾Ñ‚Ð´ÐµÐ»ÑŒÐ½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ таблицы. Данным модулем Ñта оÑобенноÑÑ‚ÑŒ иÑпользуетÑÑ Ð² чаÑти архивации значений и в режиме группировки, Ñ‚.е. Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð´ÐµÐ»ÑŒÐ½Ñ‹Ñ… Ñигналов пишутÑÑ Ð² одну таблицу как Ð¾Ñ‚Ð´ÐµÐ»ÑŒÐ½Ð°Ñ ÐºÐ¾Ð»Ð¾Ð½ÐºÐ°.</li></ul> <p>Результаты измерений производительноÑти архивации Ñведены в таблице ниже: </p> <table class="wikitable"> <tr> <th> ТеÑÑ‚ / Окружение и БД </th> <th> Intel Core3 1.3GHz, Локальный PostgreSQL 9.3, SSD </th> <th> AMD A8 3.5GHz, Локальный PostgreSQL 9.3, HDD </th></tr> <tr> <td> Values archiving, 60 records, 1 signal (seconds) </td> <td> 53...63 </td> <td> 13...14 </td></tr> <tr> <td> Values archiving, 60 records, 10 signal (seconds) </td> <td> 65...67 </td> <td> 16...19 </td></tr> <tr> <td> Values archiving, 60 records, 100 signal (seconds) </td> <td> 154...163 </td> <td> 52...60 </td></tr> <tr> <td> <i>Result:</i> average time of the writing 60 values of the signal (millisecond),<br /> <p>estimated maximum number of the archiving signals in the 1 second periodicity </p> </td> <td> 1, 60000 </td> <td> 0.4, 150000 </td></tr></table> <h2><span class="mw-headline" id=".D0.A1.D1.81.D1.8B.D0.BB.D0.BA.D0.B8"><span class="mw-headline-number">5</span> СÑылки</span></h2> <ul><li> <a class="external" href="http://oscada.org/wiki/File:Arch_val_sh_ru.odg" title="File:Arch val sh ru.odg">Диаграмма: ÐžÐ±Ñ‰Ð°Ñ Ñхема процеÑÑа Ð°Ñ€Ñ…Ð¸Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹.</a></li></ul> </div><table style="border-top: dotted 2px #999999; margin-top: 20pt; color: gray;" width="100%"><tr><td style="text-align: left;" width="40%"><a href="http://oscada.org/wiki/Modules/DBArch/ru">Modules/DBArch/ru</a> - <a href="http://oscada.org/en/main/about-the-project/licenses/">GFDL</a></td><td style="text-align: center;">April 2025</td><td style="text-align: right;" width="40%">OpenSCADA 1+r3018</td></tr></table></body> </html>