Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Tableau调用C#方法_C#_.net_Sql Server_Tableau Api - Fatal编程技术网

从Tableau调用C#方法

从Tableau调用C#方法,c#,.net,sql-server,tableau-api,C#,.net,Sql Server,Tableau Api,我想使用Tableau生成报告。然而,C#中有大量的业务逻辑动态计算某些属性,以生成我想要输入Tableau reporting的数据集,因此SQL表中不存在某些列 Tableau有没有办法调用C#代码来生成动态列以运行报告?一个选项是让您的C#程序以Tableau可以接收的形式生成表,即csv、数据库表或Tableau提取。Tableau SDK具有可从C#调用的例程,以生成Tableau数据提取(.tde)文件 然后,您可以按计划或按需执行这些过程。如果生成一个TDE文件,可以使用RESTA

我想使用Tableau生成报告。然而,C#中有大量的业务逻辑动态计算某些属性,以生成我想要输入Tableau reporting的数据集,因此SQL表中不存在某些列


Tableau有没有办法调用C#代码来生成动态列以运行报告?

一个选项是让您的C#程序以Tableau可以接收的形式生成表,即csv、数据库表或Tableau提取。Tableau SDK具有可从C#调用的例程,以生成Tableau数据提取(.tde)文件

然后,您可以按计划或按需执行这些过程。如果生成一个TDE文件,可以使用RESTAPI将其推送到Tableau服务器,以便多个Tableau工作簿可以引用它

当您拥有的海量数据可能超过web服务数据连接器可以有效处理的数据量时,以及当您的数据更新频率适中时(例如,当夜间或每小时的更新足够时),这种方法非常有效。它还可以从系统中卸载报告查询负载。当您的数据频繁更改时,它不一定是最佳方法,而且您的报告要求必须能够看到最新的更改

如果你走这条路,为他们支持的可视化设计你的摘录。为了获得最佳性能,只包括可视化所需的数据和详细程度,例如汇总日期


此外,少量目标提取通常比一个试图复制数据库每个细节的巨型提取性能更好。

如果您是C代码,则可以通过web服务或其他web可访问机制公开代码,您可以编写一个web连接器,在Tableau中使用它来访问代码。但我不知道这是否满足了您对动态列的要求。它确实满足了您的要求,除了一个因素,我认为数据对于web服务来说太大了。。通常,生成一份报告需要30k条记录。这将受到提供数据的web服务器的限制。您可以增加服务器超时时间以适应更长的响应时间。