数据治理

最近更新时间:2019-07-29 15:05:06

创建数据集之后,刷新元数据,可对元数据进行一系列数据清洗、治理操作,例如转换为数字列(企业版)、转换为日期列(企业版)、转换为维度列、转换为度量列、设置文件夹(企业版)、设置数据层次(企业版)、设置日期层次(企业版)、设置数据范围(企业版)、设置表达式(企业版)、设置日期表达式、为字段设置别名、设置数据权限(企业版)。

数据类型与分类

预览细节数据时,预览行数默认是1000行,可以根据需要修改预览行数,修改后可单击页面空白处或按键盘 Enter 键进行应用。
例如将查询中预览行数设为5,应用后数据中只显示5条数据。

维度

维度表示数据分类的角度或方面。城市是一个维度,月份是一个维度,数据范围是一个维度。多维度思考,符合人类习惯。常用的是三维立体思维。三维可以构成一个立方体。Slice 是一个立方体的切片。例如一月的所有城市的数据,构成一个面。Dice 是一个立方体的切块。例如一月份的北京的数据,构成一个小立方体。也可以把维度理解成组的概念,把这些方面分组,把数值类型做统计汇总。常用来做维度的数据类型包括:

数据类型/字段类型 说明
String 字符串
Char 单个字符
Boolean 布尔
Date 日期
Time 时间
Timestamp 日期+时间
Date Hierarchy 日期的所有层次
Numeric Range 数据范围
Other 其他非数字和非日期的类型

维度的排序功能更有意义,特别是高级排序可以支持基于别的字段的聚合后的排序,还可以进行排名。细节数据不具备此功能,只有聚合数据才能排名。

维度可以为转变成度量,连接数据模块的界面可以修改,只是整个 data set 级别的改动,所有使用报表的地方,都按照数据集里的划分来判断维度还是度量。还有一个地方可以在维度和度量之间转换,就是在对象的绑定界面上,这个转换只是对象本身起作用。但维度字段切成度量后,支持的统计函数只有求最大值,最小值,统计个数,统计不同值个数,和近似不同值的个数。因为对非数值类型字段做求和等统计没有意义。但是取最大,最小,统计个数,统计精确不同值计数,和不同值计数还是有意义的。

函数名 用途
Count 返回数据集中的数据个数
Accurate Distinct Count 返回数据集中不同值的数目
Distinct Count 大数据的基数估计算法
Max 返回数据集中的最大数值
Min 返回数据集中的最小值

度量

度量表示可被用于衡量和统计的数值、销售、利润、成本等都是度量。以此,数值类型的数据都被划分为度量了。另外把日期,时间也划分为度量。常用来做度量的数据类型包括:

数据类型 说明
Long 长整数
Short 短整数
Integer 整数
Byte 字节
Float 单精度浮点数
Double 双精度浮点数

度量同样也可以变为维度,转变规则如上。
度量支持的统计函数较多,支持所有本产品提供的统计函数。

函数名 用途
Sum 返回数据集中所有数据之和
Count 返回数据集中的数据个数
AccurateDistinct Count 返回数据集中不同值的数目
Distinct Count 大数据的基数估计算法
Max 返回数据集中的最大数值
Min 返回数据集中的最小值
Range 返回数据集的范围
Average 返回数据集中的平均值
Product 返回一组数据的乘积
Median 返回给定数值集合的中位数
Quartile 返回一组数据的四分位点
Mode 返回在某一数组或数据区域中的众数
Sum Square 返回一组数据的平方和
Pth Percentile 返回数值区域的P百分比数值点
Variance 返回一组数据的方差
Population Variance 返回一组数据的总体方差
Standard Deviation 返回一组数据的标准差
Standard Error 返回一组数据的标准误差
Population Standard Deviation 返回一组数据的总体标准差
Sum Weight 返回一组数据的权重之和
Weight Average 返回一组数据的权重的均值
Covariance 返回一组数据的协方差
Correlation 返回一组数据的相关系数

