# 子集管理
子集管理是指在模型的性能优化 > 子集中创建并管理其对应的子集表,当模型的数据量较大,而查询时经常只需要查询某一个分区、数据期或较小范围的数据时,可以通过子集表来有效提升查询效率。
通常,你可以直接使用加工来生成一个子集模型,然后基于该子集模型再制作应用,这种做法需要提前分析清楚常见的分区查询或范围查询需求、规划好子集模型。比较适合于前期需求做的非常好,模型规划很清晰的情况。
与此不同的是,子集管理支持子集导航,允许你只需使用原始模型制作应用,系统根据查询需求智能选择子集表替代原表执行查询,所以你可以在应用制作完成后再考虑子集表的优化,同时也不会带来任何应用修改工作。
# 新建子集
在模型管理的性能优化 > 子集标签页下可以新建子集,如下:
示例地址:门店月销汇总表 (opens new window)
- 在
门店月销汇总表
中切换至性能优化 > 子集 - 新建子集:点击新建子集,弹出对话框
- 子集名称:输入子集的名称
湖北省月销汇总
- 子集条件:设置为【区域编码】属于湖北省
- 勾选立即执行:勾选后,点击确定
# 子集列表管理
# 子集列表属性
子集列表展示已经创建的子集表的信息,具体属性如下:
- 状态:子集表共有6种状态:
未开始
、等待中
、执行中,正在刷新
、取消中
、完成
、失败
,只有当状态为完成
时,子集表才能被子集导航使用 - 子集名称:创建子集时设置的
子集名称
- 最后刷新时间:最后一次提取的时间
- 数据行数:子集表中的数据行数
- 磁盘占用:子集表所占用的磁盘空间大小
- 压缩率:
子集表行数/原表行数
,压缩率越低在查询时性能提升效果越好,建议只创建压缩率在70%以下的子集表 - 近一周平均耗时:最近一周子集表提取的平均耗时,暂未实现
- 近一周查询次数:最近一周使用子集表执行的查询次数,暂未实现
- 命中率:
子集表被查询总次数/原表被查询总次数
,暂未实现 - 操作:
# 启用和禁用子集
可以单个或批量启用和禁用子集表:
- 单个启用/禁用:在子集列表的【操作】列中点击启用/禁用按钮来控制对应的子集表可用状态
- 批量启用/禁用:在子集列表的下方点击全部启用/全部禁用按钮来批量控制子集表的可用状态
提示
子集表被禁用后,在子集列表中会被置为灰色的不可用状态,子集导航只能使用已启用的子集表。
# 执行子集
子集表在如下几种情形下会执行提取:
- 在新建/编辑子集表的对话框中,勾选立即执行,确定后系统自动执行子集表的提取
- 手动在子集列表的操作列下点击执行
- 手动执行加工模型提取时,提取完成后在提取对话框的左下角会出现继续提取子表按钮,点击该按钮可以提取性能优化标签页下所有的子表,包括聚集表、子集表等
- 在系统调用管理中执行计划时,加工模型的所有子表包括子集表也会在加工提取完成后执行一次提取
提示
- 正常完成提取后,子集表状态会变为
完成
- 加工重新执行提取后,子集表状态会变为
未开始
,也需要重新执行提取,才能被子集导航正常使用。 完成
状态的子集表,如果进行了修改,那么状态会被重置为未开始
,也需要重新执行提取
# 子集对话框属性
- 名称:子集表的名称
- 条件:生成子集的过滤条件,这里的条件只能使用有限的操作符
- 计算压缩率:通常压缩率小于70%才能有效提升查询性能,点击按钮可以实时计算当前条件下子集的压缩率,以便判断是否需要创建该子集
- 立即执行:勾选后,点击确定将自动执行子集表的提取,并弹出提取日志对话框
# 子集导航
在数据仓库应用中,通常需要对模型按照不同分区、数据期或范围进行过滤查询统计,你可以在原始模型的子集管理中定义多个子集表以适应不同的查询需求。
SuccBI支持子集导航功能,即在应用模型的地方使用原始模型来制作,如报表、仪表板等,系统执行查询时能根据所选的过滤条件在不改变原有输出结果的前提下智能选择过滤范围最小、数据量最小的子集表替代原表查询,以此提升查询效率,整个过程对应用完全透明,无需做任何修改。
提示
为了保证数据的一致性,子集导航只能使用已启用的
、状态为完成
的子集表
例如,服饰的指标看板
仪表板基于门店月销汇总表
制作,默认只展示的是【湖北省】的指标数据,在门店月销汇总表
中创建过滤条件为【区域编码】属于湖北省
的子集表后,将使用该子集表替代原表查询。