【发布时间】:2019-09-04 23:46:22
【问题描述】:
我使用 Tableau 并且有一个包含 140 个字段的表。由于表格的大小/宽度,性能很差。我想删除字段以提高阅读速度,但我的用户群如此之大,每个字段至少有一个人使用,而 90% 使用相同的 ~20 个字段。
这个问题的最佳解决方案是什么? (Tableau 是我们的 BI 工具,BigQuery 是我们的数据库)
到目前为止我做了什么: 在 Tableau 中,不清楚如何使用根据所选字段更改的动态数据源。理想情况下,我希望有更小的视图或非规范化表。当用户在 Tableau 中进行选择时,基础数据源会更新为具有该字段的表或视图。
我尝试了大视图的简单版本,但它的性能比我的大表差,并且读取的数据明显更多(请记住,我是 BigQuery,因此由于成本,我非常关心读取的字节数)
【问题讨论】:
-
你确定是表格宽度有问题吗?我读了 10 秒钟的 bigquery doco,它没有提到宽度。您是否进行了测试以确认较窄的表格更快? Tableau 不是只选择它需要的字段吗?
-
感谢@Nick.McDermaid。您完全正确,宽度不一定是问题。但是,在我的情况下,更大的宽度会导致更高的基数。这就是为什么我想尽可能地减少。而且,也是如此 - Tableau 仅显示选定的字段。但是,与上述相同,由于增加了基数的附加字段,该字段可能会长 1.5 倍。欣赏这个想法!继续前进。
-
Tableau 不仅显示可视化项中使用的字段 - 它仅查询有关这些字段的数据源。您可以将 Tableau 数据源视为定义一系列可能的 SQL 查询,并且 Tableau 会根据您在该视图中实际使用的字段生成优化的 SQL 查询。所以拥有很多列并不一定很昂贵。
-
两个提示 1. 如果您的数据库强制执行引用完整性(例如,不存在的行没有外键),那么如果您从 Data 中选择“Assume Referential Integrity”选项,Tableau 可以生成更高效的 SQL菜单。特别是。对于星型和雪花型模式很有用。 2. 使用 Tableau 性能记录(在帮助菜单下)或 Tableau 日志查看器(开源应用程序)查看生成的实际 SQL。要评估性能,请将其粘贴到 SQL 客户端并进行实验、查看查询计划、检查统计信息等 - 首先确保生成的 SQL 确实是问题所在。
-
再说一次,我不是 bigquery 专家,但 在我的情况下,更大的宽度会导致更高的基数 对我来说没有意义。基数不是列,而是行。除非你是说数据模型存在某种跨产品设计缺陷?
标签: performance tableau-api business-intelligence query-performance sqlperformance