EnglishУкраїнськаmRussian
Login/New
Topic with no new replies

Архивирование значений на БД.


Author Message
Written on: 13. 12. 2008 [16:06]
Dima
Dima Podolinsky
Topic creator
registered since: 04.12.2008
Posts: 14
В целях экономии ресурсов хочется сохранять в базу только изменения значений, т.е. не добавлять запись в базу, если измеренное значение равно предыдущему. Можно ли?
Written on: 13. 12. 2008 [22:04]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
А получать значение за нужное время как? Архивирование на БД и так не быстро, а чтение таким образом вообще станет непредсказуемым по времени.
Если Вам нужна экономия то используйте файловый архив. БД это не тот случай. Кроме того экономия там мизерна.

Learn, learn and learn better than work, work and work.
Written on: 06. 02. 2017 [21:17]
dbelovol
Дмитрий Беловол
registered since: 02.02.2017
Posts: 4
"Dima" wrote:

В целях экономии ресурсов хочется сохранять в базу только изменения значений, т.е. не добавлять запись в базу, если измеренное значение равно предыдущему. Можно ли?


"roman" wrote:

А получать значение за нужное время как? Архивирование на БД и так не быстро, а чтение таким образом вообще станет непредсказуемым по времени.
Если Вам нужна экономия то используйте файловый архив. БД это не тот случай. Кроме того экономия там мизерна.


Разговор давний, может с момента публикации что-то в этом направлении прикручено? Если да, то не подскажете, где почитать. Заранее благодарен за информацию.
ЗЫ. Меня интересует не просто не писать, но и иметь возможность задания апертуры для архивируемого атрибута (устранять архивирование дребезга). Был бы очень признателен, если бы пояснили, почему чтение станет непредсказуемым по времени? Точнее, почему время чтения может возрасти от такого способа записи? Не совсем понятно, почему экономия мизерна. В моей задаче (работа с контроллерами вибрации) требуемые атрибуты постоянно "дрожат" в пределах 1-2% шкалы. При записи раз в секунду сто таких параметров сжирают в час в районе 100М. А так можно принудительно писать раз в минуту и превратить это в 1,5М. При этом использовать только минутный архиватор я не могу, так как если затрясет - нужно разрешение в секунду минимум.
Written on: 06. 02. 2017 [21:49]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"dbelovol" wrote:

Разговор давний, может с момента публикации что-то в этом направлении прикручено? Если да, то не подскажете, где почитать. Заранее благодарен за информацию.

Для архивации на БД ничего, а для архивации на FS в соответствующем модуле и читайте.

"dbelovol" wrote:

ЗЫ. Меня интересует не просто не писать, но и иметь возможность задания апертуры для архивируемого атрибута (устранять архивирование дребезга). Был бы очень признателен, если бы пояснили, почему чтение станет непредсказуемым по времени? Точнее, почему время чтения может возрасти от такого способа записи? Не совсем понятно, почему экономия мизерна. В моей задаче (работа с контроллерами вибрации) требуемые атрибуты постоянно "дрожат" в пределах 1-2% шкалы. При записи раз в секунду сто таких параметров сжирают в час в районе 100М. А так можно принудительно писать раз в минуту и превратить это в 1,5М. При этом использовать только минутный архиватор я не могу, так как если затрясет - нужно разрешение в секунду минимум.

После реализации групповой архивации нескольких параметров на БД "почему чтение станет непредсказуемым" и всякие потенциальные упаковки отдельных сигналов становятся в принципе противоречивыми. И кстати, именно групповая архивация была добавлена для повышения производительности архивации на БД, и это именно тот случай когда повышение производительности исключает оптимизацию в хранении в виду изначально относительно низкой производительности доступа.

Ещё раз, если нужно оптимальное архивирование с упаковкой то это в принципе не про архивацию на СУБД, а про архивацию на ФС! Архивация на СУБД для возможности обмена с другими системами и не более того.

Learn, learn and learn better than work, work and work.
Written on: 07. 02. 2017 [06:54]
IrmIngeneer
Константин \m/
Contributor
Sponsor
registered since: 16.09.2010
Posts: 185
"dbelovol" wrote:

В моей задаче (работа с контроллерами вибрации) требуемые атрибуты постоянно "дрожат" в пределах 1-2% шкалы. При записи раз в секунду сто таких параметров сжирают в час в районе 100М. А так можно принудительно писать раз в минуту и превратить это в 1,5М. При этом использовать только минутный архиватор я не могу, так как если затрясет - нужно разрешение в секунду минимум.


Может, включать/отключать соответствующий архиватор?
Written on: 07. 02. 2017 [15:04]
dbelovol
Дмитрий Беловол
registered since: 02.02.2017
Posts: 4
"IrmIngeneer" wrote:

"dbelovol" wrote:

В моей задаче (работа с контроллерами вибрации) требуемые атрибуты постоянно "дрожат" в пределах 1-2% шкалы. При записи раз в секунду сто таких параметров сжирают в час в районе 100М. А так можно принудительно писать раз в минуту и превратить это в 1,5М. При этом использовать только минутный архиватор я не могу, так как если затрясет - нужно разрешение в секунду минимум.


Может, включать/отключать соответствующий архиватор?

Если отключать архиватор, то вырубятся все его атрибуты, а мне нужно по апертуре отключать конкретный атрибут конкретного параметра, оставляя другие включенными. Задача была бы решена, если бы контроллер мог динамически управлять свойствами атрибутов своих параметров, но я не знаю, как это сделать и можно ли этого добиться в принципе. Конкретнее, можно ли как-то в программе на JavaLiceCalc шаблона сослаться на свойство атрибута параметра контроллера, использующего данный шаблон?
Written on: 07. 02. 2017 [16:24]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"dbelovol" wrote:

Если отключать архиватор, то вырубятся все его атрибуты, а мне нужно по апертуре отключать конкретный атрибут конкретного параметра, оставляя другие включенными. Задача была бы решена, если бы контроллер мог динамически управлять свойствами атрибутов своих параметров, но я не знаю, как это сделать и можно ли этого добиться в принципе. Конкретнее, можно ли как-то в программе на JavaLiceCalc шаблона сослаться на свойство атрибута параметра контроллера, использующего данный шаблон?

Можно: http://wiki.oscada.org/Doc/OpisanieProgrammy#h920-10

Learn, learn and learn better than work, work and work.
Written on: 07. 02. 2017 [22:05]
dbelovol
Дмитрий Беловол
registered since: 02.02.2017
Posts: 4
Большое спасибо. Так оперативно отвечаете - даже удивительно.
Written on: 08. 02. 2017 [16:18]
dbelovol
Дмитрий Беловол
registered since: 02.02.2017
Posts: 4
Функции объекта архива (SYS.Archive["va_Archive"]):
ElTp cfg(string nm) — получение значения конфигурационного поля nm объекта.

Откуда взять имя интересующего меня конфигурационного поля?
JAVASCRIPT
control = SYS.Archive["va_1_A_Ae"]; 
rez1=control.cfg("ID");
l
дает rez1 = 1_A_Ae
JAVASCRIPT
control = SYS.Archive["va_1_A_Ae"]; 
rez1=control.cfg("Имя");
l
дает rez1 = <EVAL>



и еще. При помощи
JAVASCRIPT
control = SYS.Archive["va_1_A_Ae"]; 
rez1=control.status();
l
можно посмотреть статус. А как его установить?

Заранее благодарен за пояснения.



6827