需要自动把数据类型分成维度还是度量分类的地方包括:

  • 刷新元数据。在数据集建立好后,刷新元数据的时候,需要把数据集里的所有字段自动分成维度和度量,分配规则如上。分好后,会分别在元数据界面的两个节点上列出来。
  • 新建表达式。在元数据界面上新建表达式,即用脚本生成字段,此时需要选择数据类型。会自动列到对应的节点上。
  • 创建了层次,日期层次,数字范围,新建分组,值映射、去空格,拆分列会自动列到维度上;缺失值填充根据原字段数据类型来判断,如果是字符串会自动列在维度上,如果是数值类型会自动列在度量上。
  • 在制作报告的时候,创建表达式字段。在报表的绑定界面上,不会根据数据类型来分,而是根据选择的表达式字段的类型来分。细节维度字段是维度。细节度量字段和聚合度量字段是度量。

转换为数字列

可以将字符串类型的字段转换为数字列,在元数据上选中字段,单击【更多】图标,菜单中选择转换为数字列选项,同样在元数据中单击更多图标可以编辑或者删除新转化的列。
在字符串类型的字段上单击更多图标,菜单中选择转换为数字列,打开转换为数字列对话框,如图:

【原始字段】需要转换为数字列的字段。
【名称】数字列名称,默认名称是“数字列”,可以对名称进行修改。
【数字 & 货币 & 百分比】根据列数据选择相应的格式。例如数据为20%,选择的格式应该为百分比。

例如:
原始数据如图:

将“百分比字符串”转化为数字列“百分比”,格式选择“百分比”;将“浮点数字符串”转换为“浮点数”,格式选择“#,##0.##”。预览数据如图:

新建生成数字列后,会自动选中该列,如果有纵向滚动条会滑动到新列的位置并选中新列。
在已创建的数字列上单击更多图标,可对其进行编辑、删除。

转换为日期列

可以将字符串和长整数两种类型的字段转换为日期列。在元数据上选中字段或者在细节数据选中字段的列头单击【更多】图标,菜单中选择转换为日期列选项,同样在元数据或细节数据中单击“更多”图标可以编辑或者删除新转化的列。

  1. 在字符串类型的字段上单击更多图标,菜单选择转换为日期列,打开转换为日期列对话框,如图:

    【原始字段】需要转换为日期列的字段。
    【列名】日期列名称,默认名称是“日期列”,可以对名称进行修改。
    【日期】根据列数据选择相应的格式。例如数据为2016-01-23,选择的格式应该为“yyyy-MM-dd”。
  2. 在长整数类型的列上单击更多图标,菜单选择转换为日期列,打开转换为日期列对话框,如图:

    【原始字段】需要转换为日期列的字段。
    【名称】日期列名称,默认名称是 “ 日期列 ”。修改列名,单击【确定】,根据相应的公式,把数据转化为日期。

例如:
原始数据如图:

将“字符串”列转换为日期列“日期列1”,格式为“yyyy.MM.dd”;将“长整数”转换为日期列“日期列2”。转化后数据如下:

新建生成日期列后,会自动选中该列,如果有纵向滚动条会滑动到新列的位置并选中新列。
在已创建的日期列上点更多图标,可对其进行编辑、删除。

转换为维度列

有两种方式可以将度量字段转为维度字段,一种是通过拖拽的方式,即选中度量字段拖动鼠标将字段从度量区域拖拽到维度区域,另一种是选中度量字段单击【更多】图标,菜单中选择转换为维度列,如下图所示。


转换后该列存放在维度区域。

转换为度量列

有两种方式可以将维度字段转为度量字段,一种是通过拖拽的方式,即选中维度字段拖动鼠标将字段从维度区域拖拽到度量区域,另一种是在元数据区选中维度字段单击【更多】图标,菜单中选择转换为度量列,如下图所示。


