[Open source, Python, IT-инфраструктура, Хранение данных, Хранилища данных] HDB++ TANGO Archiving System 
    
    
        
    
    
    
    
            
    
        
            
                
                                    
                
                                    
                
                    
                
            
        
    
    
        
            
                
                
                    
                           
                    
                        Автор 
                        Сообщение 
                    
                                        
                        
                            
                                
                                
                                                                                                            news_bot ®
                                                                        
                                                                                                                                                
                                                                            
                                                                                                                
                                            Стаж: 7 лет 8 месяцев                                        
                                                                                                                
                                            Сообщений: 27286                                        
                                                                                                                                                
                                                             
                            
                                
                             
                         
                        
                            
                                
                                    
                                        
                                        
Что такое HDB++?
Это система архивирования TANGO, позволяет сохранять данные полученные с устройств в системе TANGO.
Здесь будет описана работа с Linux (TangoBox 9.3 на основе Ubuntu 18.04), это уже готовая система где все настроено.
О чем статья?
- Архитектура системы.
 
- Как настроить архивирование.
У меня ушло ~ 2 недели что бы разобраться в архитектуре и написать свои скрипты для python под это дело.
Для чего это нужно?
Позволяет хранить историю показаний Вашего оборудования.
- Вам не нужно думать о том как хранить данные в БД.
 
- Нужно только указать какие атрибуты с какого оборудования архивировать.
Где взять?
Архитектура

Здесь две самые важные вещи — это Archiver и Archiving DB. HDB++ Configuration графическая утилита для управления Archiver. HDB++ Viewer утилита просмотра Archiving DB.
Archiver опрашивает наши Device Server-а и записывает историю в Archiving DB.
Archiver это такой же Device Server:

Archiving DB в нашей системе базируется на MySQL, она находится в докере tangobox-hdbpp.

Archiver

Посмотрим список команд этого сервера.

На картинке список команд управления этим Device Server-ом
Здесь нас интересуют:
- AttibuteAdd — добавить атрибут.
 
- AttibutePause — поставить архивацию на паузу.
 
- AttibuteRemove — удалить атрибут.
 
- AttibuteStart — начать архивацию.
 
- AttibuteStatus — состояние атрибута.
 
- AttibuteStop — остановить архивацию.
Посмотрим через Jive список атрибутов за которыми следит Archiver:
jive

Дважды щелкаем на устройство.

Управнее этим Device Server-ом осуществляется через утилиту HDB++ Configuration, это графическая утилита которая отправляет выше показанные команды в archiving/hdbpp/eventsubscriber.1. Дальше будет показано как делать это программно.
HDB++ Configuration
hdbpp-configurator -configure

С помощью нее запускается/останавливается архивация и задаются параметры архивирования. Дважды щелкаем по атрибуту:

- TTL — сколько дней будет длиться архивация истории.
 
- absolute change — изменение атрибута в единицах.
 
- relative change — изменение атрибута в процентах.
 
- event period — если значения изменились, то записывать каждые мс.
 
- Attibute polling period — записывать каждые мс.
Archiving DB
В ней нас будет интересовать БД hdbpp:

Так же потребуется настроить доступ к БД, с какой машины и кому разрешено подключаться (Потому что изучать как система была уже настроена мне было лень, легче задать своего пользователя.):
GRANT ALL PRIVILEGES on *.* to 'root'@'172.18.0.1' IDENTIFIED BY 'tango';
FLUSH PRIVILEGES;
Наша основная система имеет адрес 172.18.0.1, docker с БД находится на 172.18.0.7.
Теперь перейдем к структуре БД, здесь основная таблица att_conf. В ней прописаны атрибуты которые попали в систему архивации:

Здесь важные поля att_conf_id и att_conf_data_type_id. По att_conf_data_type_id из таблицы att_conf_data_type получим тип данных атрибута. Например scalar_devushort_ro, получив тип данных узнаем таблицу в которой хранится история. Имя таблицы будет att_scalar_devushort_ro, из этой таблицы по att_conf_id получаем архив данных интересующего нас атрибута.
Python
Механизмы python для работы с HDB++.
Есть официальная библиотека для python2.7 для работы с HDB++ PyTangoArchiving. Разобраться с ней удалось только когда написал свою библиотеку. По ней не хватает документации, что передается в методы, какие типы данных, что передавать в аргументах (Это мое мнение).
Мой модуль создан для версии 3.7. Здесь все стандартные настройки для работы на TangoBox 9.3 заданы по умолчанию.
Установка модуля
sudo python3.7 setup.py install
Зависимости:
- mysql-connector>=2.2.9
 
