过滤器在模型构建中可能非常有用,并且可以广泛使用,但是它们可以以牺牲性能为代价 - 通过用户在仪表板上的使用非常可见。

绩效还可以击中进口和出口,这反过来可能导致其他活动的阻塞,从而导致对模型的感知不佳。

有一些非常简单的准则可以设计出良好的过滤器:

在没有时间或版本且没有摘要的订单项上使用单个布尔滤波器过滤器是最快的

尝试创建一个布尔式订单项,该项目包含您要应用的所有过滤条件。这使您可以重新使用订单项,并将一系列布尔式订单项组合到单个布尔值中,以供过滤器使用。
例如,您可能需要在三个数据点上过滤:音量,产品类别和活动状态。卷是数字,产品类别是列表格式化的订单项,与用户选择匹配,而活动状态是布尔值。

创建一个名为的行项目筛选具有以下公式:
音量>最低vol和product cat =用户选择。类别和活动状态
这是一个非常简单的示例模块,可以证明这一点:

产品量一个筛选添加行项目以表示我们在视图上需要的所有过滤器。只有用户才能尺寸尺寸。
一个用户选择仅创建模块维度来捕获特定用户的过滤器选择:

用户选择在应用过滤器之前,这是数据:过滤器这是应用过滤器的数据:
过滤器

最佳练习建议是为每个过滤器零件创建一个过滤器模块和订单项。您可能需要其他过滤器,然后可以根据需要从此系统模块中组合每个过滤器。这应该减少重复,并使您控制过滤器,以确保它们都可以成为布尔。

什么可以使过滤器缓慢?

过滤器最大的性能是在行上嵌套尺寸时。
嵌套维度及其所包含的水平数量显着增加了性能损失。使用平面列表与嵌套尺寸(相同数量的项目过滤),嵌套过滤器的速度将慢。这是用10,000,000列表进行测试的,其中2个列表的10列表和1,000,000个物品作为嵌套行;嵌套尺寸过滤器慢40%。

使用订单项摘要在行项目上过滤会很慢。

10,000,000个物品上的数字过滤器可能需要少于一秒钟,但摘要至少需要五秒钟。

多个过滤器将增加时间。

如果前面的任何过滤器不会降低负载,这一点尤其重要,因为它们需要额外的时间进行评估。如果您确实使用多个过滤条件,请尝试订购它们,以便首先是最有效的过滤器。如果过滤器通常不匹配任何内容,请评估是否需要。

隐藏级别充当过滤器。

如果将级别隐藏在复合列表上,则在应用任何其他过滤器之前,都像过滤器一样起作用。隐藏确实需要时间来处理,并且会根据列表的级别数量和大小而影响更多。

避免嵌套行以进行出口视图

使用嵌套行是过滤一组复杂数据以进行导出的有用方法,但是,如上所述,这里的过滤性能可能很差。

围绕此的最好方法是枢转尺寸,因此行上只有一个维度,然后使用表格多列带有A的导出选项基于布尔的过滤行选项。
表格导出.png一些额外的过滤技巧包括以下内容:

  • 滤波器持续时间将影响导入中使用的保存视图,因此请检查保存的视图开放时间以查看影响。此视图开放时间将在视图的所有使用中,包括进出口。
  • 如果您需要在特定列表上过滤,请创建这些项目的子集,并创建一个由子集的新模块尺寸以查看该数据。
本文中的内容尚未针对所有ANAPLAN实施进行评估,也可能不建议您针对您的具体情况进行评估。
在应用本文中的任何想法或步骤之前,请咨询您的内部管理员。
注释

我今天刚刚在导出的嵌套行上建议​​了一个客户……他们在保存的视图列中有一个异常大的模块,其中有4个列表项目。保存的视图是花费更多的时间来加载与该行中一个列表项目的默认视图。他们调整了自己的视野,加快了加载时间,并调整了出口。

这是很棒的信息!我在这里使用这些技术来提高过滤器的性能。在一种情况下,我能够将保存视图的负载时间从2分钟的时间降低到2秒。

版本历史记录
最后更新:
07-20-2022上午11:27
更新者:
关于作者
标签(1)