Skip to main content

Обробка даних

Ми вже бачили, що Fledge може збирати дані з різних джерел, буферизувати їх локально та надсилати в одну або декілька систем призначення. Також можна обробляти дані в Fledge, щоб редагувати, доповнювати або видаляти дані під час проходження системою Fledge. Подібно до того, як Fledge широко використовує компоненти плагінів для додавання нових джерел даних і нових місць призначення для цих даних, Fledge також використовує плагіни для додавання фільтрів обробки до системи Fledge.

Навіщо використовувати фільтри?

Концепція фільтрів полягає у створенні набору невеликих, корисних шматочків функціональності, які можна вставити в потік даних із південної сторони входу даних до північної сторони виходу даних. Роблячі ці елементи невеликими і присвяченими одному завданню, збільшується можливість повторного використання фільтрів і значно покращуються шанси, коли винікає нова вимога, що її можна задовольнити шляхом створення трубопроводу фільтрів з існуючих компонентів або доповнюючи наявні компоненти за допомогою додавання будь-якої необхідної додаткової обробки. Кінцевою метою є мати можливість створювати нові додатки всередені Fledge, просто налаштувавши фільтри з наявного пулу доступних фільтрів у відповідний трубопровід без необхідності писати новий код.

Що можна зробити?

Обробка даних виконується за допомогою плагінів, відомих як фільтри у Fledge, тому неможливо дати остаточний список усіх різних видів обробки, які можуть відбуватися, мета дизайну полягає в тому, щоб він міг розширюватися користувачем. Загальні типи речей, які можна зробити:

  • Змінити значення в показаннях. Це може бути таким же простим, як застосування масштабного коефіцієнта для перетворення з одного масштабу вимірювання в інший або більш складна математична операція.
  • Змініти назви активів або точок даних. Виконайте просту текстову заміну, щоб змінити назву активу або точки даних у цьому активі.
  • Додати нову обчислену величину. Нову величину можна обчислити з набору велечин, заснованих на певному періоді часу або на основі комбінації різних велечин, наприклад розрахувати потужність за напругою та струмом.
  • Додати метадані до активу. Це дозволяє додавати такі дані, як одиниці вимірювання або інформацію про джерело даних.
  • Стиснути дані. Надсилайте дані лише тоді, коли самі дані показують значні зміни порівняно з попередніми значеннями. Це може бути корисною технікою для економії пропускної здатності в мережевих підключеннях з низькою пропускною здатністю або дорогими.
  • Умовно передати дані. Надсилайте дані лише тоді, коли виконується умова, або надсилайте дані з низькою швидкістю, якщо не виконується якась цікава умова.
  • Додати умови до даних. Видаліть дані з потоку даних, якщо значення є підозрілими або виходять за межі прийнятних умов.

Де це можна зробити?

Фільтри можна застосовувати у двох місцях системи Fledge:

  • У південному сервісі як дані, що надходять у Fledge, і до цього додаються до підсистеми зберігання для буферизації.
  • У північних завданнях, коли дані надсилаються до систем, які отримують дані від системи Fledge.

До одного півдня або півночі в екземплярі Fledge можна додати більше одного фільтра. Фільтри розміщуються в упорядкованому трубопроводі фільтрів, які застосовуються до даних у порядку трубопроводу. Вихід першого фільтра стає входом другого. Таким чином, фільтри можна комбінувати для виконання складних наборів операцій над певним потоком даних у Fledge або поза ним.

Той самий плагін фільтра може з’являтися в кількох місцях у трубопроводі фільтра, для кожного створюється окремий екземпляр, і кожен має власну конфігурацію.

Додавання південного фільтра

У наступному прикладі ми додамо фільтр до південного сервіса. Фільтр, який ми будемо використовувати, — це фільтр expression, і ми перетворимо вхідне значення в логарифмічну шкалу. Південний модуль, використаний у цьому простому прикладі, — це плагін sinusoid, який створює симуляцію синусоїди.

Процес починається з вибору сервісів South у графічному інтерфейсі Fledge на панелі меню ліворуч. Потім натисніть на південний сервіс, що вас цикавить. Відкриється діалогове вікно, яке дозволяє редагувати південний сервіс.

filter_south

У нижній частині цього діалогового вікна є розділ з позначкою Applications зі значком + праворуч, виберіть значок +, щоб додати фільтр до південного сервіса. Відкриється майстер фільтрів, за допомогою якого можна вибрати фільтр, який ви бажаєте додати, і дати цьому фільтру назву.

filter_add

Виберіть фільтр expression і введіть назву в діалоговому вікні. Тепер натисніть кнопку Next. З’явиться нова сторінка майстра, на якій можна налаштувати фільтр.

filter_expression