- pytango>=9.3.2
 
- distribute>=0.7.3
Как использовать
from hdbpp import HDBPP
if __name__ == '__main__':
    hdbpp = HDBPP()
    # Подключиться к серверу архивации и к БД с архивами.
    if hdbpp.connect() == False :
        exit(0)
    # Получить историю атрибута за все время.
    archive = hdbpp.get_archive('tango://tangobox:10000/ECG/ecg/1/Lead')
    for a in archive:
        print(a)
   # Текущий статус архивации атрибута
    ret = hdbpp.archiving_status('tango://tangobox:10000/ECG/ecg/1/Lead')
    print(ret)
    # Добавить атрибут на сервер архивации
    hdbpp.archiving_add(['tango://tangobox:10000/ECG/ecg/1/Lead'])
    # Начать архивацию атрибута
    hdbpp.archiving_start('tango://tangobox:10000/ECG/ecg/1/Lead', 10 * 60 * 1000, 5 * 60 * 1000, 2, 1)
    # где:
    # 10 * 60 * 1000 - опрашивать и архивировать атрибут каждые мс
    # 5 * 60 * 1000 - архивировать атрибут каждые мс, если значение вышло за порог
    # 2 - порог изменения атрибута в единицах
    # 1 - порог изменения атрибута в процентах
   # Остановить архивацию атрибута
    hdbpp.archiving_stop('tango://tangobox:10000/ECG/ecg/1/Lead')
    # Закрыть соединение
    hdbpp.close()
Более подробная документация в коде.
Ее можно посмотреть например так:
pydoc3.7 hdbpp.HDBPP
Ссылки
Статью писал для себя, потому что спустя некоторое время начинаю забывать как и что делать.
Спасибо за внимание.
===========
 Источник:
habr.com
===========
Похожие новости:
- [Python, Data Mining, Хакатоны, Машинное обучение, Natural Language Processing] Sibur Challenge 2020 или «как мы фичи придумывали»
 
- [Системное администрирование, Хранение данных, Разработка под Windows, Софт] При обновлении Windows 10 запуск команды chkdsk повреждает файловую систему SSD
 
- [Python, Rust] Rust глазами Python-разработчика
 
- [IT-инфраструктура, Серверное администрирование] Купили гарантию на серверное железо: что может пойти не так?
 
- [Open source, Работа с видео, История IT, Звук] Проекту FFmpeg исполнилось 20 лет
 
- [Разработка под iOS, Разработка мобильных приложений, IT-инфраструктура, Разработка под Android, DevOps] Да кто такой этот ваш Mobile DevOps?
 
- [IT-стандарты, Хранение данных, Управление проектами] Управление информацией объектов капитального строительства
 
- [IT-инфраструктура, Интернет-маркетинг, Брендинг, IT-компании] В борьбе синих и красных победа присуждается… радужным! Или все-таки не присуждается? Ну противостояние-то хоть было?
 
- [IT-инфраструктура, Google API, Google Cloud Platform, Облачные сервисы] В Google объяснили причину глобального сбоя сервисов
 
- [Хранение данных, Законодательство в IT] «CPPA от GDPR не далеко падает»: в Канаде пытаются ужесточить требования по защите ПД
Теги для поиска: #_open_source, #_python, #_itinfrastruktura (IT-инфраструктура), #_hranenie_dannyh (Хранение данных), #_hranilischa_dannyh (Хранилища данных), #_tango_controls, #_hdb++, #_python, #_open_source, #_python, #_itinfrastruktura (
IT-инфраструктура
), #_hranenie_dannyh (
Хранение данных
), #_hranilischa_dannyh (
Хранилища данных
)
                                        
                                        
                                        
                                     
                                    
                                    
                                                                    
                                                                                             
                         
                        
                            
                                                                    
                                                             
                         
                    
                    
                
                
            
        
    
    
    
    
    
            
    
            
    
        
    
    
        
                        Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
    
    
        
        Текущее время: 31-Окт 18:49
Часовой пояс: UTC + 5 
            
    
                
| Автор | Сообщение | 
|---|---|
| news_bot ® 
                                                                            
                                                                                                                
                                            Стаж: 7 лет 8 месяцев                                         | |
