【问题标题】:How to inject (dynamic?) Parameters in Tableau CustomSQL如何在 Tableau CustomSQL 中注入(动态?)参数
【发布时间】:2017-11-16 08:49:32
【问题描述】:

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

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

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

我在这里https://www.interworks.com/de/blog/daustin/2015/12/17/dynamic-parameters-tableau 找到了这个解决方法,它似乎有效,但看起来……一种解决方法。

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

  • 对我来说计算所有 CustomerNames 的所有 KPI 是不可行的 然后按 Tableau 过滤,因为数据量太大了。
  • 用 Tableau Calculations 替换 CustomSQL 是不可行的 和过滤器(已经尝试过,最终让 Tableau 拉 太多的数据,而不是将工作推到数据库中)。

我不敢相信 Tableau 在这里没有提供解决方案,因为我相信用例很常见。

你有什么意见吗?

提前感谢您的帮助!

亲切的问候

【问题讨论】:

  • 您在第二个项目符号中是指“Tableau 计算”还是“表格计算”?表计算确实可以将过多的数据拉到客户端,但是 LOD 计算是在服务器端实现的。我会试一试。您还可以阅读有关原始 SQL 函数的信息,但它们并不适合所有情况

标签: tableau-api


【解决方案1】:

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

rawsql_int(your_db_schema.foo(%1,%2),[startDateFieldTableau],[endDateFieldTableau])

但你可以直接访问它:

rawsql_int("select sum(bar) from sales")

但这有点冒险。

缺点:

  • 它依赖于当前连接(您创建了一个计算字段(呃!)
  • 它不适用于提取(但无论如何您都在使用自定义 sql,所以我相信您更喜欢实时连接

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多