Инструменты пользователя

Инструменты сайта


doc:2003:mgul.200300.001.3201

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
doc:2003:mgul.200300.001.3201 [2024/08/08 23:59]
daftwi
doc:2003:mgul.200300.001.3201 [2024/08/11 01:07] (текущий)
daftwi
Строка 20: Строка 20:
  
 Табл. 2 Модель данных main_table Табл. 2 Модель данных main_table
-^ Name                      | **Code**   | **Data Type**  | **Comment**                                                                                                                ^ Алгоритм заполнения ​                                                                                            ^+^ Name                       ^ Code    ​^ ​Data Type   ^ Comment ​                                                                                                               ^ Алгоритм заполнения ​                                                                                            ^
 | Дата осреднения ​          | date       | date           | Дата осреднения ​                                                                                                           |                                                                                                                 | | Дата осреднения ​          | date       | date           | Дата осреднения ​                                                                                                           |                                                                                                                 |
 | Название и серия прибора ​ | name       | varchar (50)   | Название и серия прибора ​                                                                                                  ​| ​                                                                                                                | | Название и серия прибора ​ | name       | varchar (50)   | Название и серия прибора ​                                                                                                  ​| ​                                                                                                                |
Строка 27: Строка 27:
  
 Табл. 3 Модель данных table_with_time Табл. 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          | Сумма неосредненных значений ​                                                                                       |    ​
 +
 +====== PostgreSQL ======
 +
 +===== Установка и запуск PostgreSQL =====
 +<​code>​sudo apt update
 +sudo apt install postgresql postgresql-contrib
 +sudo systemctl start postgresql.service</​code>​
 +===== Создание роли =====
 +Для создания баз данных используются роли в СУБД PostgreSQL. При создании роли автоматически создается БД с аналогичным названием. Для использования роли необходимо создать пользователя,​ к которому будет применена роль. Имя пользователя и роли должны совпадать.
 +Создание пользователя для БД логов:
 +<​code>​sudo adduser averobo_logs</​code>​
 +При создании пользователя необходимо не забывать о предоставлении,​ если необходимо sudo/root прав. Их необходимо предоставлять отдельно.
 +Создание роли для БД логов:
 +<​code>​sudo -u postgres createuser averobo_logs</​code>​
 +Создание пользователя для основной БД:
 +<​code>​sudo adduser averobo</​code>​
 +Создание роли для основной БД:
 +<​code>​sudo -u postgres createuser averobo</​code>​
 +  * После предоставления роли можно зайти в созданного пользователя через команду:​
 +<​code>​sudo -i su averobo_logs</​code>​
 +Для входа в PostgreSQL:
 +<​code>​psql</​code>​
 +===== Создание таблицы для БД логов =====
 +Создание таблиц происходит непосредственно в PostgreSQL. Для этого необходимо авторизоваться через пользователя,​ к базе данных которого нужно произвести подключение. Данный шаг показан в предыдущем разделе.
 +  * Создание таблицы для логирования:​
 +<​code>​create table logs (
 +             date timestamp
 +             , level character varying(25)
 +             , function character varying(25)
 +             , message character varying(10000)
 +);</​code>​
 +===== Создание таблицы для основной БД =====
 +  * Создание таблицы для неосредненных значений:​
 +<​code>​create table half_path (
 +             date timestamp without time zone
 +             , name character varying(50)
 +             , average character varying(50)
 +             , sum json
 +             , num json 
 +);</​code>​
 +  * Создание таблицы для хранения данных формата дата-время:​
 +<​code>​create table half_path (
 +             date timestamp without time zone
 +             , name character varying(50)
 +             , average character varying(50)
 +             , json_file json
 +);</​code>​
 +  * Создание таблицы для хранения данных формата дата:
 +<​code>​create table half_path (
 +             date date
 +             , name character varying(50)
 +             , average character varying(50)
 +             , json_file json
 +);</​code>​
 +
 +===== Проверки после создания таблиц =====
 +
 +Проверка наличия таблицы:​
 +<​code>​select * from logs;</​code>​
 +Просмотр всех существующих таблиц в БД:
 +<​code>​\dt</​code>​
 +Просмотр полей и деталей о колонках в конкретной таблице:​
 +<​code>​\d logs</​code>​
 +
 +===== Если база данных не создалась автоматически =====
 +  * Создание БД через пользователя PostgreSQL по умолчанию
 +<​code>​sudo -i su postgres</​code>​
 +Команда для создания БД:
 +<​code>​createdb averobo_logs</​code>​
 +  * Создание БД через bash-команду
 +<​code>​sudo -u postgres createdb averobo_logs</​code>​
 +
 +
 +
 +
 +====== CRONTAB ======
 +Для установки расписания выполнения программ используется **crontab**. ​ Чтобы запустить текстовый редактор и добавить необходимые записи в файл конфигурации cron необходимо выполнить следующую команду:​
 +<​code>​crontab -e</​code>​
 +Запись состоит из семи полей:
 +минуты ​  ​часы ​  ​день ​ месяц ​  ​день_недели ​ выполняющая_программа ​  ​команда
 +Следовательно,​ для запуска скрипта для заполнения пятнадцатиминутных значений необходимо прописать время в формате */15 * * * *, путь до расположения интерпретатора Python3 и путь до выполняемого файла.
 +<​code>​*/​15 * * * * /​usr/​bin/​python3 /​home/​alenanaz/​test_myfunctions.py</​code>​
 +Аналогично будут составлены записи для заполнения почасовых и ежедневных значений.
 +<​code>​10 * * * * /​usr/​bin/​python3 /​home/​alenanaz/​test_myfunctions_hour.py</​code>​
 +<​code>​15 0 * * * /​usr/​bin/​python3 /​home/​alenanaz/​test_myfunctions_day.py</​code>​
 +                                                                                 
doc/2003/mgul.200300.001.3201.1723150783.txt.gz · Последние изменения: 2024/08/08 23:59 — daftwi