2017-04-11 35 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(我認爲他們不願意培訓我提供的員工)。 –