|  Что такое HDB++? Это система архивирования TANGO, позволяет сохранять данные полученные с устройств в системе TANGO. Здесь будет описана работа с Linux (TangoBox 9.3 на основе Ubuntu 18.04), это уже готовая система где все настроено. О чем статья? 
 У меня ушло ~ 2 недели что бы разобраться в архитектуре и написать свои скрипты для python под это дело. Для чего это нужно? Позволяет хранить историю показаний Вашего оборудования. 
 Где взять? Архитектура  Здесь две самые важные вещи — это Archiver и Archiving DB. HDB++ Configuration графическая утилита для управления Archiver. HDB++ Viewer утилита просмотра Archiving DB. Archiver опрашивает наши Device Server-а и записывает историю в Archiving DB. Archiver это такой же Device Server:  Archiving DB в нашей системе базируется на MySQL, она находится в докере tangobox-hdbpp.  Archiver  Посмотрим список команд этого сервера.  На картинке список команд управления этим Device Server-ом Здесь нас интересуют: 
 Посмотрим через Jive список атрибутов за которыми следит Archiver: jive  Дважды щелкаем на устройство.  Управнее этим Device Server-ом осуществляется через утилиту HDB++ Configuration, это графическая утилита которая отправляет выше показанные команды в archiving/hdbpp/eventsubscriber.1. Дальше будет показано как делать это программно. HDB++ Configuration hdbpp-configurator -configure  С помощью нее запускается/останавливается архивация и задаются параметры архивирования. Дважды щелкаем по атрибуту:  
 Archiving DB В ней нас будет интересовать БД hdbpp:  Так же потребуется настроить доступ к БД, с какой машины и кому разрешено подключаться (Потому что изучать как система была уже настроена мне было лень, легче задать своего пользователя.): GRANT ALL PRIVILEGES on *.* to 'root'@'172.18.0.1' IDENTIFIED BY 'tango'; FLUSH PRIVILEGES; Наша основная система имеет адрес 172.18.0.1, docker с БД находится на 172.18.0.7. Теперь перейдем к структуре БД, здесь основная таблица att_conf. В ней прописаны атрибуты которые попали в систему архивации:  Здесь важные поля att_conf_id и att_conf_data_type_id. По att_conf_data_type_id из таблицы att_conf_data_type получим тип данных атрибута. Например scalar_devushort_ro, получив тип данных узнаем таблицу в которой хранится история. Имя таблицы будет att_scalar_devushort_ro, из этой таблицы по att_conf_id получаем архив данных интересующего нас атрибута. Python Механизмы python для работы с HDB++. Есть официальная библиотека для python2.7 для работы с HDB++ PyTangoArchiving. Разобраться с ней удалось только когда написал свою библиотеку. По ней не хватает документации, что передается в методы, какие типы данных, что передавать в аргументах (Это мое мнение). Мой модуль создан для версии 3.7. Здесь все стандартные настройки для работы на TangoBox 9.3 заданы по умолчанию. Установка модуля sudo python3.7 setup.py install Зависимости: 
 Как использовать from hdbpp import HDBPP if __name__ == '__main__': hdbpp = HDBPP() # Подключиться к серверу архивации и к БД с архивами. if hdbpp.connect() == False : exit(0) # Получить историю атрибута за все время. archive = hdbpp.get_archive('tango://tangobox:10000/ECG/ecg/1/Lead') for a in archive: print(a) # Текущий статус архивации атрибута ret = hdbpp.archiving_status('tango://tangobox:10000/ECG/ecg/1/Lead') print(ret) # Добавить атрибут на сервер архивации hdbpp.archiving_add(['tango://tangobox:10000/ECG/ecg/1/Lead']) # Начать архивацию атрибута hdbpp.archiving_start('tango://tangobox:10000/ECG/ecg/1/Lead', 10 * 60 * 1000, 5 * 60 * 1000, 2, 1) # где: # 10 * 60 * 1000 - опрашивать и архивировать атрибут каждые мс # 5 * 60 * 1000 - архивировать атрибут каждые мс, если значение вышло за порог # 2 - порог изменения атрибута в единицах # 1 - порог изменения атрибута в процентах # Остановить архивацию атрибута hdbpp.archiving_stop('tango://tangobox:10000/ECG/ecg/1/Lead') # Закрыть соединение hdbpp.close() Более подробная документация в коде. Ее можно посмотреть например так: pydoc3.7 hdbpp.HDBPP Ссылки Статью писал для себя, потому что спустя некоторое время начинаю забывать как и что делать. Спасибо за внимание. =========== Источник: habr.com =========== Похожие новости: 
 IT-инфраструктура ), #_hranenie_dannyh ( Хранение данных ), #_hranilischa_dannyh ( Хранилища данных ) | |
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
    Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 31-Окт 18:49
Часовой пояс: UTC + 5 
