分享

谈谈提高数据质量的若干方法

 静静的看一看 2020-10-16

    在数字经济社会时代,工业企业的数据呈现指数级增长,只有数据成为数据资产才成实现数据业务化,才能使数据资产持续产生价值,对业务和战略进行强有力的支撑,然而数据质量是数据形成数据资产的重要条件之一,数据质量不高,数据资产的价值就难以有效发挥。

      现在很多工业企业在进行数据中台建设的实践,数据中台尤其需要在整个数据供应链中保障数据的质量。数据中台体系构建得再好,如果数据质量不能得到保证,垃圾数据进垃圾数据出,那么数据价值将大打折扣。

      数据质量是数据治理体系的治理域之一,是和数据资产、数据应用、数据价值关系最大的部分,数据治理的其他域如数据安全、数据生命周期管理、数据治理组织等对于数据治理而言只需要参照遵守。因此,数据质量是数据资产化、数据业务化、数据产生价值的重中之重。下面谈谈如何更好的提高数据质量。

      一、数据质量的常见问题

      我们从以下几个维度对数据质量问题进行描述。

      1.准确性

      数据要与客观实际相符,即使数据项为空,也不提供错误或者失真的数据。

      2.合理性

      数据要符合数据模型的定义和描述,且与常理不相违背。

      3.一致性

      如果同一个数据存在多处存储,那么数据及数据内容需要保持一致。

      4.唯一性

      在同一个存储区域内,相同的一条记录应该避免被重复。

      5.及时性

      数据应该能够反映客观实体的当前状况,且在需要的时候得到保证。

      6.完整性

      数据采集要完整,没有必要关键数据项的内容缺失。

      下面将以主数据、交易数据、行为数据、业务指标和实体标签数据这四类数据在六个维度上对常见的数据质量问题进行说明。

     对于数据质量的提升,大多数企业以往的做法是在数据仓库中进行各种“清洗”操作,但是这种方法治标不治本,而且这些都属于后期的人为干预,这样的干预有时候本身就是一种错误。所以,企业必须要通过数据质量管理,进行治本的操作。

     二、通过规范数据模型提升数据质量

      规范的数据模型设计和科学数据模型标准直接影响数据质量。如果在模型定义阶段就是混乱的、不可视的,那么整体数据质量就很难得到根本性的保证。

      通常使用以下几个维度检查数据模型规范。

      ■数据定义方面

      数据模型的定义是否清晰、准确。

      ■数据属性方面

      数据属性的定义是否清晰、明确,属性数值是否可获取。

      ■数据分类方面

      数据分类的内容、方法是否清晰和合理。

      ■其他关注方面

      主数据的颗粒度问题。比如,用一个比较粗颗粒度定义物料主数据和用比较细颗粒度定义物料主数据所得到的最终数据数量会存在较大差异。

     主数据的编码问题。比如,如何为主数据编码,是把它编码成有含义的代码还是编码成无含义的流水码等。

      1、数据的定义

     企业需要对元数据进行全面梳理,并进行模型定义的检查。这项工作可以基于企业整体的数据资源盘点工作开展。

     主要关注的重点内容如下:

      主数据的定义

      主数据的定义要让我们知道要描述的实体是什么,范围有多大。比如,在定义员工主数据的时候,可能会进行如下的定义:“企业内所有签署了劳动协议的员工和企业所有者的集合”。从这个定义中,可以看出,“实体对象:企业员工;约束:签署了劳动协议的员工;是否包含管理者和股东:包含”。

     交易数据和行为数据的定义

     交易数据和行为数据的定义,至少要包含清晰的时间、地点、人物和明确的行为内容等信息。比如,采购申请单定义:“业务部门向采购部门提出采购申请的正式单据”。

     业务指标和实体标签数据的定义

     我们在对业务指标和实体标签数据进行定义时,要详细阐述业务维度的计算口径、技术维度的计算口径和管理属性。

     数据模型的数据属性

      在数据模型定义的基础上,还需要让数据模型中每个属性都能够有清晰的定义。数据属性从属于数据模型,是对数据模型所描述的实体或者行为的局部信息记录。数据属性的定义遵从以下原则。

     1)准确性

      数据属性的定义和描述要准确。

     2)可获取、可维护

     数据属性是可以获取的,是可以进行维护。

      3)满足业务需求

      数据属性的定义满足业务需求即可。

      4)可扩展

      数据属性要具有可以扩展性,以便支持未来的需求。

      在进行数据模型定义时,一方面要注意数据模型本身的定义,另一方面要注意数据属性的定义。当我们从全局视角梳理这些信息的时候,就比较容易发现问题。比如,名称相同,但是含义不同;同样的含义却起了两个名称;在同样的名称和含义下,数据范围或者计算口径略有差异。企业级别的元数据管理或者数据资源盘点工作可以相对有效地解决上述问题。

      2、数据的分类

      数据分类主要有两个目的,一是便于查找和统计分析,一是便于对事物认知。从数据的角度来讲,枚举数据、参照数据都可以被理解为分类属性。比如,“人员”数据中的“性别”属性,是一个枚举数据。“人员”数据中的“岗位”属性则是一个参照数据。

     数据的分类属性要遵循三个基本原则。

     (1)单一视角。我们不要从多个视角对数据进行分类。比如,对人的分类,我们可以使用性别属性,可以使用血型属性,也可以使用肤色属性,相关的属性可能还包括岗位、职务级别等属性。但是每个属性都有一个自己的独立视角。

     (2)全部覆盖。分类可以将数据的全集包括在内,也就是说,当前已知的和未来可能会产生的数据,应该都可以归类到这个分类体系中。

     (3)不能交叉。一条数据在一个分类体系中不会既可以属于“A”,又可以属于“B”。

     在数据分类过程中出现的常见问题与解决方法如下。

      1.在多视角需求时,制定多个分类方法

      很多人认为一条数据应该只有一种分类属性,从而在设计过程中将各种视角放到这一个分类属性中。假如,我们有一个筐,里面装了100个萝卜。如果按照体积分,那么这些萝卜可以分成大萝卜、中萝卜、小萝卜三类;如果按照颜色分,那么这些萝卜可以分成白萝卜、青萝卜、红萝卜;如果按照品种分,那么这些萝卜可以分成白萝卜、心里美和水萝卜。所以,分类方法可以有很多种,每个使用人的需求不同,其使用的分类方法就不同。

     2.在种类繁多的时候,使用多级分类,且避免多重视角

     当分类对象的分类内容量比较大时,我们通常采用多级分类的方法。最典型的场景就是企业对物料的分类,分类内容为几千甚至几万种都较为常见。但是我们要避免在一个分类属性中,包含多种分类方法和视角。比如,第一层按照材料分,第二层按照业务线分,第三层按照品类分。这种分类方法最终会导致分类的混乱和操作的混乱。

     3、 数据的颗粒度管理

     当某类数据既作为主数据又作为类别数据的时候,我们就要关注数据的颗粒度问题了。如果不能处理好数据的颗粒度问题,就会导致数据混乱,最终影响数据质量。

     下面详细地解释一下什么是颗粒度。当定义的主数据本身就是一种类别数据,且用一种比较粗的视角看这些主数据时,这些主数据在记录里可能只有10条记录。如果用另一个视角看这些主数据,那么这些主数据可能有100条记录。比如,直径为20mm的阀门,在现实中存在无论这个阀门有多少个,它的备品备件编码都是001,如果将这个颗粒度调细,变成20mm的单向阀门和20mm的双向阀门,那么这些现实中的东西就对应到了两条数据上。

