实时 MS BI 环境中的 R

R in a real time MS BI environment

希望有人能为我正在从事的项目提供最好的前进方式。

我的雇主使用 MS BI 堆栈 - SSRS、SSIS、SQLServer 等 - 开发人员用 C# 和 ASP.Net 构建了一个 Web 门户,以显示实时管理报告仪表板格式。我所说的实时就是这个意思。随着基础数据的变化,就像一天中多次变化一样,仪表板上显示的信息也会发生变化。

我在 Ubuntu 虚拟服务器上使用 R 和 Shiny Dashboard 运行 开发了原型仪表板,它更加图形化、交互性更强,并且包括反应组件和机器学习分析。

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

我知道 SQL Server 2016 捆绑了 R 服务,我们已经开始使用它,但是如何将实时 R 分析和图形整合到现有的 MS/.Net 堆栈中?

干杯 安德鲁

听起来您可能对 shiny 的 reactivePoll 函数有一个很好的用例,它会在每次检查函数 returns 不同值时触发新的数据轮询。

您需要编写一个 checkFunc,这是对 SQL 服务器数据的快速检查,以查看您的数据是否已更改。然后,当 checkFunc 指示基础值已更改时,您将需要编写一个 valueFunc returns 您应用的数据。最后,您需要确定使用 intervalMillis 参数 运行 checkFunc 的频率。

这可以让您使用 Shiny 进行接近实时的分析,而无需在另一个平台上重建它。但是,如果管理层坚持要离开 Ubuntu 服务器,这将行不通。

您可以尝试使用 plotly.js 重写您的 plotly 图形,并使用 .NET 触发器重新 运行 服务器上的 R 脚本作为实时管道的一部分来生成json 数据用于您的 plotly.js 地块,但您也可以只使用 reactivePoll 来达到同样的效果……管理层对此请求有充分的理由吗?当分析和价值由 R 和 Shiny 生成时,这听起来像是很多工作,为什么要尝试将圆钉装入方孔?