感谢使用产品,保证好的性能体验是我们的职责。
那么,作为用户的你,为什么也需要知晓如何优化呢?
产品是依托clickhouse作为查询引擎来提供取数、分析的能力。从技术上说,clickhouse可能是当前最快的大规模使用的OLAP引擎,短期内难以用更先进的技术替代。因此,同是clickhouse集群的情况下,机器的配置直接影响查询的速度。
很多数据产品,平台方会负责数据的生产,用户单纯作为消费者直接使用。
本产品作为自助式洞察分析工具,既提供仪表盘、可视化等查询工具,同时也有数据集功能,让用户可以灵活的选择导入的数据、存储的结构。这两点很大程度影响查询时的性能,却又往往被忽视。很多查询的性能,往往在做完数据集的时已经注定了,想要仪表盘查的快,需要数据集做得好。
回到查询本身,查询的数据量、使用的算子、是否命中缓存、是否匹配数据集设置等因素,都影响着查询的速度。运用合理的查询方式,往往可以通过更快的速度获取到查询结果。
公司可以通过机器资源、数据生产、查询方式三个维度进行优化,本文着重补充通过查询方式优化,提升查询性能的方法。
如查询效果仍然不佳,欢迎联系我们提供更具针对性的解决方案。
查询方式的改进主要依赖看板、图表owner或者是可视化即时查询的用户
优化手段 | 判断依据以及原因 | 具体步骤 |
|---|---|---|
尽量使查询有机会 命中缓存 | 不管是实时数据还是离线数据,只要查询不总是要求基于最新数据,都有机会命中缓存
| 7月1日前,检查图表是否设置了随机抽样,随机抽样不会尝试走缓存,性能较差。如果需要抽样,可以选择默认抽样抽样
|
缩小 查询分区 天数 | 查询尽量少的天数,通过缩减分区天数达到缩减查询数据量的目的 | 可视化查询缩减筛选条件中p_date天数,仪表盘中缩减筛选器天数 |
少用、替换 耗时算子 | 耗时算子如countd、uniqExact、quantileExact、arrayhas、like、match、jsonExract、较长case when等都可能导致查询耗时久,并且某些算子的查询效率无法通过升级集群配置提升 |
|
少用 耗时分析功能 | DataWind提供的一些分析功能在大数据量场景下会有高耗时的问题,比如LOD、同环比、对比、明细合计、透视表小计、合计等功能 |
|
设置 抽样 | 分析占比、趋势、avg、分位数等场景,可以考虑使用抽样功能 | 在可视化页面设置抽样占比(6/25前尽量选择稳定抽样),抽样会减少读取的数据量,影响sum、count结果,但是不影响饼图占比、折线图趋势分析以及avg、quantile等算子。 |
减少 维度 | 多数查询不超过5个维度,维度项过多会导致读取的列过多,并且增加计算成本 | 去除非必要维度 |