2021-01-08 11:50 浏览量:382
01
数据治理的背景
从1969年开始,互联网已经走过了PC、移动,向产业互联网时代迈进,人类活动被全面数字化。
数字化技术革命给商业带来前所未有的机会,大数据让我们更懂用户和这个世界,这一切看上去很美好,但是危机已经在悄然中来临。
随着业务的发展,数据规模也在以滚雪球的速度膨胀,带来了一系列棘手的问题:
1. 高昂的成本支出
据测算,存储1PB数据的硬件投入总成本在80万左右,对于那些业务遍布全国的互联网公司来说数据量达到60-80PB是很常见的事,这就意味着一年的存储成本要花5000-8000万左右。而且数据中心的机架容量是有限的,建设新的数据中心不是易事。这一切都在制约着企业的发展,吞噬着企业的利润。
2. 数据质量风险增加
海量的数据带来了复杂的链路依赖,数据质量风险濒临失控。随着数据量的增长,运维压力也越来越大,故障告警次数显著增多。
3. 组织协作出现问题
庞大的数据规模,纷乱的命名和存储,以及理不清的业务逻辑,让团队协同越来越难,推进大型项目需要参与的团队人数越来越多。体现在企业集中力量办大事的能力逐渐丧失。
4. 数据孤岛开始出现
想要获得一项指标,找不同的人可以得到不同的查询结果,这其中出现的问题主要是口径对焦。不同的人对于业务的理解也并不相同,缺少统一的标准,这是很多公司发展过程中都存在的问题。数据不好找,找到不敢用、不能用,迫使业务只能选择重复建设资产,而重复建设资产更进一步加剧了数据不好找不好用的问题,形成了恶性循环,数据孤岛壁垒越垒越高。
这一系列的问题如果任由其继续发展,数据对于业务只会变成鸡肋,甚至会成为企业的负债。
02
数据治理的目标
数据治理是一项复杂的工程,想要做好数据治理首先要做的事是定好目标。关于数据治理的目标,可以简单理解——数据治理的目标就是要让数据成为资产而不是负债。
数据资产的概念在上一篇文章中讲过,是能给企业带来经济效益的资源。想要让数据成为资产,不外乎是”开源”、”节流”,前者指的是释放数据价值,为业务带来增长,后者指的是节约成本。这里的节约成本不单单是涉及到数据存储成本,还包括了管理成本、数据风险成本等隐形的部分,让数据变成高质量的数据。
03
数据治理的核心
几乎所有关于数据治理的定义都在谈论建立”组织”、明确”权责”、制定”方法/制度/标准”。事实上,数据之所以需要治理,问题的根源在于”无序”。而数据治理的核心就是制定数据世界的游戏规则,让数据世界重归有序。
1. 组织设计
明确数据治理的权责是开展数据治理工作的首要步骤。因为一切问题都可以归根于人的问题。资源的调动,制度的设计、执行、监督,最终都要落实在人上。很多时候问题难以推进,原因就在于人的重视不够,级别不够,相关方不配合。
某金融科技独角兽公司在从事数据治理的过程中识别到主要问题表现在数据架构腐坏,而数据架构的腐坏的根源在于缺少推进全局数据架构持续演进的组织。这个组织是数据治理顶层设计的灵魂,为数据治理的最终成果负责。为此,该公司成立了数据超域架构师小组。
橙色集团十余年来的数据架构经验表面,一个稳定的持续迭代的中间层是保持数据架构有序的关键。跟随业务奔跑过程中总需要有人停下来修缮屋顶。为此,该集团将数据资产研发和数据应用研发角色剥离开来,以沉淀资产、中间层建设、资产架构优化为主要职责,设立数据资产工程师岗位和独立晋升通道。
2. 规则制定
规则规范的指定是开始具体工作的前提,目的在于统一标准,打破由于标准不一致带来的数据孤岛问题。
某金融科技独角兽制定了三项核心规范:”数据资产必须先定义后研发”、”数据资产不能重复建设”、”应用资产依赖公共服务资产建设”。这三项核心规范具备纲领性质,易于记忆和传播。
在核心规范指导下,更贴近于执行层面的,有一系列更详细的指导规范。例如如何保障指标的一致性、如何确保标签资产实现互通互享、如何避免数据资产重复建设等。
3. 机制设计
机制设计的目的是解决组织协作的效率问题,可以分成研发协作机制和数据互通机制两方面来讲。
研发协作机制:要解决的是”找谁做(资源问题),如何做(架构问题),何时做(排期问题),如何用(沟通问题)”,建议采用独立资源统一架构统一排期模式,输出产物为数据中台全景图和操作手册。
数据互通机制:遵循”宽进严出、全链路可追踪可审计”的策略原则,兼顾效率提升和安全风控两方面。
04
数据治理的实施
1. 存储优化
数据膨胀是大数据治理最先要解决的问题,它直接关系到成本问题,解法是进行存储优化,也就是设计规范化的存储策略,提高数据的共享程度。
从空间方面思考:
第一个关键词是合并,即合并冗余表。一方面是扫描数据表的依赖关系,上游表相似,表字段也相似,判断可能是冗余表,只留一个。另一方面把高度重合的表合并,从小表变大表。
第二个关键词是舍弃,即舍弃冗余字段。有些字段并没有多大存储意义,或者可以从其他来源处获取,可以从数据表中剔除。
第三个关键词是拆分,即内容压缩。例如通过一个数据压缩节点把大json字段拆分成几个内容字段,把格式相关的部分舍弃,需要还原的时候再通过数据解压缩节点逆向还原回来。平均可带来30%的存储空间释放。
从时间方面思考
第一个关键词是生命周期。合理规划数据的生命周期,不同层的数据保留时间不一样。有的需要永久保存,有的不需要永久保存。
第二个关键词是冷热。对于那些暂时没有业务调用的冷数据,压缩归档。
除了通用化的策略外,不同行业,不同类型的数据还有自身特性化的治理策略。例如设备在某一个位置停留时间过久,回传了大量的重复坐标。
2. 计算优化
计算优化的目的一是节省运算资源,二是提高数据加工处理的速度,缩短数据生产周期。
第一个优化点是避免在异常数据上浪费算力。有些数据虽然格式上没有问题,但实际上根据业务场景的定义是异常的,可以忽略。还例如某个设备是故障的,将它识别出来后它所产生的数据都不再参与计算。
第二个优化点是识别并应对数据倾斜。所谓数据倾斜有两种情况,一种是某一块区域的数据大于其他区域,另一种是某一些数据的大小要远远大于平均值。对存在数据倾斜的部分进一步分割,可以加速计算。
第三个优化点是提升核心UDF的性能。UDF 的性能很大程度上决定了处理流程的时间长短。通过代码审查,找出性能可以优化的节点进行代码优化。另外,将Python的UDF改成Java的UDF也可以提升一部分性能。
第四个优化点是引擎配置调优,例如开启数据压缩传输、合理设置map/reduce数、合理应用Hash/Range Cluster索引机制等。
第五个优化点是将MR streaming节点改写为SELECT TRANSFORM方式。SELECT TRANSFORM的性能很好,而且也更灵活,能够提高计算节点的可扩展性。
【拓展】SELECT TRANSFORM介绍
很多时候我们面对的是这么一种场景,SQL内置的函数不能支持把数据A变成数据B的功能,所以我们用一个脚本来实现,而我们又想让它分布式的执行。这样的场景可以用使用SELECT TRANSFORM来实现。
SELECT TRANSFORM功能允许SQL用户指定启动一个子进程,将输入数据按照一定的格式通过stdin输入子进程,并且通过解析子进程的stdout输出来获取输出数据。SELECT TRANSFORM非常灵活,不仅支持java和python,还支持shell,perl等其它脚本和工具。
3. 工具提效
大数据治理需要牵扯到大量的表和节点上线、下线、测试、添加监控等,如果每个环节都需要人工操作,都要耗费很多人力,因此使用一些自动化和半自动工具可以显著提高效率,减少人工成本。
主要涉及到了数据比对工具、节点批量下线工具、自动化测试工具等。
05
数据治理的步骤
大数据治理与业务的正常发展是同步进行的,这就需要一个平滑的过渡过程。
1. 增量数据灰度平迁
这一步的作用是验证经过治理后的数据是下游数据应用方可以正常使用的,可以满足业务方使用数据的需求。主要需要解决好新旧数据表字段映射、字段扩展后数据补录等问题。
业务的迁移按照灰度原则,先迁业务轻体量小的,后迁业务重体量大的。分批次迁移之后持续跟踪、分析数据波动情况,一旦发现问题及早修复,以保障数据质量的可靠性。
2. 存量数据迁移
在增量数据上验证通过后,下一步就是迁移存量数据了。这一步需要关注的是存储空间的问题,一次性增加太多的新数据存储,旧数据来不及释放,会使得存储压力大增。
06
数据治理的效果验证
大数据治理的效果体现在数据存储成本是否降低、数据产出周期是否缩短、数据质量是否提高、数据量增长势头是否减缓等方面。
总结
大数据治理的过程是一个很好的梳理现有业务的机会。一次成功的数据治理不仅给企业带来成本、效能上的改善,还锻炼了数据团队,为数据价值体系建设奠定了基础。
来源:数据社