<- до лаборних робіт | на основну сторінку курсу |
---|---|
<- частина 1 | частина 3 -> |
- Робота з SQL в NodeRED
- Приклад реалізації завдання
бібліотека Node-RED для роботи з БД
бібліотека Node-RED Operating Systems
У цій частині лабораторної роботи бази даних будуть використовуватися у Node-RED для збереження показників роботи системи - процесорного часу та використання пам'яті.
- Запустіть Node-RED.
- Створіть новий потік у вашому проекті з назвою DB
- Встановіть бібліотеку
node-red-node-mysql
- ознайомтеся з роботою бібліотеки за посиланням бібліотеки Node-RED для роботи з БД
У даній лабораторній роботі будуть використовуватися два підключення - до системної бази даних mysql
та до користувацької devinfo
. Перша буде використовуватися для ініціалізації, а саме:
- при підключенні до системної БД буде перевірятися наявність БД
devinfo
, якщо її немає - вона буде створюватися; зрештою необхідність вказівки до системної БДmysql
зумовлена необхідністю конфігурування підключення принаймні до якоїсь БД, а системна завжди присутня;
Після підключення до користувацької БД devinfo
перевіряється наявність сконфігурованої таблиці, і якщо її немає - вона також створюється автоматично.
- у новоствореному потоці
DB
створіть фрагмент, який буде отримувати перелік баз даних
- зробіть розгортання, зробіть ініціювання формування запиту, повинен бути результат як зображено на рисунку праворуч; проаналізуйте і порівняйте, чи співпадає цей перелік з побаченим за допомогою клієнтської утиліти HeidiSQL.
- у вузлі
Inject
змініть запит, щоб він повертав відповіді за вказаним шаблоном (операторLIKE
) іменіmysql
SHOW DATABASES LIKE 'mysql'
- подивіться на результат виконання запиту
- змініть запит на наступний
SHOW DATABASES LIKE 'devinfo'
- подивіться на результат виконання запиту
- модифікуйте програму, як показано на рисунку
- ініціюйте виконання запиту на створення БД
- ініціюйте виконання запиту на відображення списку БД з іменем 'devinfo', подивіться чи з'явилася ця БД в списку
- ініціюйте виконання запиту на створення БД повторно; у панелі налагодження повинно з'явитися повідомлення про помилку;
- використовуючи HeidiSQL видаліть БД 'devinfo'; альтернативно можете створити вузол в Node-RED для виконання видалення;
- модифікуйте програму, як наведено нижче; код SQL запиту, який буде формувати таблицю показаний під рисунком
CREATE TABLE devinfo.tab1(
TS TIMESTAMP NOT NULL DEFAULT current_timestamp(),
cpuavg FLOAT NULL DEFAULT NULL,
memory FLOAT NULL DEFAULT NULL,
PRIMARY KEY (TS)
)
Програма працює наступним чином: при старті перевіряється наявність бази даних 'devinfo', якщо її немає формується запит на створення БД, після чого формується запит на створення таблиці в БД.
- Встановіть бібліотеку Node-RED
node-red-contrib-os
для отримання даних з ОС. - Ознайомтеся з її вузлами та принципами їх роботи з опису бібліотеки Node-RED Operating Systems
За допомогою наведеного нижче фрагменту програми протестуйте роботу вузлів Memory
та CPUs
. Опис вузлів наведений в довіднику Node-RED . Зокрема дізнйтеся:
- скільки часу працює ваш ПК з моменту останнього запуску
- скільки пам'яті було використано в момент ініціювання потоку (
inject
) - зайдіть в диспетчер задач і порівняйте отримані результати з показаними в диспетчері
У цьому пункті необхідно зробити програму, яка буде відображати споживання ресурсів.
- Модифікуйте програму користувача як показано на рисунку. Нижче рисунку наведений лістинг програми вузла "Моніторинг". Вузли відображення на Dashboard налаштуйте самостійно. Оновлення повинно відбуватися кожні 5 секунд.
- модифікуйте програму відповідно до наведеного нижче фрагменту, зверніть увагу що необхідно буде добавити конфігураційний вузол з БД 'devinfo', який буде посилатися на відповідну базу даних
- зробіть розгортання та досягніть щоб не було помилок
- використовуючи HeidiSQL проконтролюйте, що дані дійсно записуються в БД
Використовуючи функції дати/часу MariaDB в HeidiSQL реалізуйте запит вибірки SELECT
, який буде показувати дані за останні 5 хвилин.
<- до лаборних робіт | на основну сторінку курсу |
---|---|
<- частина 1 | частина 3 -> |