【问题标题】:Dynamic query using parameters in Tableau使用 Tableau 中的参数进行动态查询
【发布时间】:2017-11-29 02:33:33
【问题描述】:

我正在尝试利用 tableau 创建 Web 仪表板,以与具有大量行的 postgres 数据库进行交互。

这里的关键是相关数据在纬度/经度范围内,所以我在自定义 SQL 语句中使用 tableau 参数来获取我需要的内容,就像这样

SELECT id, lat, lng... FROM my_table
WHERE lat >= <Parameters.MIN_LAT> AND lat <= <Parameters.MAX_LAT>
AND lng >= <Parameters.MIN_LNG> AND lng <= <Parameters.MAX_LNG>
LIMIT 10000

我正在使用基于 Google 地图小部件边界的 Tableau JavaScript API 设置这些参数。当地图移动时,我会刷新参数,数据也需要更新。这种刷新不是经常进行的,但频率足够长,等待时间过长是不可接受的。

因为 lat/lng 边界是动态的,并且完整的未过滤表非常大(~1GB),我认为创建数据提取是不切实际的。我错了吗?

此外,当我更改一些我正在应用的 Tableau 内筛选器时,会等待很长时间,就好像它每次都在重新执行查询一样,即使 MIN_LAT、MAX_LAT、.. 参数不是改变了。

解决此问题的最佳方法是什么?我是 Tableau 新手,如果我遗漏了一些非常明显的东西,非常抱歉!

谢谢。

【问题讨论】:

  • 我先试一试,这将提高您在 Tableau Desktop 上的性能并帮助您解决过滤器延迟问题。如果您不使用数据提取,则查询将在每次交互时运行。
  • 您不需要为此自定义 SQL。常规过滤器可以正常工作,并且可以更好地让 Tableau 生成高效的 SQL

标签: sql postgresql tableau-api bigdata


【解决方案1】:

解决这个问题的最佳方法,是使用较少的信息进行查询(1GB 太多了,提取可以帮助对数据进行分组以非常快速地呈现维度,但仅此而已。 . 如果没有可分组的内容,它将非常广泛),这允许进行向下钻取以提供有关后续步骤或仪表板级别的更多信息。 我正在考虑数据库的一个字段,它可以告诉呈现信息的缩放级别。 如果您在 googlemaps 上导航...首先您会找到国家,然后是首都,然后是城市,然后是小镇,然后是当地商店...

关键在于您每次的缩放级别。

You may visit Tableau about Drill downs.

【讨论】:

    猜你喜欢
    • 2016-07-03
    • 1970-01-01
    • 1970-01-01
    • 2014-06-28
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    相关资源
    最近更新 更多