2016-02-05 192 views
0

我想使用Tableau生成報告。但是,C#中有大量業務邏輯動態地計算某些屬性,以生成我想要輸入到Tableau報表中的數據集,因此某些列不存在於SQL表中。從Tableau調用C#方法

Tableau調用C#代碼生成動態列以運行報表的方法有哪些?

+0

如果您是通過Web服務或其他Web訪問機制公開C#代碼,則可以編寫Web連接器以便在Tableau中使用該代碼訪問代碼。 http://www.tableau.com/web-data-connector。我不知道這是否滿足您的動態列需求。 –

+0

除了一個因素外,數據對於Web服務來說太大了,我認爲......通常是30k條記錄來生成報告。 – TruMan1

+0

這會受到提供數據的Web服務器的限制。您可以增加服務器超時時間以適應更長的響應時間。 –

回答

1

一種選擇是讓C#程序以Tableau可以接收的格式(csv,數據庫表或Tableau提取)生成表格。 Tableau SDK包含可以從C#調用以生成Tableau Data Extract(.tde)文件的例程。

然後您可以按計劃或按需執行這些程序。如果生成TDE文件,則可以使用REST API將其推送到Tableau Server,以便多個Tableau工作簿可以引用它。

如果您的批量數據可能超過Web服務數據連接器可以有效處理的數據更新頻率(例如,每晚或每小時更新一次),那麼此方法可以很好地工作。它還從您的系統中卸載報告查詢負載。當數據頻繁更改時,這不一定是最好的方法,並且您的報告要求必須能夠及時發現最新的變化。

如果你走這條路線,就爲他們支持的可視化設計抽象。爲獲得最佳性能,僅包含可視化所需的數據和詳細程度 - 例如彙總日期。另外,少數目標提取物通常比一個試圖複製數據庫的每個細節的巨型提取物執行得更好。