TI40

**Технології індустрії 4.0. Лабораторний практикум. ** Автор і лектор: Олександр Пупена

<- до лаборних робіт на основну сторінку курсу
   

Лабораторна робота №8. Influx DB. Збір даних та основи роботи з вибіркою даних.

Завдання лабораторної роботи навчитися писати дані в базу даних часових рядів Influxdb та ознайомитися з основами роботи з інтерфейсом користувача Influxdb (Influxdb UI) з метою налаштування бази даних, побудови запитів та перегляду даних часових рядів.

Зверніть увагу, зовнішній вигляд та функції можуть відрізнятися від наведених у даних методичних рекомендаціях. У будь якому випадку курс не передбачає використання платних сервісів. За будь яких відмінностей проконсультуйтеся у викладача!

1.Створення облікового запису InfluxDB Cloud та знайомство з консоллю

1.1. Створення безкоштовного облікового запису InfluxDB Cloud

У наступному вікні відмітьте найбільші відповідні опції та натисніть “continue”

image-20231120093735847

1.2.Навігація по графічній консолі

У головному вікні ліва бічна панель надає доступ до навігації по всім розділам. На це вікно можна завжди перейти лівої верхньої кнопки.

image-20231120095412895

Наступна кнопка “Load Data” дає можливість перейти до вікон керування завантаженням даних.

image-20231120095752527

Зокрема там доступні:

image-20231120100151921

image-20231120100232147

image-20231120100249270

image-20231120100303701

2. Створення нового бакету

Бакет – це іменована локація зберігання даних часових рядів. Усі бакети мають період збереження, тривалість часу, протягом якого кожен елемент даних зберігається. InfluxDB скидає всі елементи даних з мітками часу, старшими за період зберігання бакету. Бакет належить організації.

image-20231120103641858

Після створення, новий бакет з’явиться у списку бакетів.

3. Створення токену повного доступу

Токени API InfluxDB забезпечують безпечну взаємодію між користувачами та даними. Токен належить організації та визначає дозволи InfluxDB в організації. Токен – це ключ до даних (бакетів, файлів телеграфу). Influxdb надає два типи токенів: All-Access token, Read/Write token.

image-20231120104143275

Після цього з’явиться повідомлення про успішне створення токену

4. Налаштування запису даних з OPC UA сервера в influxdb

У цьому пункті ви спробуєте два способи збору та запису даних в InfluxDB. Перший спосіб (4.1) передбачає збір та запис даних з використанням Node-RED та спеціальних вузлів бібліотеки. Другий спосіб (4.2) - використовуючи службу Telegraf.

4.1. Запис даних за допомогою Node red

image-20231120110416655

Налаштування матимуть вигляд приблизно як на рисунку нижче.

image-20231120111413113

image-20231120112104019

4.2. Запис даних за допомогою Telegraf

Telegraf – серверний агент, який збирає та надсилає метрики з різних джерел даних (баз даних, систем та IoT). Перед тим як збирати дані з OPC UA server за допомогою Telegraf, необхідно його інсталювати на комп’ютер, на якій ви запускаєте UaCPPServer. Для цього необхідно завантажити Telegraf.

Нижче наведений перелік кроків для встановлення Telegraf на 64-розрядній ОС Windows.

image-20231120112552165

wget http://dl.influxdata.com/telegraf/releases/telegraf-1.22.1_windows_amd64.zip -UseBasicParsing -OutFile telegraf-1.22.1_windows_amd64.zip

Ця команда завантажить телеграф конкретної версії.

Expand-Archive .\telegraf-1.22.1_windows_amd64.zip -DestinationPath 'C:\Program Files\InfluxData\telegraf'

Якщо ви працюєте з іншою операційною системою, тоді слідуйте вказівкам із сторінки завантажень InfluxDB, обравши Telegraf v1.22 та відповідну платформу.

image-20231120115113011

[
   {name="Humidity", tags=[["device", "AirConditioner_1" ]], identifier="AirConditioner_1.Humidity"},
   {name="Humidity", tags=[["device", "AirConditioner_2" ]], identifier="AirConditioner_2.Humidity"},
   {name="Humidity", tags=[["device", "AirConditioner_3" ]], identifier="AirConditioner_3.Humidity"},
   {name="Humidity", tags=[["device", "AirConditioner_4" ]], identifier="AirConditioner_4.Humidity"},
   {name="Humidity", tags=[["device", "AirConditioner_5" ]], identifier="AirConditioner_5.Humidity"},
   {name="Humidity", tags=[["device", "AirConditioner_6" ]], identifier="AirConditioner_6.Humidity"},
   {name="Humidity", tags=[["device", "AirConditioner_7" ]], identifier="AirConditioner_7.Humidity"},
   {name="Humidity", tags=[["device", "AirConditioner_8" ]], identifier="AirConditioner_8.Humidity"},
   {name="Humidity", tags=[["device", "AirConditioner_9" ]], identifier="AirConditioner_9.Humidity"},
   {name="Humidity", tags=[["device", "AirConditioner_10" ]], identifier="AirConditioner_10.Humidity"},                        
  ]

image-20231120121340195

За замовчуванням інтервал запису даних, зазначений у конфігураційному файлі телеграфу, дорівнює 20 секунд. Щоб його змінити, потрібно відкрити конфігураційний файл в інтерфейсі користувача Influxdb: пункт меню “Load data” –> Telegraf, обрати необхідну конфігурацію (в нашому випадку OPC UA server). Параметр, який відповідає за інтервал запису, називається “Interval”.

Змінювати інтервал не потрібно, залиште конфігураційний файл без змін, натиснувши кнопку Cancel.

Серед повідомлень у вас зявиться попередження, на яке не потрібно звертати увагу:

W! [inputs.opcua] Failed to load certificate: open /etc/telegraf/cert.pem: The system cannot find the path specified.

5. Основи роботи з вибіркою даних. Data Explorer

Інтерфейс користувача InfluxDB UI це інструмент для роботи з даними часових рядів та InfluxDB. Інтерфейс користувача InfluxDB дозволяє:

Варто зауважити що повний перелік наведених функцій доступний тільки в платній підписці.

Data Explorer в інтерфейсі користувача InfluxDB дозволяє створювати, виконувати та візуалізувати запити SQL. Query Builder (конструктор запитів) дозволяє створювати SQL запити без написання коду на мові SQL.

  1. В розділі From оберіть бакет, в який пишуться дані.
  2. В розділі “measurement” оберіть вимірювання Building.
  3. В розділі “fields” оберіть поле Temperature.
  4. В розділі “device” оберіть три довільні кондиціонери.
  5. В полі вибору часового діапазону Time range оберіть останні 15 хв “Past 15m”.
  6. Натисніть кнопку Run для виконання сконфігурованого запиту.

image-20231120124308139

7) Подивіться на таблицю з отриманими результатами

image-20231120124743700

8) Виберіть режим відображення “Graph”, у бічній панелі в якості відображення параметр “Temperature” і подивіться лінійний тренд.

image-20231120134145583

SELECT *
FROM "Building"
WHERE
time >= now() - interval '15 minutes'
AND
("Temperature" IS NOT NULL)
AND
"device" IN ('AirConditioner_1','AirConditioner_10','AirConditioner_2')

Питання до захисту.

  1. Що таке бакет Influxdb?
  2. Де можна знайти конфігураційні файли телеграфу в Influxdb UI?
  3. Для чого потрібні змінні дашбоардів?
  4. Як можна подивитися записані дані в Influx DB?