【问题标题】:AWS Quicksight : How to use parameter value inside SQL (data set) to render dynamic data on dashboard?AWS Quicksight:如何使用 SQL(数据集)中的参数值在仪表板上呈现动态数据?
【发布时间】:2022-01-14 03:21:35
【问题描述】:

有一项规定是通过 URL 传递 quicksight 参数的值。但是如何使用SQL(数据集)内部参数的值来获取dashboard上的动态数据呢?

例如: 截至目前的查询:

select * from CITYLIST;

仪表板:

CITYLIST

city_name | cost_of_living
AAAAAAAAA | 20000
BBBBBBBBB | 25000
CCCCCCCCC | 30000

创建参数:cityName URL 触发:https://aws-------------------/dashboard/abcd123456xyz#p.cityName=AAAAAAAAA

不知何故,我需要在 SQL 中使用在 URL 中传递的值,以便我可以编写如下动态查询: select * from CITYLIST where city_name = SomeHowNeedAccessOfParameterValue;

【问题讨论】:

  • 您找到解决方案了吗?我也在寻找同样的解决方案。我也检查了参数,但它没有达到目的。我想要上面显示的类似实现

标签: amazon-web-services amazon-quicksight


【解决方案1】:

QuickSight 不提供直接通过 SQL 访问参数的方法。

相反,您应该create a filter from the parameter 来完成您的用例。

这实际上是 QuickSight 为您创建 WHERE 子句的方式。

这个设计决定对我来说很有意义。尽管它使您在 SQL 中无法控制过滤,但它使您的数据集更具可重用性(如果不提供参数,SQL 中会发生什么?)

【讨论】:

  • 是的 同意。但我希望它以某种方式在 SQL 中使用,因为假设有 10k 个城市,我希望根据某些单一标准(与用户相关)过滤 9k 个城市。在这种情况下,我可以通过参数发送用户并一次性过滤 9k 个城市,而不是通过参数发送 9k 个城市。有什么绝妙的方法吗?
  • @MohanNV 可能是行级安全的工作:docs.aws.amazon.com/quicksight/latest/user/…
  • @mjpy3,是的,我已经通过上述链接了。但它需要创建多个用户/组,并且每次创建都涉及成本。所以不能选择那个选项。
  • @MohanNV 创建用户不需要任何费用,而与多个用户一起访问则需要。此外,QuickSight 会限制它看到的同时来自同一用户的请求,因此如果您尝试支持“同时用户”用例,则“一个用户”系统并不能真正发挥作用。
【解决方案2】:

是的,现在它为您提供了 sql 编辑器,并且您可以将其用于相同目的

l

有关详细信息,请参阅以下参考 https://docs.aws.amazon.com/quicksight/latest/user/adding-a-SQL-query.html

【讨论】:

  • 但是我在哪里可以将参数传递给查询。查询编辑器早前也有。
【解决方案3】:

创建parameter, then control and then filter(“自定义过滤器”->“使用参数”)。

如果您为数据集选择直接查询选项和自定义SQL查询,则每次视觉更改/更新都会执行SQL查询 .

DB 端的最终查询将类似于 [自定义 SQL 查询] + WHERE 子句。

例如

视觉方面: 为控件 Control_1 选择值“A”、“B”、“C”;

数据库端: [自定义 SQL 来自数据集] + 'WHERE column in ("A", "B", "C")'

Quicksight 为您构建查询并在数据库端运行它。 这样可以减少通过网络发送的数据。

【讨论】:

    猜你喜欢
    • 2020-11-17
    • 2019-12-14
    • 1970-01-01
    • 2015-09-16
    • 1970-01-01
    • 2022-07-28
    • 2016-06-26
    • 2022-01-27
    • 1970-01-01
    相关资源
    最近更新 更多