1. 概述
1.1 版本
| 版本 | 功能变动 |
|---|---|
1.2 应用场景
对大数据进行明细过滤时,可能由于当前的数据存储与读取方式,致使系统处理负担重,出现性能问题,如查询缓慢等。此时 IT 人员可启用 「分区加速查询」 功能,为数据集合理设置分区键,优化存储结构,让具有相似特性的数据按分区键聚集存储,减少数据过滤时的读取范围,加快查询速度。
例如,数据量庞大的「考勤数据表」,日常高频查询场景多为 “按部门筛选打卡记录”。将「部门」设为分区键后,系统会自动将同一部门所有员工的打卡数据,集中聚集到同一个分区中;后续再筛选某部门的打卡记录时,无需遍历全表数十万条数据,仅需精准读取该部门对应的分区数据,大幅减少无效数据的读取量,快速完成考勤统计查询。

1.3 功能简介
分区查询加速的数据表要求:
最多支持添加100个数据集。
可分区的数据集需要为抽取的非最简表,不支持直连。
建议抽取行数>1kw。
注意事项:
分区键在页面进行新增/编辑并保存后,将在下一次表更新时生效,应用于全量数据。
确定新增分区列后,会增加表的更新时长。
分区生效后,若数据更新失败,不影响存量数据的查询加速。
2. 了解分区加速原理
2.1 为什么分区可以提高查询速度
在数据库(包括 FineBI)中,数据以块(block)为单位存储,每个块都有编号,数据分散于不同块中。当进行查询筛选时,如果数据未做分区处理,计算机就得在所有块中搜寻符合条件的数据。
然而,若数据按一定规则分区,查询时就能直接定位到目标分区。
举个简单的例子,把数据库比作书架,数据比作书,分区就是在给书架做功能划分,要找「生物书」时:
未分区时:得逐格翻遍整个书架,又慢又麻烦;
已分区:按学科分科后,直接在书架上的生物区找到自己想要的书籍,不用翻遍书架,效率明显增高。
2.2 如何选择分区字段
如果需要经常按照某个字段进行数据过滤,那么这个字段就适合作为排序字段。比如经常需要查询部门的数据,那么「部门」字段就可以作为分区字段;如果经常筛选日期,「日期」字段就可以作为分区字段。
3. 操作步骤
例如,有业务用户反馈,在对「考勤数据表」进行筛选时,筛选查询速度很慢。IT 人员调研后,发现业务用户的主要场景是通过「日期、部门」筛选打卡数据。
1)使用管理员账号登录 FineBI ,进入「管理系统>智能运维>加速引擎」,并点击「分区查询加速」,如下图所示:

2)点击「新增分区列」,找到「考勤数据」,如下图所示:
排序加速查询功能支持对「用户的分析」「数据目录」「我的分析」的表进行排序设置。

3)添加表后,选择该表的「部门、日期-年月」字段作为分区字段。如下图所示:
注:数值字段无法作为分区字段。

4)回到数据表所在位置,更新数据表,查询加速即可生效。
