说实在的,人工智能这个概念有些过于高大上,从大的方面包括深度学习、机器学习、强化学习等等,而深度学习又包括图像识别、语音识别、自然语言处理、预测分析;机器学习则包括监督学习、无监督学习、半监督学习,监督学习又细分为回归、分类、决策树等等。理论上人工智能什么都能做,什么都能迎合的上。
关键数据质量管理实在太接地气了,以至于大家都理解为数据质量检查规则定义、数据质量检查规则脚本、检查规则执行引擎、数据质量检查规则执行情况监控,数据质量检查报告;而数据质量校验规则无非就是一致性、准确性、唯一性、真实性、及时性、关联性、完整性的一堆校验,再大白话一些无非就是SQL语句。
而本人面临的还不是基于数据仓库的数据质量管理,数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策,数据仓库的集成性和面向主题两个特性决定了数据是有天然血缘关系的,血缘关系的存在是数据质量追溯的前提,能够抽丝剥茧一层层梳理,简而言之,目的性就是为了保障端到端的数据准确性。
刚入职电信运营商的时候,主要负责经营分析系统的流量业务和数据业务,初步统计过经分系统有七八千张表、几千个存储过程,从接口层到存储层到中间表再到汇总层再到报表层,设计上倒也很合理,在不懂业务的情况下,为了快速上手,曾经花了3个月时间去阅读一百来张中间表的数百个存储过程,形成了几份人肉血缘关系文档,再过一年基本就可以设计数据模型了,这是个笨方法,但也是最快速的办法。
入职新公司后,每年推陈出新一大堆新概念,但基本上落地的很少,数据中心、数字平台、数据平台、数据中台、数据湖、物联网、人工智能平台,云化重构,昨天阅读到一篇文章,说数据湖就是懒人数据仓库,公司非常想挖掘现有和历史的业务数据,但是还没有详细的规划如何分析。所以需要先保存数据,在考虑以后的分析,毕竟对于很多公司来说,数据就是巨大的资产。毕竟数据湖既新潮又解决不了实际问题,而且hadoop、mpp既廉价容量又大,关键是规避了数据质量和企业数据模型,我想大概就是这个原因吧。
本人要面临的是什么呢,一大堆业务系统,一些半集中化的报表系统,ETL工具五花八门,有ETL工具,有DBLink抽取的,有ogg同步的,业务系统之间靠主数据和SOA进行数据协作,就像任何早期系统一样,初衷设计是好的,实际落地都会大打折扣,于是出现了数据质量问题,数据质量问题又分解为技术问题和数据问题,技术问题当然是追究系统建设的原因了,当然也无法追究,毕竟上线那么多年了,数据问题要追究业务部门录入人员和使用人员的责任,就涉及到数据认责,数据认责又牵涉到各方利益,所以巴拉巴拉的。
但是工作还得做啊,尽人事听天命嘛,个人认为数据质量问题短期内解决数据同源问题,长期目标是为了解决企业数据模型问题,毕竟数据质量核查过程是了解数据的过程,了解数据的过程就是不断熟悉业务的过程,熟悉业务自然就会站在业务人员的角度去考虑企业数据模型问题。
前面是讲了数据质量问题的目标,当然要数据质量问题不可避免要涉及到制度机制、平台工具、运营团队。
一、基于数据管理能力成熟度和公司数据管理过程中的问题制定一系列实际可操作可落地的数据管理制度。
二、关于数据认责,要基于业务场景开展尝试,而不是胡子眉毛一把抓
三、建立一套综合数据质量平台,为数据质量提供自动、自助、智能化的平台支撑,数据还是要集中的,不集中什么都治不了
四、搭建一套数据闭环管理流程,自下而上收集问题处理问题
五、有一套数据治理组织架构,这个一般雷声大雨点小,那就从自我做起吧,一个数据运营团队和相关分工还是要的。
搞到最后,还是少不了钱,有钱不是万能的,没钱是万万不能的,制度、平台、团队都是靠钱的。
前面讲了一堆数据质量的事情,怎么解决人工智能的问题呢?其实也借鉴了一些网上的部分,当然自己也反复思考,为了工作夜不能寐。
数据质量的问题主要发生在源端、传输过程和目标端,这话说起来容易,实施起来难,几万张表上百万字段估计一辈子耗进去都脱身不出来,怎么办,靠人工智能和专家经验。
一、确定数据质量范围
1、基于表热度分析、引用对象分析、血缘关系分析,选择一些重要的表和数据项进行数据质量核查,再跟业务部门进行确认,一般来说大差不差。
2、那些基本没啥人用的表或没数据的表,可以无视了。
3、本来想基于自然语言处理的文本相似度计算数据库表相似度匹配,判断表之间是否高度重复,相似度高的也可以做排除法,结果一条SQL就能搞定了,又和人工智能没啥关系了。
二、数据质量检查规则
1、针对少量核心检查规则,从大数据中选取训练数据样本,利用机器学习算法进行深度分析,提取公共特征和模型,可以用来定位数据质量原因,进行数据质量问题的预测,并进一步形成知识库,进而增强数据质量管理能力。说实在的这个有点虚,啥规则都没有能挖掘个屁出来。
2、基于正态分布、长尾分布的数据质量监控,通过机器学习训练,确定数据阈值,判断数据是否为异常数据,可做事前研判、事后监控,针对数据质量;当然这个范围极其有限。
3、更多的还是自动生成SQL脚本好了,当然是最简单的规则了,最不济的是靠人肉阅读代码生成校验规则。
三、数据模型管理
1、过机器学习技术分析数据库中数据实体的引用热度,通过聚类算法自动识别数据模型间的内在关系,同时也可对数据模型质量的检测和评估,这个是抄的,不过和我写的有点类似。
2、基于知识图谱的元数据管理-进行数据链路、血缘关系分析,进行应用场景聚合。
四、数据传输监控
1、利用机器学习技术对数据历史到位情况分析,预测数据的到位时间,为保证数据处理的及时性和应对数据晚到的影响提供支撑。这个适合在数据仓库中。
2、我面临的问题有些复杂,暂时还没想好。
五、数据问题发现
就是定位在具体的非值域数据环节,例如身份证、地址、单位名称、有规则的业务编号上进行词性、句式、语义分析,增强数据质量和数据安全管理能力。
能想到的暂时就这些了,人工智能可以在数据质量管理的小部分范围内发挥作用,但更多的还是靠人和人肉代码吧