数据自动补全
数据自动补全是指Sugar BI将查询出来的数据中空缺的数据自动填补上对应的值,自动补全可以自动填补零或补空(即null
,对于折线图而言补空的效果是折线补空的地方无值,折线分成多段)。一个典型的使用场景是,例如用一条折线来展示本月 1 号到 30 号的数据,但是由于一些原因,数据库中缺失 5、6 号两天的数据,这时如果没有自动补全功能,折线图上就会完全忽略 5、6 号的数据,4 号之后就直接是 7 号,用户完全不知道缺失了两天的数据,这样对用户很不友好,这个时候自动补全功能就有用武之地了,它能将 5、6 号的数据补上 0 或者空,让用户在浏览折线图的时候能够一眼看出这两天数据缺失了。
Sugar BI中的折线图、柱状图、表格等一些图表在使用 数据模型 方式绑定数据时,支持数据自动补全。自动补全有以下四种方式:
度量空值补零
度量空值补零是指补全查询结果中没有取值的列,例如您拖入了 time、score 两个字段,但是有些数据行中 score 字段没有取值即是null
,这个时候如果你想把这些null
值都展示为0
,就可以使用度量空值补零。
原始的折线图效果:
此时2020-02-05、2020-02-07、2020-02-17号数据都为 null
,我们可以通过打开「度量空值补零」将这些null
值都展示为0
。
度量空值补零后效果:
当拖入的字段有多个度量时,当打开「度量空值补零」时会将这些度量中null
值都展示为0
。
按日期补全
在一些情况下,我们期望数据能够自动按照日期连续,对缺失日期的数据自动补上零或者空之类。
例如折线图展示多天的数据,但是由于一些原因,数据库中缺失了几天的数据,这时如果没有自动补全功能,折线图上就会完全忽略这些缺失的数据,用户完全不知道缺失了数据,这样对用户来说并不友好。因此Sugar BI提供了数据按照日期自动补全的功能。
需要注意的是,按日期补全需要图表绑定的字段中有日期类型的字段。
原始的折线图效果:
在需要补全的日期字段的设置菜单中找到「数据自动补全」选项
通过开启「数据自动补全」并选择「补全类型」
按日期补零后效果:
按日期补空后效果:
当日期字段设置了「日期数据聚合」时此时会按照聚合后的粒度进行补全,比如此时设置了「年-月」日期聚合类型,此时的日期补全粒度就是月粒度
原始的折线图效果:
按日期聚合粒度补零后效果:
按时间补全
按时间补全和上一节的按日期补全很类似,按日期补全的数据粒度是天,按时间补全的数据粒度可以让您自己选择(支持小时、半小时、10 分钟、1 分钟、10 秒等)。如果数据的开始和结尾不在某一天的 0 点或 24 点,可以选择「时间起点是 0 点」或「时间补全到 24 点」。
需要注意的是,按时间补全需要图表绑定的字段中有时间类型的字段。
原始折线图效果:
通过开启「数据自动补全」并选择「时间粒度」、「补全类型」
按2小时
粒度的时间补零的效果:
当时间字段设置了「时间数据聚合」时此时会按照聚合后的粒度进行补全,比如此时设置了「年-月-日-小时」时间聚合类型时此时设置时间补全时补全的粒度就是小时粒度,不支持再自行选择时间补全粒度。
按时间聚合粒度补零后效果:
按数字序列补全
有时,数据库中保存的日期、小时或其他有序数据是使用数字序列标识的,比如:-2,-1,0,1,2,3.....。或者是前面有 0 的格式(如一天的 24 小时):00,01,02,03.....。 此时,如果你的数据中这个序列存在空缺(例如一天 24 小时,数据只有 0 点到 15 点的数据,但是用户想把 16 到 23 点的数据补成 0),这时可以选择「按数字序列补全」,补全数据的类型同样可以选择补空或者补零。
首先需要选择数字序列所在的字段,这个字段在数据模型中的数据类型需要是整数或字符串。比如下图例子中选择了 info 字段。并且 info 在数据库中的数据内容如下:
原始折线图效果:
按数字序列补零后效果:
此时,Sugar BI会识别数字序列中的补位形式,并自动生成相同形式的补充数据。
这里需要注意,数据中的补位格式需要固定,如果有:01,2,03 这样的数据,会导致最终结果中补位形式的不统一
最后,通过配置「序列起始值」和「序列结束值」可以对数据补全的范围进行设定,范围外不会进行补全,但如果有数据还是会展示。
其它
当图表中包含多个系列时,如交叉透视表有列、行、指标三个系列,此时每个系列都可设置一个数据自动补全(同个系列中仅支持一个维度设置数据自动补全),如:「列」上拖入「name」、「time」字段、「行」上拖入「info」字段,此时可以给「time」设置一个按日期补全、给「info」设置一个按数字序列补全,数据自动补全后的效果: