Tableau api 如何在Tableau CustomSQL中注入(动态?)参数

Tableau api 如何在Tableau CustomSQL中注入(动态?)参数,tableau-api,Tableau Api,我目前试图在Tableau中解决以下问题: 最后,我希望有一个Tableau仪表板,用户可以在其中选择客户,然后查看客户的KPI。到目前为止还没有什么壮观的场面 要获取客户的KPI,有一个带有参数“CustomerName”(返回该客户的KPI)的CustomSQL查询 现在的问题是: 我不想有一个硬编码的客户名称列表,因为它可能与Tableau参数。相反,应该从另一个数据源获取客户名称。我没有找到将参数“链接”到数据源和/或将静态参数以外的内容注入CustomSQL的方法。 我的问题:是否真的

我目前试图在Tableau中解决以下问题: 最后,我希望有一个Tableau仪表板,用户可以在其中选择客户,然后查看客户的KPI。到目前为止还没有什么壮观的场面

要获取客户的KPI,有一个带有参数“CustomerName”(返回该客户的KPI)的CustomSQL查询

现在的问题是: 我不想有一个硬编码的客户名称列表,因为它可能与Tableau参数。相反,应该从另一个数据源获取客户名称。我没有找到将参数“链接”到数据源和/或将静态参数以外的内容注入CustomSQL的方法。 我的问题:是否真的没有解决方案,或者我只是做错了什么(我希望如此)

我在这里找到了一个似乎有效的解决办法,但看起来。。。变通办法

一些背景信息: 我必须坚持使用CustomSQL,因为

  • 我无法计算所有客户的所有KPI 然后根据表格进行过滤,因为数据量太大
  • 用Tableau计算替换CustomSQL是不可行的 过滤器(已经尝试过了)最终导致了Tableau的出现 数据太多,而不是将工作推送到数据库)
我不能相信Tableau在这里没有提供解决方案,因为我相信用例非常常见

你对我有什么意见吗

提前感谢您的帮助


您是否尝试过在数据库端使用
rawsql()
函数和存储函数?当需要从与当前使用的数据源完全无关的数据集中加载单个值时,我发现它非常有用。 例如,运行
foo
存储函数,该函数接受2个日期和计算出的某物的总和,语法应该如下所示:

rawsql_int(your_db_schema.foo(%1,%2),[startDateFieldTableau],[endDateFieldTableau])
但您可以直接访问它:

rawsql_int("select sum(bar) from sales")
但这有点冒险

缺点:

  • 它依赖于当前连接(您创建了一个计算字段(duh!)
  • 它不会与extract一起工作(但您无论如何都在使用自定义sql,所以我相信您更喜欢实时连接)
您的第二个项目符号中的“Tableau calculations”或“table calculations”是指“Tableau calculations”还是指“table calculations”?table calculations确实可能会将太多数据拉到客户端,但LOD计算是在服务器端实现的。我想尝试一下。您也可以阅读原始SQL函数,但它们并不适合所有情况