在 Pentaho 仪表板接收和显示 MQTT 流
Receive and Display MQTT Stream at Pentaho Dashboard
我正在尝试使用他们的 CCC 图表在 Pentaho 仪表板中显示(和处理)传入的 MQTT 消息。
我尝试设置一个 kettle 转换,然后将其上传到我的 Pentaho 服务器并将其用作数据源。(我测试了 运行 在 spoon 中进行的转换并且它有效,所以问题应该出在某个地方别的)。当我尝试显示仪表板时,它告诉我 'Error processing component(component name)' 而服务器抛出此异常:
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 实现解决此问题的解决方案,但这并不是我所需要的。
有兴趣者:
https://github.com/thomaslaurenson/MQTT-Subscription-Examples
基本上它使用 java 脚本订阅 MQTT 代理并接收数据,然后您可以在仪表板中使用这些数据。整个代码可以简单地注入到您的电路板设置中并准备好使用。
它不言自明且易于使用。
解决这个问题的正确方法是使用数据服务。
这是我想出的:
您可以使用 Kettle 接收 MQTT-Data 并在您的转换中处理它:
您可以将数据服务附加到任何步骤,方法是右键单击->数据服务->新建
服务名称需要在所有数据服务中唯一,数据服务类型需要设置为streaming:
整个转换需要保存到 Pentaho 存储库(基本上是 Pentaho 的内部文件系统)
有了这个,您可以按照以下说明创建仪表板:
https://help.pentaho.com/Documentation/8.2/Products/CTools/Create_Streaming_Service_Dashboard
为您分解:
- 在数据源面板中,需要select'streaming over data service'输入一个流式数据服务名称,以及查询。
需要设置的参数为:
Window 模式:基于行
Window 大小:50(如果您想在仪表板中使用 50 个数据点)
Window 每:1(这决定了图表更新的频率)
Window 限制:0
在组件面板中,您需要select您选择的组件并使用您刚刚创建的数据源作为'Datasource'。
需要设置的参数如下:
执行时不要阻止 UI:正确
预执行前清除:假
创建前端布局并将组件绑定到布局 HTML 对象。
我正在尝试使用他们的 CCC 图表在 Pentaho 仪表板中显示(和处理)传入的 MQTT 消息。
我尝试设置一个 kettle 转换,然后将其上传到我的 Pentaho 服务器并将其用作数据源。(我测试了 运行 在 spoon 中进行的转换并且它有效,所以问题应该出在某个地方别的)。当我尝试显示仪表板时,它告诉我 'Error processing component(component name)' 而服务器抛出此异常:
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 实现解决此问题的解决方案,但这并不是我所需要的。
有兴趣者:
https://github.com/thomaslaurenson/MQTT-Subscription-Examples
基本上它使用 java 脚本订阅 MQTT 代理并接收数据,然后您可以在仪表板中使用这些数据。整个代码可以简单地注入到您的电路板设置中并准备好使用。
它不言自明且易于使用。
解决这个问题的正确方法是使用数据服务。
这是我想出的:
您可以使用 Kettle 接收 MQTT-Data 并在您的转换中处理它:
您可以将数据服务附加到任何步骤,方法是右键单击->数据服务->新建 服务名称需要在所有数据服务中唯一,数据服务类型需要设置为streaming:
整个转换需要保存到 Pentaho 存储库(基本上是 Pentaho 的内部文件系统)
有了这个,您可以按照以下说明创建仪表板:
https://help.pentaho.com/Documentation/8.2/Products/CTools/Create_Streaming_Service_Dashboard
为您分解:
- 在数据源面板中,需要select'streaming over data service'输入一个流式数据服务名称,以及查询。
需要设置的参数为:
Window 模式:基于行
Window 大小:50(如果您想在仪表板中使用 50 个数据点)
Window 每:1(这决定了图表更新的频率)
Window 限制:0
在组件面板中,您需要select您选择的组件并使用您刚刚创建的数据源作为'Datasource'。 需要设置的参数如下:
执行时不要阻止 UI:正确
预执行前清除:假
创建前端布局并将组件绑定到布局 HTML 对象。