У випадку нашого фільтра виразів ми повинні додати вираз, який ми хочемо виконати log(sinusoid), і назву точки даних, у яку ми хочемо помістити результат, LogSine. Ми також можемо увімкнути або вимкнути виконання цього фільтра. Ми ввімкнемо його та натиснемо Done, щоб завершити додавання фільтра.

Натисніть Save в південному діалоговому вікні редагування, і тепер наш фільтр встановлено та працює.

Якщо ми виберемо опцію Assets & Readings на панелі меню, ми зможемо перевірити актив синусоїди та переглянути графік цього активу. Тепер ми побачимо, що додано другу точку даних, LogSine, яка є результатом виконання нашого виразу у фільтрі.

filter_data

Таким же чином можна додати другий фільтр, наприклад фільтр metadata для створення трубопроводу. Тепер, коли ми повернемось і переглянемо південний сервіс, ми побачимо дві програми в діалоговому вікні.

filter_pipeline

Перевпорядкування фільтрів

Порядок застосування фільтрів можна змінити в діалоговому вікні південного сервіса, клацнувши та перетягнувши один фільтр над іншим у розділі Applications діалогового вікна.

filter_reorder

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

Редагування конфігурації фільтра

Конфігурацію фільтрів можна змінити в діалоговому вікні південного сервіса, вибравши стрілку вниз праворуч від назви фільтра. Це відкриє область редагування для цього фільтра та покаже конфігурацію, яку можна змінити.

filter_edit

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

Додавання фільтрів на Північ

Фільтри також можна додати на північ так само, як і на південь. Можна застосувати той самий набір фільтрів, однак деякі з них можуть бути менш корисними на півночі, ніж на півдні, оскільки вони застосовуються до всіх активів, які надсилаються на північ.

У цьому прикладі ми використаємо фільтр метаданих, щоб позначити всі дані, які надходять на північ, як такі, що надходять через певний екземпляр Fledge. Як і у випадку зі сервісом South, ми починаємо з вибору нашого північного завдання з пункту меню North на панелі меню ліворуч.

filter_north

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

filter_select

Після натискання Next вам буде показано сторінку конфігурації для конкретного вибраного фільтра. Ми відредагуємо JSON, який визначає теги метаданих, щоб додати та встановити назву floor і значення 1.

filter_floor

Після ввімкнення та натискання Done ми зберігаємо зміни півночі. Усі активи, надіслані до цього з’єднання PI Server, тепер будуть позначені тегом «floor» і значенням «1».

Незважаючи на те, що це простий приклад маркування даних, тут можна зробити інші речі, наприклад обмежити швидкість, яку ми надсилаємо дані на PI Server, доки цікава умова не стане істинною, можливо, щоб заощадити витрати на дороге з’єднання або запобігти перетворенню мережі завантажений до нормальних робочих умов. Іншим варіантом може бути блокування певних активів від надсилання за цим посиланням, це може бути корисним, якщо у вас є два пункти призначення, і ви хочете надіслати підмножину активів кожному.

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

Декілька корисних фільтрів

Тут варто згадати кілька простих фільтрів, повний список доступних на даний момент фільтрів у Fledge можна знайти в розділі .

Scale

Фільтр fledge-filter-scale застосовує масштабний коефіцієнт і зсув до числових значень в межах активу. Це корисно для таких операцій, як зміна одиниці вимірювання значення. Прикладом може бути перетворення показника температури з градусів Цельсія на градуси Фаренгейта.

Metadata

Фільтр fledge-filter-metadata додасть метадані до активу. Це можна використовувати для додавання до даних такої інформації, як одиниці вимірювання, дані машини (марка, модель, серійний номер) або місцезнаходження активу.

Delta

Фільтр fledge-filter-delta дозволяє видаляти повторювані дані, пересилаючи лише ті дані, які змінюються більш ніж на настроюваний відсоток. Це може бути корисно, якщо значення не змінюється часто, і є бажання не пересилати всі подібні значення, щоб зберегти пропускну здатність мережі або зменшити вимоги до пам’яті.

Rate

Фільтр fledge-filter-rate подібний до наведеного вище дельта-фільтра, однак він пересилає дані з фіксованою швидкістю, яка нижча за швидкість надходження даних, але може надсилати дані з повною швидкістю, якщо буде виявлено цікавий стан. Фільтр налаштовано зі швидкістю надсилання даних, значення, надіслані з цією швидкістю, є середніми значень, отриманих з моменту надсилання останнього значення.

Швидкість одного вимірювання за хвилину, наприклад, усереднює всі значення за 1 хвилину, а потім надсилає це середнє значення як показання в кінці цієї хвилини. Можна додати умову, коли ця умова спрацьовує, усі дані пересилаються з повною швидкістю вхідних даних, доки не спрацює наступна умова, яка призведе до відновлення зниженої швидкості.