1. 概述

您是不是经常碰到这种情况:进入报告筛选器都会加载很长时间,每次都很焦虑?本文将会介绍几种常用的筛选器优化方法。

2. 优化方法

我们首先要理解每次筛选器加载都是一次查询,从数据的角度来说筛选器跟图表其实没有区别,但是筛选器的设计不同,我们可以支持一些定向优化。接下来从数据查询,计算优化,产品使用三个方式进行讲解。

(1)筛选器一般作用在维度上,数据一般是有限的。例如订单表里的城市字段,如果设置列表筛选器直接进行筛选,要对订单表中每行信息进行扫描,再进行去重获取到最后列表,这个过程是非常缓慢并且十分消耗性能。所以可以将所需维度值单独抽取出来,创建一个新的模型,在报告上通过跨模型筛选实现数据过滤;另外也可以参考维值加速功能。

(2)很多时候日期字段是以字符串或者数值类型存储在数据库中,在BI上需要将该字段转换为日期进行数据筛选,产品的默认策略是每次查询时都会应用日期转换函数,这个函数会造成性能损耗,您可以主动设置为使用原数据类型进行查询,如下图:

(3)如果您使用的是树形筛选器,鉴于维度值组合太多,产品上支持设置数据预加载,设置预加载之后产品将会提前加载部分数据,这样每次点击筛选器时不需要强制查询,性能会好很多。

(4)当然如果数据量确实较大,同时提前计算以及预加载都无法达到用户需求(比方说用户画像分析场景下的用户账号筛选),此时会推荐使用文本筛选器,尽量避免使用列表筛选器。文本筛选器完全通过输入实现数据查询,可以将外部文本上的数据直接粘贴过来实现数据筛选。

(5)如果筛选维度可以枚举,此时也可以通过直接设置筛选器的默认值实现数据筛选,此时点击筛选器时产品将不会直接查询,而是直接使用给定的数据进行筛选。

6、最后非常推荐每个筛选器都要设置默认值,设置默认值可以避免进入报告时数据全量查询,节约时间、提高效率。