文/通贯
【导读】数据仓库治理系列文章,本文是第三篇,你可以回复数据仓库(当然需要先关注微信号alibabatech)查看整个系列。作者从实际经验中,总结出了一些大型数据仓库治理中,可能会遇到的问题。本文谈到了“维护成本高”的问题,大数据时代,你值得关注。
随着大数据时代的来临,数据的作用不再仅限于辅助运营决策,已经发展成为基本生产资料,融入到每个业务的血液中。每个业务线都有自己的数据团队或兼职的数据开发人员,我们的集群机器数量不断的翻翻,其他公司的数据工程师也如韭菜一般,被一茬一茬地收割进了公司,然而各个部门还觉得缺人手、招人难。
业务的蓬勃发展掩盖了数据团队的野蛮生长,加入有一天老板突然一惊:我们的数据团队运营成本已经进入了"双X亿"时代,每年机器成本X亿,每年人工成本X个亿。覆盖的收入多少呢?机器能关掉吗,人员能精简吗?
上述是宏观层面的成本,基本上可以用钱来衡量;从微观方面来看,每天数百数据工程师被报警短信电话骚扰,每天数百个错误数据正在等待被修复,每天大量的数据正在迁移....
在业务爆炸式增长的阶段,存在就是合理。业务发展进入稳定期、成熟期的时候,就需要反思一下野蛮生长的后果。
一、真的需要这么多的机器和人吗?
先看某数据仓库系统中的数据:
· 某子模块上共有数据表 i++ 万张,平均每天运行 i++ 万个任务。
· 某X信息表每天凌晨被调用 j++ 次(表引用次数j++)
· 某Y信息表每天凌晨被调用 k++ 次(表引用次数k++)
而且,这些数字每年都在直线增长.........
该业务规模真的有这么庞大吗?真的需要这么多张表吗?真的需要这么多的存储和计算资源吗?
有没有数据共享,数据复用的可能?
如果上面的数据说明了经济成本问题的话,下面说说运维成本。
· 2013年前7个月,任务报警 x W+万次(x可自行预估)。
· 其他工作如数据修复,数据迁移等工作量无法统计。
造成各种成本的主要原因是数据内容建设缺乏集约化的治理,任由各个业务粗放发展。
从各业务线数据开发人员看来,一方面,就是数据表太多,无法找到合适的数据,只能自己算;另一方面,数据缺乏统一标准,缺乏信任,所以自己算。这就造成了恶性循环。
二、有什么办法降低成本吗
从机房、机器、支撑系统来看,无容置疑,必然是集中建设、统一运维。
数据内容建设方面,这需要公司要有统一的数据架构和布局,让稳定的、不变的基础建设统一由一个团队来建设,例如成立ODS团队,统筹建设业务数据ETL、基础数据整合、统一维表库、时间事件库、业务环境库;让随业务多变的、个性化的、需要创造性的数据建设开放给各个团队自由发挥,推动数据加工、生产、创造的服务化、标准化、专业化、市场化。
· 服务化
建立一条集团级的"企业数据服务总线",各个团队将自己拿的出手的产出注册在服务总线上,分享出来;数据应用部门去总线上找解决方案、找服务,而不是苦逼地去搜表--找业务方--自己开发。
这里的“服务”不特指服务、接口等具体数据提供方式,可以是离线文件,也可以是数据表,当然也可能是接口。
Tcif(阿里巴巴集团某服务)就是个很好的例子,每个应用部门想要用消费者属性、行为特征、标签数据就会想到它。
这样提高了数据的复用性,避免了很多的重复建设,会节省很多的人力资源和机器资源。
· 标准化
这里的标准化包含数据生产过程标准化、产出结果标准化、数据提供方式标准化。让数据生产成本更低、数据质量更高、数据消费更便捷。
标准化说起来容易,推起来难,公司内不少团队都做过或正在做指标标准化的内容,希望能有好的结果。
· 专业化
一方面,要加强数据开发、数据模型设计技能的培训,提高数据生产者的水平。
另一方面,要让最懂业务的人参与数据生产。数据质量最容易出问题的原因不是开发过程的bug,而是业务理解不透,业务理解上有漏洞。
· 市场化
目前数据团队百花齐放、百家争鸣有很大的正面意义,我们不要害怕重复造轮子,但也要防止无数次地生产垃圾。
如何最高效地配置资源,发挥员工的能动性和创造性呢?让市场来当裁判。
基于“企业数据服务总线”,建立一个“企业数据服务市场”,让数据消费者来检验数据服务的质量,让优质的数据服务得到保留,劣质的淘汰。让持续优秀的数据服务团队得到更多的机会。
【嘉年华推荐】
今天的030号文章附篇《「三十而立」答谢订户两重礼》,是一个订户答谢活动,敬请关注。
--
微信名称:阿里技术嘉年华
微信号:alibabatech
简介:传播原创高质量的技术内容