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

在Pentaho仪表板上接收和显示MQTT流,mqtt,pentaho,pentaho-data-integration,pentaho-cde,Mqtt,Pentaho,Pentaho Data Integration,Pentaho Cde,我试图在Pentaho仪表板中显示(和处理)传入的MQTT消息,使用它们的CCC图表 我尝试设置一个kettle转换,然后将其上传到Pentaho服务器,并将其用作数据源(我测试了在spoon中运行转换,结果成功了,所以问题应该在其他地方)。当我尝试显示仪表板时,它会告诉我“错误处理组件(组件名称)”,而服务器会引发此异常: Caused by: org.pentaho.reporting.libraries.resourceloader.ResourceCreationException: U

我试图在Pentaho仪表板中显示(和处理)传入的MQTT消息,使用它们的CCC图表

我尝试设置一个kettle转换,然后将其上传到Pentaho服务器,并将其用作数据源(我测试了在spoon中运行转换,结果成功了,所以问题应该在其他地方)。当我尝试显示仪表板时,它会告诉我“错误处理组件(组件名称)”,而服务器会引发此异常:

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实现可以解决此问题,但这不是我所需要的。

我发现使用websocket实现可以解决此问题,但这不是我所需要的

对于感兴趣的人:

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


它非常简单易懂。

解决这个问题的正确方法是使用数据服务

以下是我的想法:

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

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

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

通过此操作,您可以按照以下说明创建仪表板:

要为您细分:

  • 在datasource面板中,您需要选择“通过数据服务进行流式传输”,并输入流式数据服务名称以及查询
  • 需要将参数设置为:

    • 窗口模式:基于行

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

    • 窗口间隔:1(这决定了图形更新的频率)

    • 窗口限制:0

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

    • 执行时不阻止UI:True

    • 执行前清除:False

  • 创建正面布局并将组件绑定到布局HTML对象


  • 请不要编辑问题以包含解决方案。如果您有一个解决方案,请将其添加为适当的答案(包括足够的细节以便对其他人有用),然后可以对其进行投票并将其标记为接受。这基本上是一个仅链接的答案,当链接断开时,答案将变得无用。请至少用链接所指内容的基本细节更新答案。