通常来说,人员主数据、客户主数据、供应商主数据、组织主数据都不存在颗粒度问题,因为这些主数据所描述的客观对象如果是一个就是一个,不会分成两个。而物料主数据、产品主数据、资产主数据则都存在颗粒度的问题。

     4、数据的编码

      数据的编码问题通常发生在主数据上,交易数据和行为数据已经大量采用了流水编码或者业务含义码+流水码的方式,而业务指标和实体标签数据基本不存在编码问题。所以,下面重点讨论主数据的编码。

      1.我们期望“编码”所达到的目的

     1)实现“一物一码”

     比如,对于人员编码来说,一个码就代表一个人,不会有二异性;物料码指的是从企业的具体使用视角对物料的编码。编码是唯一的、不变的,是在其他各个地方都能够作为一种标准持续使用的。

     2)通过编码得到描述对象的信息

     由于条件的限制,如果能够在编码的过程中,将一些描述对象的属性包含进去,就会大大地增加信息的传递量,在使用编码的时候,我们就能够直观地获取到该编码描述的事物的很多信息。

     2.以往主数据编码的局限和矛盾

      1)编码的可读性和包含属性

      一方面,我们希望编码包含的信息越多越好,但另一方面,编码又要受到长度的限制。那么到底哪些信息需要纳入编码范围呢?我们对这个范围的把控其实并没有一个合理的度。

     编码如果包含的信息过多,就会产生长度过长、可读性差的问题,并且会使得编制难度增加。编码如果包含的信息过少,就违背了编码的初衷。

      2)可变属性与编码的不可变性

      一方面,编码一定是不可变的;另一方面,编码又要包含属性信息,而总有一些属性是会发生变化的。这就产生了矛盾,当编码描述的客观事物的属性发生变化时,编码一般都会依从于“编码不可变原则”而保持不变化。这就会使得编码中包含的信息变得不那么准确,而只能反映编码产生初期包含的历史信息。

     3.主数据对编码工作的扩展和支持

      1)建议编制流水码

     在信息化程度大大提高的今天,大量操作都依靠应用系统支持。在当前情况下,我们可以把两个矛盾分开处理:让编码仅承担唯一性标识的功能,把其余信息在属性中体现。所以,我们当前建议使用流水码进行主数据编码。

      2)把众多属性信息放在数据属性中记录

      可以通过系统非常方便地查看数据中的属性信息,而没有必要把属性信息编入编码。

     3)生成助记码

      可以适当生成助记码,以便反映主数据中的一些关键信息。

     三、通过有效数据管理提升数据质量

     在所有录入的数据中,我们都期望每一条数据、每一个字段能够明确地回答由谁(或者岗位)在什么时间依据什么在哪里录入和维护。这些信息应该可查可追溯,只有这样,才能够感受到数据管理体系的存在和对数据质量的基本保障。

      企业应该对所有数据的管理情况进行全方位梳理,以便检测可能引起数据质量的管理问题。梳理工作应该着重于主数据和交易数据,很多行为数据是由机器采集而被动产生的,统计结果数据来说最核心的要点是定义的准确、数据的计算和使用过程。所以,数据管理的重点是主数据和交易数据。以下的数据管理情况在很大程度上会导致数据质量出现问题。

     数据和数据属性存在多头管理

      多头管理是指很多部门和岗位都可以对一类数据进行管理和维护。

     没有数据管理流程和标准

     当填报数据和管理数据的时候,尤其对于复杂类型的数据,企业没有一套标准的管理流程和管理依据。比如,化工企业生产的磷肥,当维护“材质”属性时,就需要具体的标准进行指导和流程进行控制。

      没有数据管理要求和惩罚机制

     数据管理对责任、时间、管理和维护依据都要提出明确的要求,对发生的问题要进行解决,对违反制度的行为要进行惩罚。

      缺乏技术上的监督和保障

     企业中没有必要的技术手段配合检查数据管理问题。

      1、数据管理组织

     定义了数据模型后,就需要建立明确的数据管理组织对数据进行有效管理。

     建立数据管理组织

     数据管理组织的建立是必需和必要的。如果已经存在数据管理组织,就需要明确它的职责,如果没有对应的组织,就需要建立起来,不管是实体的还是虚拟的。对于企业的关键主数据而言,数据管理组织的建立更重要,因为这些数据(比如,组织机构主数据、客商主数据、产品主数据、物料主数据、项目主数据等)的全生命周期伴随了企业经营的完整过程,往往是跨组织、跨部门、跨系统、跨业务流程的。

      明确管理职责

      通过数据资源盘点,对于数据管理职责不清的数据,一定要明确管理责任,保证数据管理在职责上是明确和完整的。

      管理职责执行

      凡是进行数据录入和维护的部门,应该都属于数据的管理组织,只是这些组织在进行数据管理的时候,往往出于使用目的,对自己所承担的数据管理职责意识不足。企业应该从数据管理视角对所有管理数据的组织和岗位进行数据管理的职责培训,提出明确的数据管理要求和宣传及贯彻执行奖惩办法。

     2、数据管理流程

      企业要建立每类数据对应的管理流程,明确在什么样的业务场景下,由谁依据什么对数据进行管理和维护。例如,对于人员主数据中的身份证字段,必须要求依照员工的身份证号进行维护,在必要的时候还要保留身份证的复印件作为审核依据。另外,我们通常也会对客商主数据中的组织机构代码字段进行维护,维护的依据就是企业或者组织的组织机构代码证,而且必须要保留证件的复印件作为审核依据。

     在以往的数据维护过程中,组织对数据维护的时间点并不敏感,有时因为各种各样的原因导致数据维护不及时、不准确,所以在数据管理流程中应该体现对数据维护时效性的要求。

     四、通过数据共享提升数据质量

     在企业中,由于业务价值链是整体的,所以业务系统之间存在大量的逻辑关系。如果业务系统之间的业务单据能够直接对接形成闭环,就可以大幅减少人为传递数据的工作。传统的数据集成和主数据管理共享工作能够很好地解决同类数据在系统之间传递与共享的问题。数据能够在业务系统之间流转和共享可以有效地防止人为操作所带来的数据不一致问题。

     在数据共享中主要存在三个问题:第一,业务数据如何传递;第二,基础数据如何保持一致性;第三,如何通过技术手段监督多版本数据的一致性。

     1、业务数据如何传递

     现阶段,企业主要通过数据服务进行系统之间的数据集成。比如有两个系统,A系统为数据源头系统,B系统为数据消费系统。这两个系统通过数据服务的方式进行数据传递。我们在进行数据集成方案制定的时候,要关注以下内容:①实时性。要求数据在变动的时候及时地被B系统获取。②健壮性。要求数据能够传递到B系统中,不会丢失。

      方式一:数据推送(推式)

     此种方式的做法为将主数据从A系统推送到B系统中,A系统为主动方,B系统为被动方。在数据推送过程中,数据推送者并不关心数据接收者的具体业务逻辑如何,只需负责把数据交给B系统,至于B系统如何处理都交给数据接收者。

      此种方式的特点:数据的实时性较强,主数据一旦发生变动就能够把变动信息传递到B系统中。

     方式二:数据静态获取(拉式)

     此种方式的做法为由A系统发布数据获取服务,等待B系统请求获取。数据静态获取方式较为稳定,并且把异常处理的工作交由第三方来完成。如果第三方支持数据静态获取方式,那么数据传递的准确性就大大地得到了保证。只是此种方式的数据实时性较差,可以结合定时获取方式进行,系统通常都将自动获取时间设置为1天或几小时。

     方式三:在底层数据库层面进行数据拷贝

     此种方式的做法为由第三方ETL工具监控数据变化,将A系统中的数据传递到B系统中。这样,每个系统就都不需要再费力地开发数据服务,把数据传递交给第三方工具,A系统和B系统的开发工作大幅降低。

     2、基础数据如何保持一致性

      由于软件工程的客观原因,每个系统的运转都需要构建一套基础数据体系。这就从客观上造成了基础数据的多头维护,也造成了数据质量问题的隐患。主数据管理体系可以相对完整地解决系统之间基础数据一致性的问题。

      统一的标准

      主数据管理体系会对重要的基础数据制定统一的数据标准和管理标准。

      统一的源头

      主数据管理体系对纳入管理的基础数据提供管理系统支撑或者指定对应的业务系统代为管理。

      数据的共享

      借助数据共享体系,主数据管理系统让标准数据在各个系统之间共享,从而保证了基础数据的一致性。

      3、通过技术手段监督多版本数据的一致性

      如果某个数据保存在多个应用系统中,尤其是主数据,就可以把它存储在数据仓库中,同时使用技术手段对它的一致性进行监控。

      这样可以有效地提高企业的数据管理质量,从技术角度进行二次监控,预防设计体系的不完整和管理上的疏忽与漏洞导致的数据质量问题。

      五、通过清洗历史数据提升数据质量

