TI40

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

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

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

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

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

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

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

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

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

All-Access token – надає повний доступ для читання та запису до всіх ресурсів організації.

Read/Write token – надає доступ для читання, запису або і те й інше до певних бакетів в організації.

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

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

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

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

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

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'

Тепер Telegraf зберігається в папці C:\Program Files\InfluxData\telegraf.

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

[
   {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"},                        
  ]

За замовчуванням інтервал запису даних, зазначений у конфігураційному файлі телеграфу, дорівнює 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. Робота з інтерфейсом користувача Influxdb

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

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

Data Explorer в інтерфейсі користувача InfluxDB дозволяє створювати, виконувати та візуалізувати запити Flux. Query Builder (конструктор запитів) дозволяє створювати Flux запити без написання коду на мові Flux, а Script Editor (редактор скриптів) – це редактор коду Flux, де можна вручну редагувати запит. При переході на сторінку Data Explorer, за замовчуванням завантажується Конструктор запитів.

5.2. Налаштування дашбоардів (інформаційних панелей)

Дашбоарди - інформаційні пенелі дають можливість надати наперед сконфігуровані панелі перегляду для користувача.

import "influxdata/influxdb/v1"
v1.tagValues(bucket: "firstbucket", tag: "device", predicate: (r) => true, start: -30d)

  1. Збережіть запит (Save As) як змінну (Variable) з назвою device та типом query.

Створювати зміні можна також в пункті меню “Settings” -> Variables.

> range(start: v.timeRangeStart, stop: v.timeRangeStop)
> filter(fn: (r) => r[“_measurement”] == “Building”)
> filter(fn: (r) => r[“_field”] == “Humidity”)

|> filter(fn: (r) => r[“device”] == v.device) ```

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

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