当Tableau通过SQL Server连接到数据表时,Tableau(只读程序)的表现更好(返回查询的速度更快)?多个高大,薄的桌子连接在一起还是一张短而宽的桌子?
高大瘦弱的桌子有很多行但很少有列并且已连接在一起。短表和宽表的行数较少,但列数较多。
我相信高又瘦的选项可以更快地返回查询,因为冗余数据更少,列数更少(创建更快的索引),NULLS更少,索引更少(因为列数更少),但我至少需要第二个意见,所以请让我知道你的。
我对这个问题感兴趣的原因是当我们向服务器查询数据以呈现其可视化时,我们的客户提高了查询性能。
答案 0 :(得分:1)
这在很大程度上取决于你想要实现的目标。对于某些应用程序,使用较少字段的条目较少会更好,而对于其他应用程序,使用较少字段的条目会更好。
请记住,Tableau不像Excel或SQL,这意味着,您应该将数据操作保持在最低限度,因为某些计算在Tableau中不容易/不可能完成(有些可能但是涉及导出数据并重新连接到它)。 Tableau应主要用于数据可视化目的
此外,比较同一图表中的不同指标非常麻烦。意思是,如果你想比较总和(A)和总和(B),你必须绘制2个不同的图表(而不是两者都相同)。我发现很少有测量字段和大量维度。这样我就可以轻松切片/比较测量。在最后一个例子中,我将有2个条目,一个带有A度量和一个维度(说它是被测量的A)和一个带有B度量和一个维度的条目,而不是一个带有A和B度量的条目。 (在相同的字段中)
但这并不意味着你应该总是选择"高瘦的桌子"。您需要了解自己想要实现的目标以及更适合您需求的格式(以及Tableau设计)。除非你正在使用非常大的表并且你的分析每天(或实时)多次完成并且性能是一个非常大的问题,那么你应该专注于让你的生活更轻松的事情(特别是当你需要稍后改变和调整分析。)
对于性能,在Tableau中我遵循3条规则:
1)总是提取(数据到tde) - 它比大多数其他数据库格式更快(我没有测试所有,但它的速度更快csv,mdb, xls或SQL直接连接)
2)永远不要使用Tableau链接 - 除非它不影响性能(例如,低范围字段的命名法),否则所有信息都已存在于同一数据库中会更好
3)删除捶打 - 在数据库中提供所有可能的信息非常有吸引力,但它也会带来性能损失。我尽量只保留分析所需的信息,以及我需要的灵活性极限。过滤数据是可以的,将过滤器置于上下文中更好,但过滤提取或数据源本身是最佳解决方案
答案 1 :(得分:0)
经过大量研究,我找到了一般答案。通常,特别是对于SQL Server和Tableau,您希望引导规范化表格,这样可以避免冗余数据,从而使您的表格扫描的数据更少,从而使查询的执行速度更快。但是,您不希望将表规范化到表之间的连接实际上导致查询花费的时间比查询刚刚发送到一个短而宽的表所需的时间长。最终,您只需要进行测试,以确定最快的查询返回值的归一化/非规范化量是多少。