Прием и отображение потока MQTT на панели инструментов Pentaho - PullRequest
1 голос
/ 03 мая 2019

Я пытаюсь отключить (и обработать) входящие MQTT-сообщения на панели инструментов Pentaho, используя их CCC-диаграммы.

Я попытался настроить преобразование чайника, которое затем загрузил на свой сервер Pentaho.использовать его в качестве источника данных. (Я проверил выполнение преобразования в рамках ложки, и это сработало, поэтому проблема должна быть в другом месте).Когда я пытаюсь отобразить панель мониторинга, она сообщает мне «Компонент обработки ошибок (имя компонента)», а сервер выдает это исключение:

Caused by: org.pentaho.reporting.libraries.resourceloader.ResourceCreationException: Unable to parse the document: ResourceKey{schema=pt.webdetails.cda.settings.CdaRepositoryResourceLoader:, identifier=/home/admin/MqttReceive2.ktr, factoryParameters={}, parent=null}
...

Что я делаю неправильно?Есть ли правильный способ сделать это?

ура

Редактировать: я нашел решения, работающие вокруг этой проблемы с использованием реализации websocket, но это не совсем то, что мне нужно.

Ответы [ 2 ]

1 голос
/ 21 мая 2019

Правильный способ решить эту проблему - использовать службу данных.

Вот что я придумал:

Вы можете использовать Kettle для получения MQTT-данных и обработки их в рамках вашего преобразования: kettle transformation

Вы можете прикрепить службу данных к любому шагу, щелкнув правой кнопкой мыши-> Службы данных-> Создать. Имя службы должно быть уникальным среди всех служб данных, а тип службы данных должен быть установлен на потоковую передачу:

dataServiceSetup

Вся трансформация должна быть сохранена в хранилище Pentaho (в основном внутренняя файловая система Pentaho)

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

https://help.pentaho.com/Documentation/8.2/Products/CTools/Create_Streaming_Service_Dashboard

Чтобы разбить его для вас:

  1. На панели источника данных вам нужно выбрать «потоковая передача по службе данных» и ввести имя службы потоковой передачи данных, а также запрос.
  2. Параметры должны быть установлены на:

    • Оконный режим: на основе строк

    • Размер окна: 50 (если вы хотите работать с 50 точками данных на панели инструментов)

    • Window Every: 1 (определяет частоту, с которой ваш график будет обновляться)

    • Ограничение окна: 0

  3. На панели компонентов вам нужно выбрать компонент по вашему выбору и использовать источник данных, который вы только что создали, как «Источник данных». Параметры должны быть установлены следующим образом:

    • Не блокировать пользовательский интерфейс при выполнении: True

    • Сбрасывает перед выполнением: False

  4. Создание внешнего макета и привязка компонента к объекту HTML макета.

1 голос
/ 03 мая 2019

Я нашел решения, работающие вокруг этой проблемы, используя реализацию websocket, но это не совсем то, что мне нужно.

Для тех, кому интересно:

https://github.com/thomaslaurenson/MQTT-Subscription-Examples

в основном он использует java-скрипт для подписки на MQTT-брокер и получения данных, которые вы затем можете использовать в своей панели инструментов. Весь код может быть просто введен в настройку вашей платы и готов к использованию.

Это довольно понятно и просто в использовании.

...