转换后该列存放在度量区域。

设置数据量

预览细节数据时,预览行数默认是1000行,可以根据需要修改预览行数,修改后可单击页面空白处或按键盘 Enter 键进行应用。
例如:将查询中预览行数设为5,应用后数据中只显示5条数据。

查看细节数据

单击预览数据集,用户可查看数据集的细节数据,也可以单击数据集列表上预览数据集图标进行查看,详情可参考【附录】>【界面介绍】>【数据集界面】部分。

设置文件夹

用户可以在数据集编辑界面创建文件夹,按照需求将字段拖拽到文件夹中,便于对字段进行分类。也可以在维度或度量中多选列右键新建文件夹,将多个字段同时放在文件及下。通过维度和度量字段创建的文件夹分别对应存放在维度区域和度量区域。当字段较多时,通过创建文件夹可以使界面看起来更有层次感,展示起来更清晰。

例如:
某一 SQL 数据集中存在 BUDGET_COGS、BUDGET_MARGIN、BUDGET_PROFIT 和 BUDGET_SALES 这四个与预算相关的字段,如下图所示。

用户在元数据区域按 Ctrl 键同时选中这几列,然后右键选择新建文件夹,如下图所示。

在弹出的对话框中,中文环境下会默认名称是“文件夹”,修改文件夹名称,单击【确定】则在元数据区域生成文件夹。

确定后,相应字段便会自动放到文件夹中,如下图所示。

被拖拽到文件夹中的字段不可以通过鼠标的拖拽来调节位置。

设置数据层次

维度的范围有大小的概念,例如国家的范围大,省的范围次之,城市的范围更小。可以把范围的大小的概念称之为层次。在维度节点下建立层次目录,把有范围大小的维度通过拖拽放入层次中。范围大的放在最上面,范围小的维度放在下面。维度的顺序,决定了钻取的顺序。当需要上钻时,会找到与当前维度最近的上一个维度(即范围大点的维度)。当需要下钻时,会找到与当前维度最近的下一个维度(即范围小点的维度)。

例如:
某一 SQL 数据集中存在年、季度、月份字段,三个字段之间有范围大小的概念,年大于季度,季度大于月份,如下图所示。

用户在元数据区域同时选中列“年”、“季度”、“月份”,右键选择增加层次,如下图所示。

在弹出的对话框中,中文环境下会默认名称是“层次”,可以修改层次名称,单击【确定】则在元数据区域生成层次。

被拖拽到层次文件夹中的字段仍可通过鼠标的拖拽来调节位置。在上的字段范围较大,如下图所示。

当用户在报告编辑区中绑定该层次文件夹中的字段时,会在范围较大的数据段的左侧生成加号,当用户单击此加号时,比当前数据段的范围小一级的数据段将被自动绑定,同时加号变成减号。

设置日期层次

用户可在日期、时间、时间戳类型的数据段上单击更多图标,选择新建日期层次,来创建用户数据段。

打开的日期型层次对话框如下图所示。会默认名称是“日期层次”,用户根据需要修改日期型层次的名称,以及勾选需要创建的日期型列。
对于元数据中已经存在的日期列在对话框中是勾选状态,并且是灰色字体、不可编辑。

日期是一个典型的层次结构。当选择了某一日期字段时,可以给该字段建立一个层次,并选择需要建立的日期维度。支持的日期维度如下表所示。

日期维度 数据类型 说明
年季度 Timestamp 季度,把所有本季度的,映射到本季度的第一天
年月 Timestamp 月份,把所有本月的,映射到本月第一天
年周 Timestamp 周,把所有本周的,映射到本周第一天
Timestamp 日,把所有本天的,映射到本天零点
小时 Timestamp 小时,把所有本小时的,映射到该小时的起点
五分钟 Timestamp 五分钟,把所有本五分钟的,映射到该五分钟的起点
分钟 Timestamp 分,把所有本分钟的,映射到该分钟的起点
Timestamp 秒,把所有本秒的,映射到该秒的起点
Integer 年份
季度_年 Integer 季度,1-4
月_年 Integer 月份,1-12
周_年 Integer 每年得第几个星期,1-52周
天_年 Integer 日,每月的第几日,1-31
天_周 Integer 每个星期的第几天
小时_天 Integer 小时,0-23
分钟_小时 Integer 分,0-59
秒_分钟 Integer 秒,0-59

