睿治
当前版本:2.5.1

维表建设

1.维表概述

根据维的数据结构,将维分成三种类型:

层级维:数据都在同一级,呈线型。

多级维:数据分多级,呈树形,数据之间的级次关系由它的代码决定。其标志是代码可以分段,上级代码与子代码有相同的前缀。

通用维:数据分多级,呈树形,数据之间的级次关系由钻取路径决定。一般维的树形用多级维无法实现的就要用通用维。

点击“新建维表”进入编辑维表界面

如下图中,新建维表需要进行:维表设置、字段设置、属性设置以及其它选项设置:注意带*号的为必填项,如图所示。

设置好后点击"保存"按扭,这时系统会提示"创建成功"。这样设置后,只是设置了代码维的基本属性,还需要设置维表的内容。

维表添加成功后,在"维表管理"界面中显示已添加的维表。

设置说明:

内容

说明

维表设置

也就是给新建的代码维进行命名,维表存储到数据库中的数据库表名;其命名规则必须由字母、数字和下划线组成。新建维表的数据库表名不能与已存在的数据库表名重复。

锁定数据库表:

勾选时,表示修改维表结构时,不会同步修改数据库表结构

不勾选,则会同步修改数据库表结构。

字段设置

对代码维中的字段设置名称、字段描述、长度、字段类型等。我们可以通过点击来增加,并且可以通过来删除已有的字段。字段类型的下拉按钮可以对字段类型进行选择,当用户设置其为Double型(浮点型)时,还可以设置其小数位数。

属性设置

定义维的属性字段。维的属性有以下用处:

(1)定义钻取路径

(2)作为字典,获得对应字段的内容,主要应用在dim函数中

(3)定义下钻级次

钻取路径

通用维生成树形结构需要设置钻取路径,每个钻取路径是一个属性。一个钻取路径中不能出现同一个属性。

树型设置

通过选择不同的选项来维表的树型属性。

(1)无层次结构—单级维

(2)设置分段信息—多级维

(3)钻取路径—通用维

其它选项

关联字段

与其它表关联的字段,主题表与维关联就是通过此字段实现的,默认为id字段。

缓慢增长维

缓慢增长维的数据是随时间不断变化的,因此是不能缓存到内存的,并且是通过时间段来确定数据,可以设置数据期起止。

缓存到内存

维表的数据直接载入内存,快速查看维的相关信息。如果维表的数据很大,则不要缓存到内存,会降低系统运行速度。

有效时间

设置维在一定时间内有效,如果超过指定的时间,就会自动重新载入。通常用于维表会定时更新的情况下。

2.创建单级维

单级代码维,维中的各项没有上级层级关系。例如,城市维表中的,北京、上海、大连等。

在下图的"树型设置"中选择"无层次结构",则创建的维为单级代码维。

维表设置里面,输入维的名称,设置维对应的数据库表。

字段设置里面,设置维表里代码、文字对应的字段。

维表创建成功后,系统自动增加"编辑内容"TAB页面,点击可以编辑维表的内容。

当全部填写完毕后,点击 "保存"按钮,系统将提示"保存成功"

这里显示的是从数据库表中创建的维表。

如上图中,系统自动显示两个字段id和name,并显示字段类型和长度,这2个字段也就是我们先前在【字段设置】中设置的字段,维表每一项的ID和NAME间是通过TAB分隔的。我们可以修改此维表的内容。例如在维表中增加一行,可以某一行的文字后面回车后增加一空行,在ID字段下面添加代码,用tab分隔后,在NAME字段上添加名称。写完一行后,回车继续写另一行。

3.创建层级维

层级代码维,即维中各项有一定的层级关系,例如行政区划中的省-市-县。

添加多级代码维时,需要在"树型设置"里面设置"分段信息"和分段名称。

分段信息用于控制代码维的长度,和代码维的级次结构。例如"分段信息"中填写的"2-2-2"代码长度为6位,分三段。"段"也可以理解为级次。如第一段前两位用来代表某一省,第二段用来代表某个市,第三段也就是后两位可以代表某一县区,每一段分一个级别,三段结合起来就可以唯一标志某一个具体的县区了。

例如行政区划代码由6位数字组成,每2位分别代码省、市、县,则分段信息设置为"2-2-2"。

层级代码维添加成功后,在"编辑内容"TAB页面中,可以以树型结构的方式查看维表内容。

在向维表中添加内容时,所添加的维代码应该符合分段信息里面的设置。

注:维表的id字段的设计,应该遵循维表结构中的分段设置(此例为1-2)

维表内容中,字段与字段之间是用tab键分开(不是空格分开的)

4.创建通用维

