主题
HENGSHI SENSE 产品使用性能问题指引
数据集操作指南
- 避免在“多表联合”,“数据聚合”,“数据合并” 三种类型的数据集上,建立不用于分析的聚合类型的新增字段。因为这三种数据集在查询时实时做联合、聚合、合并计算,在最终数据集上新建聚合字段(如 sum, avg 等),聚合字段个数会以倍数关系增加数据集的成本。(比如 A join B -> C, 在 C 上新增三个聚合字段,此时 C 在查询时复杂度为 3(三个聚合字段引入的倍数)+1(本来 A 与 B 的 join) = 4 倍的 join 代价 ))。可以考虑在 Chart 的计算指标里加上聚合类型的函数
- 避免“多表联合”,“数据聚合”,“数据合并” 三种类型的数据集嵌套多层。因为这三种数据集在查询时是实时做联合、聚合、合并计算,构造的层数越多,生成的代价越大,分析越慢。如果生成过程无法简化,可以考虑:1.) 对最终数据集打开“开启加速引擎”,系统会将数据集生成的结果固化下来,下次查询时不再实时生成数据集。(注意:开启加速引擎后数据集基本权限为数据集所有者权限,后续各种权限设置都是基于这个基础之上) 2.) 将复杂的生成过程在源数据库中实现,生成一张客户业务数据库内的表,在这个结果表上建立数据集。
仪表盘操作指南
- 单个仪表盘建议包含 Chart 的数量在20以内,太多的 Chart 会加重后端数据源查询的压力和前端的页面渲染压力
- 在编辑 Chart 的过程中,在维度、对比维度(表格)等字段的选择上,需要选取 distinct value 较少的字段;否则,会导致可视化效果较差,同时加重性能问题
- 所谓 distinct value,是指这个字段在数据源的取值去重个数
- 点击仪表盘和图表页面的刷新按钮,系统将绕过可能有的缓存,重新下推查询到数据源(看是否导入引擎)获取结果数据,然后在页面渲染展示
系统设置性能相关
- 系统设置里有“图表数据缓存周期”,当在这个周期时,重复的查询,除了第一次,后续都会走缓存,不会下推到数据源,不消耗系统资源。用户可以考虑根据自己的业务场景,对此做相应设置,比如如果分析都是 T+1模式的,可以将这个数值设置为86400,这样一天的重复查询都将不消耗系统资源。
备注:
- 性能随并发情况线性上升,这个并发也就是同时查询的语句数,和并发人数,同时打开的 Dashboard 页面,Dashboard 页面的 Chart 数都密切相关。