年季度、年月、年周、天、小时、五分钟、分钟、秒,均把相应的日期、时间、时间戳数据段映射成时间戳类型。年、季度 _ 年、月 _ 年、周 _ 年、天 _ 年、天 _ 周、小时 _ 天、分钟 _ 小时、秒 _ 分钟则把日期、时间、时间戳数据段映射成整数类型。
例如:一时间戳类型数据为2012-11-02 11:34:25,进行映射后的数据如下表所示。

映射前的数据 映射后的数据
年季度 2012-10-01 00:00:00
年月 2012-11-01 00:00:00
年周 2012-10-28 00:00:00
2012-11-02 00:00:00
小时 2012-11-02 11:00:00
五分钟 2012-11-02 11:30:00
分钟 2012-11-02 11:34:00
2012-11-02 11:34:25
2012
季度_年 4
月_年 11
周_年 44
天_年 2
天_周 6
小时_天 11
分钟_小时 34
秒_分钟 25

在已创建的日期型层次上单击更多图标,可对其进行重命名、删除。

设置数据范围

数据范围是给一个数字类型字段创建一个划分范围的维度字段。因此,此字段会自动列入维度的节点下。可以在元数据界面上,选择一个数字类型字段,单击更多图标选择新建数据范围,如下图所示。

也可以在细节数据界面,选择一个数字类型字段列头,单击更多图标选择新建数据范围。

在打开的对话框中,用户可修改数据范围的名称、类型、边界、最小值、最大值、步长。

【原始字段】创建数据范围所使用的字段。
【名称】数据范围的列名,默认名称是“数据范围”。
类型为范围:
【最小值】设定数据范围的最小值。
【最大值】设定数据范围的最大值。
【步长】设定数据范围的步长值。
【包含小于最小值的范围】当用户不勾选时,则小于最小值的值将被映射成空。当勾选上时,小于最小值的值将被映射成最小值减去步长值。
【包含大于最大值的范围】当用户不勾选时,则大于最大值的值将被映射成空。当勾选上时,大于最大值的值将被映射成最大值加上步长值。
【包含范围的左边界不包含右边界】数据范围包含左边界但不包含右边界。
【不包含范围的左边界包含右边界】数据范围包含右边界但不包含左边界。
类型为分组:
【定义刻度】定义刻度值。
【添加】将定义的刻度添加进去。
【删除】将已添加的刻度删除掉。
【标签】可以给添加的刻度范围设置别名。

例如:
假设对成绩列增加数字范围,该数字范围的最小值为60,步长值为10,最大值为100,包含小于最小值的范围,不包含范围的左边界包含右边界,如下图所示。

在表上的映射结果如下图所示。因为勾选了“包含小于最小值的范围”所以小于60的成绩被映射成50。勾选了“不包含范围的左边界包含右边界”,所以70映射成了60,否则被映射成70。

成绩 数字范围
55 50
60 50
65 60
70 60
78 70
80 70
82 80
90 80
95 90
100 90

新建生成数据范围列后,会自动选中该列,如果有纵向滚动条会滑动到新列的位置并选中新列。
在已创建的数据范围数据段上单击更多图标,可对其进行编辑、删除。

设置表达式

表达式是指在数据集编辑界面,创建新的表达式字段。作用域是当前数据集,所有使用该数据集的报表都能使用此字段。在元数据界面上选中列或者在细节数据界面上单击“更多”图标选择新建表达式,并输入表达式名称,选择数据类型,并编辑脚本语言来返回结果。脚本中不能使用聚合函数。创建后,可以通过拖拽,放到维度结点下或者度量结点下。