通用代码维的概念在上面已经有所介绍,新建一个通用维的方法与新建一个单级维或者多级维的方法一样,他的表现形式实际上也与多级代码维相同,都是分层次的树形结构,但是与多级代码维不同之处在于他的下钻层次不是根据id字段的分段来设置,而是通过指定的属性字段顺序来生成的,如图所示:

通用维的数据有多个属性,这些属性之间不必有关联关系,选取其中的某些作为钻取路径,同时设置钻取路径的先后关系就是级次,根据钻取路径的级次生成树形结构,并且钻取路径必须在树型设置中选择。如图所示:

字段设置:

属性设置:

钻取路径设置:

设置完成,"保存"后,在"编辑内容"页面可以编辑通用维的内容。

树型显示状态下,此通用维的结构为,

5.创建螺旋维

螺旋维是螺旋式的维度方式建的维,螺旋式维度需要3个字段,分别为维项的id,维项的名称name,维项的上级id,根据"上级id"即可找出某一维项的上级节点,从而构建树。
螺旋维需要根据表结构呈螺旋式的表来创建,创建完成后会生成一张新表,新表的结构和通用维是一样的,可以通过周期设置螺旋式的表和通用表的数据同步的时间周期。

Step1:在维表列表界面点击"新建螺旋维",进入到螺旋维设计界面


维名称:维表的名称
数据存储连接池:选择的数据库表所在的连接池
数据库表名:维表对应的数据库表
ID字段:维表的ID字段
文字字段:维表的NAME字段
父节点字段:维表的PID字段
根节点值:需要形成树的ROOT值
周期设置:这个是用来控制旧表和新表数据同步的,当勾选周期设置时,可以设置同步的时间间隔。


Step2:设置螺旋维的信息并保存,螺旋维就创建完成了


Step3:创建完成后会跳转到设置结构界面,螺旋维的结构界面不同与其它维,可以设置周期。

Step4:设置完成之后数据的内容就会根据"上级id"即可找到某一维项的上级节点,从而构建树

6.从已有库中创建维

我们除了可以手工进行维表设置和字段设置,同时也可从数据库中选择已存在的表来创建维表。

首先我们仍然需要手工定义维表的名称,然后在"数据库表名"的编辑框中点击右侧的下拉箭头可以查看连接的数据库中所有的数据库表,双击选择即可,也可以通过数据数据库表名进行定位选择。选择了数据库表名后在"字段设置"中将会自动列出这个数据库表中所有的字段,不需要用户自己去设定。

这样就完成了从数据库中创建维表的基本操作。当然我们还需要根据需要进行其他的属性设置。我们可以在"其它选项"中设置"缓慢增长维"、 "缓存到内存"。其它的属性设置方式与新建单级维类似。

缓慢增长维,只能显示维的相关信息,不能修改,它只能从已有库创建,因为它不能查看和修改内容。

7.创建数据期维

在报表分析中,数据期(时间)是一个不可或缺的因素,虽然在BI中已经提供了通用的日期选择框、年月选择框、年输入框和数据期控件,但还是有很多需求这些控件不能解决。

1)不能实现日期多选

2)不支持很多特殊的报表,如:周报、年周报等等报表

3)报表期显示的文字不一定是用户想要的,例如:季报中的第一季、第二季,用户希望显示,春季、夏季。半年报中的,上半年显示春夏;下半年显示秋冬。

4)对于特殊报表期在分析的时候,像年周报的同期,上期等等在程序中不好直接支持。

所以系统支持创建数据期维,以方便分析表的使用。

数据期类型有:年报、半年报、季报、月报、半月报、旬报、五日报、日报......

7.1操作入口

在主题域或主题集节点下,点击新建数据期维表,下图位置:

根据设置自动生成维表结构及维表数据。

我们以“旬报”为例:

自动生成维表,

查看维表内容,

7.2计算支持

 @-1不支持的数据期类型:半年报,季报,半月报,旬报,五日报;数据期分组或指定某一数据期,也不支持对半年报、季报,半月报,旬报,五日报求增幅、上期等统计函数;
这两种需求都只对年报、月报、日报支持;

数据期类型

指定某一数据期求增幅等

指定某一数据期求上期

指定某一数据期求@-1

数据期分组求增幅等

数据期分组求上期

数据期分组求@-1

年报

半年报

×

×

×

×

×

×

季报

×

×

×

×

×

×

月报

半月报

×

×

×

×

×

×

旬报

×

×

×

×

×

×

五日报

×

×

×

×

×

×

日报

注:求上期和@-1是不同的;

表达式

说明

适用场合

@-1xxb.zb

求xxb.zb的上期,是求的本期和上期同户的上期的值;
从实现的角度,效率低下;

当上期值和本期需要参与比较复杂运算时,比如:
_s(abs(xxb.zb1-@-1xxb.zb2)/xxb.zb3)

_prev(xxb.zb)

求xxb.zb的上期,前提是有数据期条件,指定某期;
从实现的角度,效率高效;

