在Pentaho仪表板上接收和显示MQTT流

时间:2019-05-03 08:02:20

标签: mqtt pentaho pentaho-data-integration pentaho-cde

我正在尝试使用其CCC图在Pentaho仪表板中显示(和处理)传入的MQTT消息。

我尝试设置一个水壶转换,然后将其用作数据源上传到我的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 个答案:

答案 0 :(得分:1)

我发现使用websocket实现解决此问题的解决方案,但这并不是我真正需要的。

对于那些感兴趣的人:

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

基本上,它使用Java脚本来订阅MQTT代理并接收数据,然后您可以在仪表板中使用它。整个代码可以简单地注入到您的电路板设置中,随时可以使用。

这很容易解释,而且易于使用。

答案 1 :(得分:1)

解决此问题的正确方法是利用数据服务。

这是我想出的:

您可以使用Kettle接收MQTT数据并在转换中对其进行处理: kettle transformation

您可以通过右键单击->数据服务->新建将数据服务附加到任何步骤。 服务名称在所有数据服务中必须唯一,并且数据服务类型需要设置为流式传输:

dataServiceSetup

整个转换需要保存到Pentaho存储库(基本上是Pentaho的内部文件系统)

您可以按照以下说明创建仪表板:

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

为您分解:

  1. 在数据源面板中,您需要选择“流式传输数据服务”并输入流式数据服务名称以及查询。
  2. 参数需要设置为:

    • 窗口模式:基于行

    • 窗口大小:50(如果您想在仪表板中使用50个数据点)

    • 每隔一个窗口:1(这将确定图形的更新频率)

    • 窗口限制:0

  3. 在“组件”面板中,您需要选择所需的组件,并使用刚刚创建的数据源作为“数据源”。 参数需要设置如下:

    • 在执行时不要阻止UI:True

    • 执行前的清除:错误

  4. 创建一个前端布局,并将组件绑定到布局HTML对象。