АННОТАЦИЯ

Спецификация предназначена для детализированного описания требований к реализации сущностей АС averobo на данных БД dbrobo с целью построения ретроспективного анализа данных.

Условие отбора данных

Отбор данных из БД Dbrobo:

Выборка данных осуществляется через API-запрос за последние 15 минут. По расаписанию планировщика crontab(работает от демона cron) первый запуск происходит в 00:00 каждого дня и срабатывает каждые 15 минут.

Отбор данных из БД Averobo:

Выборка данных осуществляется через подключение к БД через библиотеку psycopg2. В зависимости от типа осреднения происходит подключение к одной из двух таблиц. Для осреднений сутки и час обращение идет к таблице half_path, для осреднений неделя и месяц – table_with_time. Полное расписание планировщика представлено в таблице 1.

Табл.1 Расписание планировщика

Дата запуска планировщика	Тип осреднений
ХХ:00	15-минут
ХХ:08	Час
00:12	Сутки
00:16	Неделя
00:20	Месяц

Модель данных

Модель данных для таблиц main_table, table_with_time, half_path представлены в таблицах 2, 3, 4 соответсвенно:

Табл. 2 Модель данных main_table

Name	Code	Data Type	Comment	Алгоритм заполнения
Дата осреднения	date	date	Дата осреднения
Название и серия прибора	name	varchar (50)	Название и серия прибора
Тип осреднения	average	varchar (50)	Типы осреднения: average_of_day maximum_in_day minimum_in_day average_of_week maximum_in_week minimum_in_week	Названия функций: insertavgday insertmaxday insertminweek insertminday insertavgweek insertmaxweek
json-file с осреднениями	json-file	json	Структура хранения данных: название датчика: осредненные данные

Табл. 3 Модель данных table_with_time

Name	Code	Data Type	Comment	Алгоритм заполнения
Дата осреднения	date	timestamp	Дата осреднения с временем
Название и серия прибора	name	varchar (50)	Название и серия прибора
Тип осреднения	average	varchar (50)	Тип осреднения: aver_hour maximum_in_hour minimum_in_hour aver_15min minimum_in_15min maximum_in_15min	Названия функций: insertavghour insertmaxhour insertminhour function_15_min
json-file с осреднениями	json-file	json	Структура хранения данных: название датчика: осредненные данные

Табл. 4 Модель данных half_path

Name	Code	Data Type	Comment	Алгоритм заполнения
Дата осреднения	date	timestamp	Дата осреднения с временем
Название и серия прибора	name	varchar (50)	Название и серия прибора
Тип осреднения	average	varchar (50)	Тип осреднения: aver_hour maximum_in_hour minimum_in_hour aver_15min minimum_in_15min maximum_in_15min	Названия функций: insertavghour insertmaxhour insertminhour function_15_min
Количество осредненняемых значений	num	json	Количество осредненняемых значений
Сумма неосредненных значений	sum	json	Сумма неосредненных значений

CRONTAB

Для установки расписания выполнения программ используется crontab. Чтобы запустить текстовый редактор и добавить необходимые записи в файл конфигурации cron необходимо выполнить следующую команду:

crontab -e

Запись состоит из семи полей: минуты часы день месяц день_недели выполняющая_программа команда Следовательно, для запуска скрипта для заполнения пятнадцатиминутных значений необходимо прописать время в формате */15 * * * *, путь до расположения интерпретатора Python3 и путь до выполняемого файла.

*/15 * * * * /usr/bin/python3 /home/alenanaz/test_myfunctions.py

Аналогично будут составлены записи для заполнения почасовых и ежедневных значений.

10 * * * * /usr/bin/python3 /home/alenanaz/test_myfunctions_hour.py

15 0 * * * /usr/bin/python3 /home/alenanaz/test_myfunctions_day.py