指定某期数据,单独求上期指标值:
_prev(xxb.zb1)
简单的运算:_s(xxb.zb1+@-1xxb.zb2)
可以改为:_s(xxb.zb1)+_prev(xxb.zb2)

8.数据级次维

数据级次维,简单来讲,就是一个维表。从字面意思来讲,是控制数据级次的。

举个简单的例子,比如中粮集团,下属有很多二级公司,三级公司。那么三级公司的用户是不允许查看比自己级别高的用户数据。

这就是我们今天要说数据级次维。通过设置数据级次维,实现该用户对自己可见的分析表的数据权限进行控制。

8.1操作入口

如何设置数据级次维呢?

1)创建数据级次维:要按照什么样的维度控制数据级次,创建相应的维表。

比如,全国税调,用户填写数据时,是根据税务机关的树型机构进行填写数据的,创建税务机关维表。

2)配置数据级次维:2个位置,一个是主题域下的数据级次维;一个是主题集下的数据级次维。

区别在于控制数据级次的范围不同。主题域大于主题集。

3)如何使用:给机构,用户或者角色配置权限时,下拉数据级次维,配置相应的数据权限。

8.2数据级次维的处理规则

计算报表时需要从权限模块获取下面的信息:

1)是否有计算报表的权限。要求有报表的view操作权限。

2)是否有引用某个主题表的权限。只有分配了这个权限,才能从这个主题表取数。

3)获取引用的主题表的过滤条件,加到sql中去。

4)获取计算这张表使用的的rootbbh,取得datalevel,用于将upid()维的相对级次转成绝对级次。

5)如果计算参数中有@rootbbh参数,要判断它是否在权限范围之内。这个权限叫数据权限。

6)判断用户计算的结果表如何共享给其它用户。通常只有同级之间才会共享,是否同级跟权限有关。

为了方便权限设置,不需要给用户设置每张报表的权限,通过设置分组、主题集、主题域来批量设置。如果报表、分组、主题集、主题域都设置了权限,那么我们一般采用就近原则,即使用最近的那个权限,忽略其它的权限。

9.查看和编辑维内容的相关提示

9.1查看维内容的提示

用户在左树上点击维,可以查看维内容的树形结构,但是在某些情况下是不能查看维的内容的

1)缓慢增长维:缓慢增长维因为内容很多,所以是没有将内容缓存到内存的,所以无法查看内容,用户点击此类维,会提示用户 "缓慢增长维不支持查看内容";

2)没有缓存内容到内存的维:与缓慢增长维一样,点击此类维,会提示用户 "没有缓存到内存的维不支持查看内容";

3)无效维:因为维是无效的,所以无法生成树形,点击此类维,会提示用户 "无效维不支持查看内容"。

另外:如果维的内容很多,也会出现提示 "维的数据很多,是否仍然显示?",如果用户点击确定,则会显示维的树形,否则不会显示。

判断方式为:如果维的根节点数超过500,则认为维的数据很多。

9.2编辑维内容的提示

如果维的内容很多,则进入编辑维的界面后会导致速度非常慢,所以在进入页面时会有提示:

1)判断内容很多的标准:

·维的内容超过1000行则提示;

·如果是有效维,根节点超过500也会提示,此判断是为了兼容查看内容时判断数据很多的提示。

2)从维列表页面和维结构编辑页面进入编辑维的内容页面时也会有相同的提示;

3)如果当前编辑维内容的页面已经打开,则不会提示。

9.3维表重置

进入到维表界面,点击“重置”按钮,会删除缓存中的维表数据,从新从数据库获取维表数据加载到列表中去。

9.4更新或删除维表

对于建立好的维表,我们可以进行维表结构的更新或删除已建立的维表。

在"维表"界面中,单击维表相关操作中的"编辑内容"、"设置结构",可以重新编辑维表的内容,修改维表的结构,其操作界面与添加维表中是一样的。

点击"删除"可以删除服务器维表。进行删除操作时,系统提示是否删除对应的数据库表。

如果勾选了此项,此维表对应的数据库表也将同时删除。

注意:维表或数据库表一旦确认删除后将无法恢复,所以在删除维表或相应数据库表时一定要慎重。

9.5导入维表

导入维表:可以将COD、NCD格式的代码组文件导入到服务器中,作为维表使用。

COD和NCD是i@Report系统中的代码组文件,i@Report中的代码组等同于本系统中的维表,我们可以通过导入COD,NCD功能方便的将iReport中已存在的代码组导入到本系统中,作为维表使用。

附件列表

0

文档内容仅供参考
如果您需要解决具体问题,还可以登录亿信社区
在提问求助板块提问,30分钟内帮您解决问题

如果您认为本词条还有待完善,请编辑

上一篇创建数据源

下一篇主题建设

请先登录