【问题标题】:Tableau - How to query large data sources efficiently?Tableau - 如何有效地查询大型数据源?
【发布时间】:2018-05-24 15:28:52
【问题描述】:

我是 Tableau 新手,遇到了性能问题,需要一些帮助。我有一个连接几个大表的查询。我正在使用与 MySQL 数据库的实时数据连接。

我遇到的问题是它在向 MySQL 询问数据之前没有应用过滤条件。所以它本质上是从我的查询中执行 SELECT * 而不是将过滤条件应用于 where 子句。它将所有数据从 MySQL db 拉回 Tableau,然后根据我的筛选条件丢弃不需要的数据。我的两个主要过滤条件是 account_id 和日期范围。

我可以通过从我的帐户表中进行选择以填充过滤器列表来干净地获取帐户列表,然后需要知道在从 MySQL 的主数据查询中提取数据时如何应用该选择.

【问题讨论】:

    标签: tableau-api


    【解决方案1】:

    要先在数​​据源上应用过滤器,请尝试使用context filters

    使用extracts也可以提高性能。

    【讨论】:

      【解决方案2】:

      我会亲自使用数据提取,进入您的 MySQL 数据库后端,运行查询,然后使用 CREATE TABLE extract1 AS 语句,或者您想调用的任何数据表。

      当您将此表导入 Tableau 时,它已经在工作簿中包含您的聚合数据的 SELECT *。从这里您的查询效率将提高十倍。

      不幸的是,Tableau 处理时间 + mySQL 后端数据库查询时间 = Ntime 需要一段时间来处理您的数据。

      尝试提取物...

      【讨论】:

        【解决方案3】:

        我一直在为同样的事情苦苦挣扎。我发现 tableau 提取并不比直接从 SQL 表中提取快。我所做的是在 SQL 创建的表中已经包含过滤数据,因此 Select * 将只有所需的数据。这样做的缺点是它在服务器上占用了更多空间,但这对我来说不是问题。

        【讨论】:

        • 您可以在提取时应用过滤器和隐藏列,以仅提取 viz 所需的数据,而不是制作原始表的完整副本。如果您提取数据的目的是加快访问速度,那么这会产生很大的影响。
        【解决方案4】:

        对于大型数据集,Tableau 建议使用数据提取。 数据提取将创建您连接的数据的快照,并且处理此数据将比实时连接更快。

        每次访问仪表板时,所有图表和可视化的加载速度都会更快并节省您的时间。

        对于您用于过滤数据集的过滤器,在数据提取连接中工作得更快。但要获取最新数据,您必须在服务器中刷新数据提取或计划刷新(如果您正在将报告上传到服务器)。

        Tableau 中有多种类型的过滤器可用,具体使用取决于您的应用程序,上下文过滤器和全局过滤器可用于过滤整个数据集。

        【讨论】:

          猜你喜欢
          • 2021-12-23
          • 1970-01-01
          • 1970-01-01
          • 2019-01-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多