УкраїнськаEnglishmRussian
Вход/Новый
В теме нет новых постов

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


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

Learn, learn and learn better than work, work and work.
Сообщение создано: 06. 02. 2017 [21:17]
dbelovol
Дмитрий Беловол
Зарегистрирован(а) с: 02.02.2017
Сообщения: 4
"Dima" wrote:

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


"roman" wrote:

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


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

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

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

"dbelovol" wrote:

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

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

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

Learn, learn and learn better than work, work and work.
Сообщение создано: 07. 02. 2017 [06:54]
IrmIngeneer
Константин \m/
Contributor
Sponsor
Зарегистрирован(а) с: 16.09.2010
Сообщения: 185
"dbelovol" wrote:

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


Может, включать/отключать соответствующий архиватор?
Сообщение создано: 07. 02. 2017 [15:04]
dbelovol
Дмитрий Беловол
Зарегистрирован(а) с: 02.02.2017
Сообщения: 4
"IrmIngeneer" wrote:

"dbelovol" wrote:

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


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

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

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

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

Learn, learn and learn better than work, work and work.
Сообщение создано: 07. 02. 2017 [22:05]
dbelovol
Дмитрий Беловол
Зарегистрирован(а) с: 02.02.2017
Сообщения: 4
Большое спасибо. Так оперативно отвечаете - даже удивительно.
Сообщение создано: 08. 02. 2017 [16:18]
dbelovol
Дмитрий Беловол
Зарегистрирован(а) с: 02.02.2017
Сообщения: 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
можно посмотреть статус. А как его установить?

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



3595