随着电商业务不断发展和成熟,对数据稳定性、数据质量、数据成本的要求越来越高。为了能可持续地提供质量更高、产出更快、表现力更强的数据资产,数据治理成为数仓日常工作的重要一环。本文将从现状解读、发展阶段、解决方案以及思考与展望四大部分,分享电商数仓治理的发展历程和实践总结。
01 数仓现状解读
首先来介绍一下电商数仓的现状。
/ 数据规模
从上游、自身和下游三个视角来看数据复杂度:
● 上游:数据源类型多,业务和作业的依赖关系复杂,导致保障难度增大。
● 自身:数据域组合多样,业务复杂度高,数据组织形式多样.
● 下游:下游应用场景复杂,使用方式多样,SLA保障压力较大。
/ 数据保障要求
数据保障会从质量、成本、安全和效率四个方向进行考量:
● 质量:包括及时性、一致性和完整性的考量。
● 成本:包括 70+组件,需要将资产成本量化,全域拉通标准,进行管控。
● 安全:涉密字段多,下游访问多,要保证数据访问的安全性。
● 效率:资产体量大,治理动线复杂,需要提高整体效率。
02 电商数仓发展阶段
数仓发展可以分为四个阶段:婴儿期、少儿期、少年期和青年期。如上图所示,每个阶段都面临着不同的挑战:
● 婴儿期:混沌初开,数仓没有明确规范或只有局部规范,导致研发流程混乱,缺乏原则性指引,这一阶段重点关注的是规范、原则类内容建设。
● 少儿期:快速成长,由于关注“快”,所以出现“营养不良”的问题,即质量和稳定性不足,这一阶段的重点是提高数据的质量和稳定性。
● 少年期:能力构建,为了满足业务场景,需要快速落地各类能力建设,为此的代价是数据资产快速增长,同时伴随着高昂的数据成本,所以控制成本线性增长为此阶段关键问题。
● 青年期:能力成熟,随着存量能力成熟,会逐步开启新的工作方向,这一阶段的特征是管理的项目会逐渐增多,此阶段下治理效率显得尤为关键。
03 解决方案
下面将介绍电商数仓治理团队针对以上各阶段的具体问题所提出的解决策略。
/ 婴儿期:标准化流程
婴儿期的核心问题可以总结为三个方面:
● 无规范,或者只有个人规范。
● 规范落地效果差。
● 规范和效率之间需要找到一个平衡。
采取了以下解决思路:
● 整合规范:听取业务一线意见,结合关键的目标,把整个主流程做了串联。
● 增量管理:重点关注新增资产流程的落地,收敛新增问题。
● 分级管理:抓大放小,把控好主流程,各子流程交由各子方向去处理。
上图所示为整体方案。值得一提的是,在 Hive SQL 研发和同步作业研发过程中,数仓治理团队制定了更多标准,以提升大家对各个组件的理解和使用效率。
此外,在测试和发布流程中,数仓治理团队也做了一些卡点,核对质量、SLA 和成本,这样会使整个流程更加健全且可扩展。在发布阶段,针对性地实施了弱/强管控分层,灵活且有效解决了增量场景。
具体效果不再赘述。整体看,承接率、逾期率等都得到了明显改善,新增资产得到有效管理,存量资产也逐渐自然消亡。最终成功实现了主流程和子方向规则的平衡,各业务方向也都接受了这套模式。
/ 少儿期:稳定性&质量保障
少儿期的主要问题包括:
● 变更不收敛:新变更不遵守规则。
● 问题感知滞后:直到任务运行才能发现变更带来的错误问题。
● 事后治理落地差:传统方式效率低,效果难以保证。
● 资产基数大、管理难。
针对上述问题的解决思路如下:
● 加强控制流程:避免新发布的内容逃逸规则。
● 提升问题感知能力:通过增强监控和自动化的故障检测机制来提早发现潜在问题。
● 改善事后治理效果:利用自动化工具和技术,如标准化工作流程和资产精细化管理,以提高效率和合作意愿。
● 实施分层管理和标准制定:明确每一步骤的操作指南,从而在整个开发周期内保证质量与效率。
此外,数仓治理团队还提出了一个全面的解决方案框架,涵盖了事前预防、事中管理和事后改进三个阶段,旨在建立一个更加稳定、高效和可靠的软件开发环境。
● 事前:重在防患于未然,事前如可覆盖治理效率最高。
● 事中:将作业执行阶段拆分为调度前、调度中和调度后三个阶段,并分别采取相应的方法和措施。
● 事后:专项治理,侧重关注治理策略、策略实施需要具备哪些能力,以及如何更高效地实施这些策略。
● 管理:拉齐标准,对资产进行分层,并推动标准落地。
事前要让问题提前暴露出来。主要有三大目标:
● 质量提升,事故降低:有效减少事故数和报警数,在实践中不断打磨。
● 效率提升,常态治理:无需推动事后治理,一些基础规范会在自然迭代中自然消亡。因此,事前处理比事后处理的效率要高得多。
● 分而治之,沉淀通用:将开放的检测逻辑下发给各子方向(类似中台),同时收敛各方向优秀规则,形成较完善打包方案。
图:一些常见的治理项,包括基于模型、编码、配置等的事前检测规则。
事中可分为调度前、调度中和调度后三个阶段,具体处理方式如下:
● 调度前:更改任务后,任务尚未运行时,需要进行巡检,以便提前发现问题。
● 调度中:任务执行过程中的运维工作,重点在于止损能力,即一旦发现问题,能够快速定位、排查和解决问题。同时,还可以进行自主优化。
● 调度后跟踪:问题已经发生,需要确保问题得到彻底解决,避免再次发生。
图:调度前场景的一些常见的巡检规则
图:调度中应具备能力的总结
图:调度后应具备的能力总结
图:调度后应具备的能力总结
整体效果从四个方面来看:
● 数据质量:通过质量专项和标准的落地,电商 BP 全年保持 0 故障。
● 数据SLA:基线破线率低。
● 事后治理:不仅覆盖了 Hive、HDFS 等常规组件,还包括 ES、ClickHouse 等十余组件的事后治理项落地,治理效率大幅提升。
● 资产管理:部分完成了消费场景的分类和打标,帮助治理团队对现状有了更清晰的认识,也提升了资产分析和数据治理的效率。
/ 少年期:成本治理
少年期的主要任务是成本治理,以下是几大难点:
● 资产组成复杂:为了实现业务所需的功能,需要非常多的组件支撑。
● 成本拆解难度大:由于资产组成复杂,导致成本拆解难度增大,需要对各种组件的成本进行精细的分摊和测算。
● 资产体量大:这里的资产是广义的资产,包括 ES、ClickHouse 等,体量巨大。
● 业务增速快:随着业务的快速发展,资产的规模和成本也在不断增加,这就需要不断优化成本治理策略,以适应业务的发展需求。
解决思路为:
● 整合元数据,看清当前top成本资产,以及top增速的资产。
● 拆解商品到资产,成本量化到人、团队。提升个人的成本意识。
● 提升治理ROI,技术和运营方案双管齐下。
● 制定增长目标,推进各个方向制定增长OKR,支持并鼓励各个方向创新性自主优化落地。
进行精细化治理需要多方面能力,如上图,自下而上包括:
● 基础能力:需要具备一些元数据,如账单、用量、分摊逻辑、对应资产的热度等。在此基础上进行诊断,包括作业是否存在浪费、整体架构设计是否合理且最优、冷热情况以及 ROI 情况等。
● 治理方法:制定并实施治理策略,包括架构升级策略、热度策略以及价值策略等。
● 方案设计:包括针对无效表、无效任务、利用率等的治理方案。
● 方案执行:通过周报、月报等方式查看执行情况,并对进度进行跟踪。
上图是一些计算治理项的列表。从降低浪费、降低申请、空闲资源使用和低成本资源使用这几个视角切入,针对性地提出优化项。
上图是存储相关的一些优化项,包括技术方面的优化,如压缩率、小文件、温存等,以及运营方面的一些策略。
针对在线组件,治理团队也会采取一些策略。例如,在 ES 中,将某些功能转化为偏向自动化的能力,并将这些组件进行分摊,以成本账单的形式呈现出来。
整个方案的效果从四个方面得以体现:
● 治理成效:年度成本涨幅得到有效控制,top 组件优化效果显著,从左上的电商内部单位资源成本曲线图可以明显看出这一变化。
● 治理策略:强调技术和运营双管齐下。
● 成本拆解:完成了电商Top组件成本拆解的落地.
● 治理运营:通过周报、红黑榜等方式,助力达成治理目标。连续多个季度计算成本增长低于 10%,治理氛围已基本形成。子方向形成的优秀治理方法也会反哺治理团队。
/ 青年期:治理工具化
青年期应着力于全面优化以提升治理效率。从不同视角来看,存在的主要问题如下:
● 从管理者视角来看:存在诊断不明确、看不清未来的问题。
● 从治理负责人(POC)视角来看:方法论分散,看不清进展,需要在灵活性和通用性之间进行权衡。
● 从一线研发视角来看:治理项目多,治理动线长。
主要思路如下:
● 提升诊断能力:类似于体检,形成指标库,帮助团队看清当前问题和当前水位。
● 完善治理运营:推进治理方法论体系的建设,并将治理项集成能力下放,形成主+辅治理模式,持续反哺通用治理项。
● 搭建治理工作台:推进全场景、全治理项一站式、一键式的治理能力建设,从而提升治理效率。
整体方案与之前的稳定性方案相似,针对事前、事中、事后的治理方法也同样适用,只是又增加了一些特定领域的内容。
整个治理体系涵盖了稳定性、成本、质量和安全四大类。为了方便具体工作的开展,治理团队将治理项划分为四个等级,从 P0 到 P3,每个等级都有不同的要求完成时间和推送给一线人员的节奏。
上述图片展示了一键式和一站式带来的变化:上方是没有该功能时的情况,下方则是有该功能时的情况。在没有该功能之前,所有工作都需要手动处理,整个过程非常繁琐且耗时。
而有了一键式和一站式功能之后,治理发起者只需设定一个目标,例如治理项的完成率要达到多少,治理项要达成多少 PB 的效果。同时提供足够参考信息,开发人员在看到这些治理项后,就有足够信心来做出决策,并进行相应的治理。
经过长时间的迭代,治理团队沉淀出了一套治理流程,如上图所示。首先确定目标,比如降低成本、提高稳定性、提升安全性能等。在确定目标后,会进行自动化诊断,规划出具体的治理项。
接着将治理项进行下发,在这过程中需要考虑总量和频率。然后进行进度监控和提醒,并通过一些运营手段,提示当前的情况以及是否存在风险等。最后是收益回收,团队将对重要且收益显著的治理项进行归因分析,并在后续重点关注这些策略。
该方案效果可从以下三个方面进行总结:
● 顶层决策:提供了四大方向和超过 20 类检测指标,实现了 360 度自主发现数据体系异常能力,并支持横向对比。有助于通过数据决策确定下一步的治理方向。
● 治理运营:成功实现了线下到线上的转变,管理效率大幅提升。治理项目完成率达到 90%,整体处于健康状态。
● 治理效率:通过一键式和一站式治理,治理效率大幅提升。
回顾前面讲的这四个阶段,每个阶段都存在着各自的问题,治理团队已经总结出了一些系统化的解决方案。
04 思考与展望
这里列出了三个开放性问题:
● 为何要进行治理?若无治理,数据体系发展必然趋向混乱,会呈现熵增状态。为确保体系可持续发展,必须进行治理。
● 治理的本质是什么?治理的本质是实现业务目标的手段,是业务为了更好达成目标不可或缺的一部分,与业务紧密绑定。它由质量、效率、安全等因素决定。
● 未来的发展方向是什么?电商数仓团队认为未来主要有以下三个发展方向:
1.首先是加强模型标准化探索,争取在模型建设方面取得一些突破。
2.其次是效能方向的探索,希望在产研效率上能够有所突破。例如:产研流程优化、工具优化。
3.最后是智能方向探索,尝试结合 AI 方向突破一些工作瓶颈,提升治理效率,扩展治理边界。