当企业制定了数据标准和管理规范,并且进行了广泛的数据共享后,历史数据的数据质量问题就显而易见了。如果希望从历史数据中挖掘出更多业务价值,那么对历史数据的二次维护就必不可少了。

      1、数据清洗的目的和策略

      数据清洗工作是数据质量提升工作中工作量最大的一部分。

      找全所有数据

      要保证数据的完整性和完备性。

      把属性补充全

      要标定可维护属性和不可维护数据。对于可维护属性,如果具备维护资料,就要确保属性都有内容。

      修改错误属性的数据

      对于数据的属性错误的数据,要将错误属性修改为正确的。

      2、数据清洗的范围和组织

      指定数据清洗的责任部门

      在开始数据清洗之前,需要为每种需要清洗的数据找到指定的业务部门,通常建议数据的对口管理部门就是数据清洗的责任部门。

      制定数据清洗的主要范围

      在开始清洗数据前,要确定清洗哪些数据:是全部历史数据、在某个时效性范围内的数据,还是即将发生的数据。

对于某些数据而言,是可以不对它们进行历史数据清洗的,或者只针对部分数据进行清洗,比如项目主数据和产品主数据。

      有些主数据项目可能在很久之前已经完成了,但是当时的制度相对不完善,如果要参与主数据项目清洗工作,那么很多需要的数据录入依据已经缺失了。在这种情况下,我们可以不对该部分数据进行清洗,因为针对这部分主数据清洗耗时长、成本高,且效果不显著。

      集中式清洗

      企业可以采取集中式的数据清洗办法:抽调业务骨干进行数据清洗工作,在集中的地点封闭进行,让数据清洗的成果在数据上线的时间点进行统一切换。

      3、数据清洗工具

     在历史数据清洗的过程中,要对所有关键动作和耗费时间做定性分析。其中,主要工作内容有以下几项。

      数据排重

      数据排重是指对比当前数据,找到数据重复项,并对数据进行合并。

      数据格式转换

      数据格式转换是指把当前的数据格式转换成主数据标准格式。

      数据内容校验

      数据内容校验是指对比当前的数据规范,对已有的关键内容进行核对和校验。

      对缺失数据进行补录,修改错误数据

      可以通过技术手段提示数据缺失和不一致问题,然后由人工进行数据补录和内容确认。

扫描二维码

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多