# 数据级次

通常模型中的数据都是单级的,没有层次结构,当我们需要新建一个带有上下级关系的数据模型时,如行政区划,就需要用到数据级次属性。

数据级次又称数据层次,代表的数据之间的层次关系,如分段层次、父子层次等。建立一个规范的数据层次,便于快速完成带有上下级关系的数据分析需求,可运用于钻取、汇总等场景,如:在分省销售报表中从省级钻取到市级、汇总显示车企的整体销量。

# 支持的层次类型

为适应不同的字典数据,数据模型提供了三种层次类型:分段层次、父子层次、多字段层次,它们分别有相应的数据要求。

# 分段层次

分段层次按照规整的、非空的唯一编码来确定分段的层次关系,编码字段通常为模型主键

2-2-2的分段模型为例进行说明,该字段长度是6位,规则如下:

  • 前2个字符是第一级编码,中间2个字符是第二级编码,最后2个字符是第三级编码
  • 对应分段内的编码为0,则代表该节点为上一级节点,例如110000表示该值为根节点

行政区划分段层次为例,该模型按照业务层次省-市-区分为3级:

  • 北京市 110000:按照2-2-2的分段模式分解为110000,该编码前一段有值而后两段为00,则为第一级机构
  • 北京市市辖区 110100:按照2-2-2的分段模式分解为110100,该编码前两段有值而后一段为00,则为第二级机构,挂在第一段编码为11的第一级机构下,故北京市市辖区挂在北京市
  • 同理,东城区 110101挂在北京市市辖区

分段层次数据

分段层次树形

示例:分段层次 (opens new window)

# 父子层次

父子层次按照模型中的父子映射逻辑来确定层次关系,它的数据要求是:

  • 子字段必须保证非空且唯一,一般为模型主键
  • 除第一级的子字段外,都需要有对应的父字段值
  • 需设置主键,用于与业务模型的字段关联,主键与子字段可以为不同字段

行政区划父子层次为例,该模型按照业务层次省-市-区分为3级:

  • 北京市市辖区的子字段行政区划代码110100,父字段PID110000,系统会自动根据父字段的值来查找符合的子字段,子字段为110000的机构为北京市,故北京市市辖区会挂在北京市
  • 同理父字段为110100的机构,会挂在北京市市辖区

父子层次数据

父子层次树形

示例:父子层次 (opens new window)

# 多字段层次

多字段层次是按照模型中不同的字段来确定层次关系,它的数据要求是:

  • 下级节点的数据行中需要包含上级节点的层次字段信息
  • 需设置主键,用于与业务模型的字段关联,主键与层次字段没有必然联系

因此它的数据特点为:下级节点的上级层次字段信息是冗余的。

行业代码多字段层次为例,该模型按照业务层次门类代码-大类代码-中类代码-小类代码分为4级:

  • 农、林、牧、渔业数据行中包含门类代码信息,其他类的信息为空,故农、林、牧、渔业为第一级
  • 农业数据行中包含门类代码、大类代码信息,其他类的信息为空,故农业为第二级,挂在对应的门类下,即农、林、牧、渔业
  • 同理,谷物种植挂在农业

多字段层次数据

多字段层次树形

示例:多字段层次 (opens new window)

# 新建层次

选中数据模型数据加工输出节点,在右上角的属性中选择树形结构,在工具栏中点击新建层次(如果已有建好的层次,在更多按钮中,进行数据层次的新建、编辑、删除操作),即可在对话框中选择三种层次类型。一个数据模型可新建多个数据层次,但父子层次只能创建一个,且支持创建后的模糊查询操作。

# 新建分段层次

新建分段层次,主要进行以下三个设置:

新建分段层次

  • 分段字段:模型会依据该字段生成树形结构的数据
  • 分段:将分段字段的数据按照分段结构进行拆分,每段之间使用-分隔。例如2-2-2表示前2个字符是第一级,中间2个字符是第二级,最后2个字符是第三级
  • 分段描述:分段结构的每段描述,需要以-分隔,如省-市-区

# 新建父子层次

新建父子层次在选择对应的父字段子字段后,还需要生成一些必要的业务字段,具体如下:

新建父子层次

  • 更新层次数据:默认勾选,与业务层次选项的自动新建层次字段配合使用,一般用于从零生成一个父子层次,当业务层次字段来源于数据表已有的字段时不勾选
  • 业务层次:记录节点的层次信息,与模型的层级数一一对应,如业务层次为省-市-区时,则会记录该节点的所在省、所在市、所在区的信息。业务层次可选择已有的字段,也可以自定义或自动生成新的层次字段
  • 自动新建层次字段:点击可自动分析父子字段的值并生成层次数据,如业务层次为省-市-区三级时,默认的字段名按顺序分别为:SZ_PID0SZ_PID1SZ_PID2且不会发生改变,如果模型中已有该字段名则会自动引用
  • 层级字段:记录节点在树形层次中处于第几层级,根节点从0开始。层级字段可自定义,默认为SZ_LEVEL,如果模型中已有该字段名则默认为SZ_LEVEL1。当模型数据中已有该信息的记录时,也可选择已有的字段
  • 是否叶子节点:记录节点在树形层次中是否为叶子节点,0代表否,1代表是。层级字段可自定义,默认为SZ_LEAF,操作及生成规则与层级字段相同
  • 子代码包含父代码:在涉及到与父子层次相关的数据查询时使用,可以提升查询性能,前提条件是子字段的前缀带有父字段的代码

# 新建多字段层次

新建多字段层次只需点击添加按钮并选择层次字段,即可新增相应的业务层次,系统会自动按照添加的顺序依次分为第一层级、第二层级...

新建多字段层次

# 编辑和删除层次

针对已创建的层次,系统提供了编辑删除的功能:

  • 编辑:点击模型工具栏中的更多按钮,可进行层次编辑操作,操作与新建层次一致
  • 删除:删除当前选择的层次,点击后会弹出确认对话框,通过弹出框中详细信息可查看引用该层次的元数据

# 应用

在完成模型的数据层次构建后,可便捷应用于多种开发场景:

  • 关联维表:字段关联了带有数据层次的模型时,可直接引用业务层次字段进行数据分析
  • 汇总与下钻:在制作报表仪表板的表格时,拖入数据层次字段至单元格中,系统会自动汇总下级数据,还可以为单元格添加下钻交互
  • 组件关联:使用下拉框组件、树组件关联带有数据层次的模型,可直接生成树形结构
是否有帮助?
0条评论
评论