2017-04-11 58 views
0

希望有人能够帮助我为正在进行的项目提供最佳方式。R实时MS BI环境

我的雇主使用MS BI堆栈 - SSRS,SSIS,SQLSERVER,等等 - 与开发商有建于C#和ASP.Net一个门户网站,以显示在仪表盘格式实时管理报告。实时我的意思就是这个。随着基础数据的变化,它在白天会进行多次,信息显示板上显示的信息也会变化。

我已经开发了原型的仪表板,其中R和闪亮仪表板是多个图形,交互和包括反应性组分和机器学习分析一个Ubuntu虚拟服务器上运行。

每个人都对仪表板,特别是图形印象深刻(gglot an plotly),管理层希望将分析和图形组件整合到现有门户中,从而消除对Ubuntu和Shiny的依赖。因为它只是一个原型,但它使用的是在SQL服务器中创建的文件,并且每晚作为csv导出到与Ubuntu共享的文件夹中。在这个文件夹中,Shiny/R读取文件并生成可视化文件,并根据请求运行模型。到目前为止,我们刚刚创建了指向闪亮服务器的iframe,但管理层对此方法并不满意。他们希望将R模型和图形集成到实时门户中。

我知道的SQL Server 2016捆绑[R服务,我们已经开始玩这个,但你怎么把真实时间R分析和图形到现有的MS/.NET叠加么?

干杯 安德鲁

+0

最简单的是在powerBI R脚本中重新创建图形,但不会有交互 – HubertL

+0

[Windows,Mac OS X和其他操作系统当前不支持Shiny服务器平台](https:// www。 rstudio.com/products/shiny/download-server/) – HubertL

+0

[使用从OLAP立方体中的R数据](https://docs.microsoft.com/en-us/sql/advanced-analytics/r-services/using-来自olap-cubes-in-r的数据) – HubertL

回答

0

这听起来像你可能有光泽的reactivePoll功能,这将触发每次有检查函数返回一个不同的值时新的数据调查了良好的使用情况。

你需要写一个checkFunc,这是对SQL Server数据进行快速检查,看看你的数据发生了变化。然后,您需要编写一个valueFunc,当checkFunc指示底层值已更改时,它将返回您的应用的数据。最后,您需要确定运行checkFunc以及参数intervalMillis的频率。

这可以让你使用闪亮近乎实时的分析,而无需重建它在其他平台上。但是,如果管理层坚持要离开Ubuntu服务器,这是行不通的。

你可以尝试使用plotly.js您plotly图形重写,并使用.NET触发器在服务器上重新运行[R脚本的实时管道的一部分,为您的plotly.js JSON数据情节,但你也可以使用reactivePoll来达到同样的效果......管理层是否有很好的理由来处理这个请求?当R和Shiny生成分析和价值时,这听起来像是很多工作,为什么试图将圆钉嵌入方孔?

+0

我似乎回想起https://www.rstudio.com/resources/videos/airbnb/处理类似的事情。我认为他们设置了一个计划任务,将必要的数据以任意频率导出到CSV文件,然后使用'reactiveFileReader'从CSV中获取更改。这不是真正的实时,但可能会非常接近。 – Benjamin

+1

是的,'reactivePoll'就像'reactiveFileReader',只是它用于数据库源或网络源。您可以快速检查您的SQL Server表中的某些内容,如“最近更新”,并且只有下载数据/运行您的查询,如果这个便宜的函数返回不同的结果。如果你的工作时间是毫秒,'intervalMillis',我会说这是非常实时的;) –

+0

感谢您的建议,并且肯定会研究一些事情。想要摆脱Ubuntu和Shiny的原因是因为我是一个承包商,虽然我已经完成了我的简短寻找一种方法来使用户体验更加直观和交互,并为他们提供了一些分析工具,但他们没有拥有内部的技能,可以维护和管理服务器和R(我认为他们不愿意培训我提供的员工)。 –