例如:SQL&JS 表达式
在元数据区中存在下图中的字段,用户需要创建一个利润字段,该字段的计算方式为销售总额字段减去成本。

在元数据区域单击更多图标选择新建表达式,如下图所示。

在细节数据界面,选中列的列头,单击更多图标选择新建表达式。

在弹出的表达式对话框中默认名称是“表达式”,修改名称,数据类型以及输入脚本进行计算,可通过 SQL 或者 JS 两种方式运行,以 JS 为例。

单击确定按钮后,将在元数据区生成利润字段。
用户在编辑数据库数据集时,如果使用 JS 脚本,会影响数据集性能。产品的实时性能检测机制,会标识出性能不佳的地方。用户也可以通过【检测性能】,查看所有性能问题。

新建生成表达式列后,会自动选中该列,如果有纵向滚动条会滑动到新列的位置并选中新列。
在已创建的表达式上单击更多图标,可对其进行编辑、删除。

设置日期表达式

元数据中在日期、时间、时间戳类型的字段上单击更多图标,或者在细节数据界面选中日期,时间,时间戳类型字段的列头单击【更多】图标,菜单中选择新建日期表达式。表达式对话框如图:

新建生成日期表达式后,会自动选中该列(如果生成多个则只选中第一个),如果有纵向滚动条会滑动到新列的位置并选中新列。
在已创建的日期表达式上单击更多图标,可对其进行删除。这里不再赘述,详细信息请参看本章的日期层次。

为字段设置别名

元数据中选中某列,单击别名,可以为该列设置别名。也可以在细节数据界面,选择某列的列头,单击更多图标选择别名来设置。

控制列权限

列控制包含可见性与列过滤,为不同用户分配不同数据列的查看权限。对维度列设置不可见,在报告中查看时,在组件中会根据隐藏后其它列重新进行计算。
在数据集的元数据,可以对数据集中列的可见和列过滤器进行设置,如下图所示:

可见性

【可见性】数据集中的列默认为可见状态的,当单击某一列的【可见】,该列在元数据区则会立即不可见。

【显示隐藏列】勾选上“显示隐藏列”,【可见性】设置了不可见的列则会显示出来,显示成灰色,【可见】上会显示一条向右的斜线,表示此列为不可见,再次单击这个按钮该列就可见了。

列过滤器

【列过滤器】在管理系统 - 认证授权 - 安全管理下设置文件权限后,在数据集的元数据区域会显示列过滤器的操作项。列过滤器可以对用户和组设置不可见的权限。
当鼠标单击数据列与列过滤器的交叉处时,将会显示提示文字:编辑,单击编辑,则会弹出列过滤器对话框,如下图所示。

【可选列表】列出了所有可以被设置权限的用户和组。只有具备 admin_role 和 groupAdmin_role 的用户才可以设置列权限。对于 admin_role 的用户 , 可用列表会列出所有的用户,组和角色。对于 groupAdmin_role 的用户,只列出 groupAdmin_role 下的所有用户和组。
【已选列表】添加到已选列表中用户或组在查看报告中不能看到所编辑的列。例如:对 product 列进行列过滤器编辑,将 user1 添加到已选列表中,确定。再用 user1 登录后,在编辑报告中都不能看到 product 列。
【添加】将可用列表中的用户添加到已选列表中。
【移除】将可用列表中的用户移除。

可见与列过滤器的关系

在可见的状态下,可以对用户,组和角色设置列过滤器。设置后,所设置的用户,角色和组对设置列不可见而其他的用户,组和角色不受影响。
在不可见的状态下,列过滤器的对话框为置灰状态的。不能对列过滤器进行编辑。对度量列设置不可见后如果在组件中已绑定该列,打开组件后不会对绑定产生影响,但组件中不会显示该列。