e-works数字化企业网  »  文章频道  »  管理信息化  »  BI

BI系统如何保证数据质量

2018/8/15    来源:即席查询与内存计算    作者:冯海文      
关键字:BI系统  数据质量  
本文着重探讨一下BI系统的数据质量及保证问题。

    大家普遍认识到了数据的重要性,提升到资产的高度来宣传也不为过,但其实数据的价值是应该乘上一个质量系数的,数据质量好则数据价值高,数据质量差则数据价值也大打折扣。针对烂数据进行分析、应用,不仅仅是浪费智慧,还浪费时间、钱财和机遇!

    本文着重探讨一下BI系统的数据质量及保证问题。

引发BI系统数据质量问题的原因

    有各种各样的因素导致BI系统数据质量问题,但归纳起来就两个:

    ●源系统数据质量本身不可控

    ●BI系统的ETL程序对异常考虑不足引发

    导致数据质量问题的两个原因其实也是一个,就是由于程序不完善导致的,但源系统的程序不在BI系统控制范围内,也不可能为了BI系统的需要而大动干戈,所以就只能客观面对数据本身,并专注在BI系统自身如果保证数据加工不跑冒滴漏、不偷梁换柱、不无中生有。

电信运营商BI系统的数据质量管控

    电信运营商在建设BI系统时,对数据质量提出了很高的要求,同时也投入了大量的人员、时间和资源来改善、提升数据质量。又不同省份之间经常性探讨、交流成功经验,逐步形成了一套有效的管控方法,还编制了数据质量管控规范贯彻执行,为数据应用保驾护航。

    电信运营商BI系统数据质量管控有很多可取之处,这里粗略介绍一二。总体上电信运营商BI系统是通过人工和系统相结合,分阶段侧重改善数据质量的。

分阶段侧重改善数据质量

图1 分阶段侧重改善数据质量

    电信运营商BI系统中的数据质量管控相关程序包括但不限于:

    1、自动维表维护,自动并优先于其他数据,同步源系统的代码表;

    2、数据质量核查,一个很大、很复杂的系统,人工配置数据质量核查点、核查方法,系统自动采集数据、比较、告警、报告;

    3、元数据管理系统,在数据质量保正方面的主要应用是利用血缘关系定位出问题的程序。

    估计是电信运营商出于对电信服务SLA的习惯,也出于对数据质量的深刻认识,在数据质量保障上不遗余力,普遍采用上述质量改善及保障流程,效果很好,不过每引入新数据时,每上线新应用时,都要部分地从第一阶段开始重复数据质量管控过程,存在投入大、周期长的缺点。

数据质量保障的新探索

    电信运营商BI系统并非只用于商业分析,还需要出生产报表,而生产报表又和企业员工、部门的绩效考核相关,与其他公司结算相关,与汇报及对外发布数据相关,要求数据精确平衡,1分钱都不允许差,之前用于商业分析的数据质量保障方法并不能让人十分放心,数据质量保障必须进行新的尝试。

    介绍这个尝试前,简单介绍一下电信运营商数据仓库的分层模型,也就是数据仓库为了加载数据方便,为了加工过程简便,为了提高汇总数据的复用度,也为了维护简单等目的,将数据存储划分为三个层级,即ODS(Operational DataStore)、DW(Data Warehousedata store)、ST(Star Schema datastore)。一般地,数据单向地自ODS,经DW后,流到ST层。分层模型也有演进,但这三层通常都在。

    利用ODS层数据出生产报表就是应对挑战的新尝试,由于ODS层数据未经ETL的转换,从而避免了由于BI系统自身程序对异常情况考虑不足而引发的数据质量问题,1分钱的问题就这么巧妙地解决了!

数据质量保障的新方法

    从ODS层出数据实现最严苛的生产报表给了我们足够的启示,数据质量还可以更轻松、更低成本、从根本上解决,思路如下图所示。

数据质量保障的新方法

图2 数据质量保障的新方法

    ●近自描述数据(和标准的自描述数据有距离,就用这个词来指代一下吧)就是不转码存储的数据,举例如:

近自描述数据

图3 近自描述数据

    品牌、性别、星座字段就是近自描述数据,明细数据直接保存“全球通”、“神州行”、“动感地带”、“男”、“女”、“天蝎座”等内容,而不是其编码,也不再编码,就存储数据的本身。数据本身更有自描述的好处,从而生命周期更长,也更便于交换,最重要的是不会跑冒滴漏、偷梁换柱、无中生有,从而从根本上保证了数据的质量。

    比如,不会因为原始数据中出现“GoTone”、“GO-Tone”、“Go-Tone”、“神洲行”而导致筛选结果集数量错误,品牌构成的分析错误!

    ●自然维

    上例存储“全球通”、“男”、“天蝎座”数据的几个列,不重复值的数量很少,是一个维度,只是未抽取成独立的维表并存储维度id而已,这样的列都是一个自然维(欢迎提供更贴切命名的建议)。

    之前的文章中说过,像自然维这样的字段,存储数据本身并不比存储维表id或维度名称浪费空间,也不会耗费更多的计算时间。相反,如果处理的好,则空间开销还更小、处理速度还更快。

    ●去预处理和聚合

    数据以自然维方式存储,不用做维度转换,进一步像日期、地址、身份证号码、手机号、多级维度等字段也都不用做解析,即数据不做预处理,只简单、直接地存储。省去很多程序开发工作,又可以更快交付,更低开销、快速运行,同时程序和数据质量更可靠,何乐而不为呢?

    预先聚合曾经是非常好的性能优化方法,但如果聚合结果集较大、聚合结果复用度低、存在多种聚合形式,则通过预聚合进行性能改进就被其本身存在的缺点抵消殆尽了。因为预先聚合也要编程,运行也花时间,结果集存储也占空间,计算的结果集很难适应需求的变化,多结果间还可能带来一致性问题。

    使用近自描述数据、自然维、去预处理与聚合可以轻松保证数据质量,但也有一个缺点。设想一下,如果要在页面上为自然维提供一个可以勾选成员的下拉列表,则必须即时从自然维中group by或ditinct出不重复的数据才行,这远比从一个维表中取数据开销大的多!或许只有采用列存储、内存计算技术才可以既享受自然维的所有好处又不为其不足所桎梏!

责任编辑:程玥
本文来源于互联网,e-works本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供,并以尽力标明作者与出处,如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