前言
转眼间,七月过去一半有余。感觉时间过的好快,上周末还在和小伙伴讨论去哪玩,这又到周末了。回头看看,距离上篇文章差不多过去一个月。是时候总结下这一个月干了点啥了。
背景
自从入了数据的坑,感觉有做不完的优化。和以前做业务系统不同,之前,更多的是被源源不断的业务需求砸晕。而如今,做基础数据建设,每天都在想法设法优化数据,优化集群。怎么把数据的价值体现的更好上。
最近忙着搞数据治理。好像,这几天都在发送“账单”,催用户去处理数据。那么,有人会问:这是问什么呢?首先,数据有进无出。再大的存储系统也迟早会爆满。而且,从公司投入成本来算。没必要对一些冷数据或无用的数据投入过多的存储。
在说说,如果一味的以堆加机器的方式来弥补存储的不足。一方面,成本增加;另一方面,运维的成本也会增加。每天路过大数据运维同事旁边,拍拍肩膀:“今周打算加多少机器?”。对于运维同学来说,不也是很尴尬的一件事么?加机器,重复而无聊。虽说可以使用自动化部署,但是这种只增无减必定会带来维护成本上的“熵”增。
措施
面临这些囧状,对于数据的治理就迫在眉睫。就像人有生老病死,数据同样也有产生和消亡的过程。那么,数据就是有“生命”的实体。
如何开展数据治理呢?
生命周期
首先,要赋予数据生命,涉及到生命周期管理,这是贯穿整个数据链路上的。针对不同等级的数据设定不同的“生命”长短。过期的表删除,冷备归档,最终销毁。
账单
其次,要使用户对数据有感知,让用户知道自己使用的数据资产情况。那么,就会抽象出另一个概念“存储账单”。说到这,你可以理解为用户使用的存储成本计费。这样一来,将无感知物理存储,转变为更贴于生活的成本计费。比如:100G每天计费1元。那么,用户就会知道自己的表大概一天使用多少钱。只要谈到“钱”,一般人都不会轻视,“壕”哥除外。进行个人日账单,部门周账单的推送。
数据行为分析
再者,有了上面的生命周期
:可以实现用户自助管理自己数据生命,设置不同的生命周期,进行无用表的删除。同样,也可以对数据进行恢复。存储账单
:直观的体现数据成本,督促用户治理数据。
那么,似乎还需要给用户提供治理建议。这么一来就有了关于数据行为分析的概念。简单来说就是数据的增长(用户可以重点关注增长过快的数据),数据的访问情况(用户可以区分冷热数据)。其底层,会依赖hdfs的一些系统数据和metastore的数据。技术上,就是通过hdfs的fsimage分析存储目录的最近访问时间和存储目录大小等,再结合hive的metastore元数据信息,给出表的一些行为表现。从而,给予用户一些指导作用。
经历过数据治理的同学,一般都会被用户质问:
- 这个表为什么没用,最近什么时候访问的?
- 我用的很多么,我业务就需要啊。
- 能给出优化建议么?
等等。
所以,有这个数据行为分析展示。咱们治理的同学说话也有了底气不是么?
效果
大概治理了2周,公司的数据量从之前的接近12PB降低到现在的10PB不到,降幅在16.7%。同时,用户也接受了表生命周期
这个概念,能够主动去设置表生命周期来管理表。
不足
- 用户还是需要有更强的数据意识,当然,做业务的还是业务为重,这也不能怪他们。
- 缺少了点奖罚措施,或者说是治理委员会的一种治理制度规范。
- 在自动化治理上,工具还是欠缺。
改进
首先,希望在未来能够从数据源头做起,提高数据质量,避免不必要的加工环节,优化ETL链路(依赖表的血缘)。如果有自动化的工具,可以检测到数据链路,预测给出最优链路是再好不过的了。
其次,就是跟完善的数据行为分析和优化建议。结合各个指标的TopN进行治理。
然后,就是数据的准确唯一性,对判断依据统一化。
再者,加大“曝光度”。对数据大户,和数据使用不合理的用户增加其曝光度。这样,推动起来更高效。
最后,能够实现数据配额的管理,对部门使用数据量严格把控。
还有很多很多….欢迎交流!