概述
在我的职业生涯中,做过的数据相关的项目不少,从最早期的数据大集中,到后来的主数据管理(MDM)、数据治理及由此延伸出的数据中台建设项目,涉及的细分领域也越来越多,对大数据浪潮下企业数据应用的深度及广度的变迁也略有体会。今天这篇随笔主要就是谈谈大数据技术背景下,数据中台在各个细分技术领域和数据治理工作的异同点。
数据治理这个概念的提出已经有十多年的历史,由于视角及侧重点不同,业界给出的数据治理定义多达几十种,到目前为止还未形成一个统一标准的定义,我们暂且以IBM数据治理委员会给出的定义作为本文的理解基础:数据治理是针对数据管理的质量控制规范,它将严密性和纪律性植入企业的数据管理、利用、优化和保护过程中。
有意思的是,和数据治理类似,业界对数据中台也并未形成一个非常统一的概念定义,比较普遍的看法是:数据中台是一套可持续“让企业的数据用起来”的机制,是一种战略选择和组织形式,是依据企业特有的业务模式和组织架构,通过有形的产品和实施方法论支撑,构建的一套持续不断把数据变成资产并服务于业务的机制。
从以上的定义来看,数据中台和数据治理工作准确来说都是一个体系性的工作。它们在具体落地实践中,都涉及到如下细分技术领域:
- 数据仓库
- ETL
- 任务调度(批处理)
- 主数据管理
- 元数据管理
- 数据安全
- 数据质量
- 数据应用门户
- 数据服务接口
从我个人理解来看,虽然涉及的绝大部分领域相同,但数据中台并不仅仅是数据治理工作的放大升级版,而是数据治理工作的深化,它强化了数据治理的深度和广度,并拓展了数据治理不涉及的数据应用领域。应该说,数据中台真正实现了企业内部数据的闭环。下面,将讲解它们在各个细分数据领域的区别。
数据仓库
数据应用能力按成熟度划分可以分成统计分析、决策支持、数据驱动、运营优化四个阶段。数据仓库主要覆盖前两个阶段,它的主要场景是汇集企业数据,形成数据集市,并支持管理决策和业务分析。而数据中台建设及数据治理工作都要求整个企业共用一个数据技术平台、共建数据体系、并共享数据服务能力,所以它们都覆盖了这四个阶段,自然都包含了完整的数据仓库能力建设。
数据中台建设中,由于会和诸如MOT、风控这类的实时业务应用深度结合,对数据的实时性的要求会比常规数据治理工作的要求高,因此数仓建设一般会定位为统一实时数仓的建设。
数据治理中,一般将数仓中的数据分为4层,包括ODS(贴源层数据)、基础数仓层、MDM(主数据)、数据集市层;数据中台中,由于会对接实时线上业务的数据应用及用户运营,所以还会增加2层,包括标签数据层和ADS(应用数据层)。
由于数据中台会存储更多的用户类的行为数据及其它原始数据,它要求的数据存储量级更大,会混合使用分布式关系数据库、NoSQL、甚至分布式文件系统等多种存储服务,而数据治理更多聚焦结构化数据,主要使用一些分布式数据库及NoSQL数据库。
ETL
数据抽取方面,数据治理工作主要聚焦于存在于应用系统中的,数据库中的企业的经营类数据,而数据中台关注的数据则广得多,除了经营类数据之外,还会关注用户行为数据、原始日志数据等,数据来源除了数据库之外,还有日志埋点、音视频等非结构化和半结构化数据。
数据治理一般采用ETL(Extract-Transform-Load,抽取-转换-存储),而数据中台由于面向更多的大规模数据应用场景,如果采用ETL的模式,在传输过程中进行复杂的清洗动作的话,会因为数据体量过大和清洗逻辑的复杂性导致数据传输的效率降低,所以一般不建议采用ETL,而是使用ELT(Extract-Load-Transform,抽取-存储-转换),先优先保障数据存储,再进行异步批量处理。采用ELT除了在处理效率方面有优势外,另一个好处是存储的数据更全面,防止遗漏一些当前无法识别出来的潜在的有价值的数据。
由于数据中台统一实时数仓的建设要求,所以在数据抽取上有实时抽取的需求,这涉及到数据源的实时监控(包括消息、binlog的实时监听等)以及在数据接收机处理端的数据订阅服务及消费服务。这些实时能力在数据治理中都不是强需求,一般不涉及。
任务调度(批处理)
不管是数据中台还是数据治理,原始数据汇总到数据仓库之后,一般都要进行层层的汇总计算,这些计算一般都依赖定时调度或者实时消息触发调度来调用批处理任务执行。在大规模调度中,主要的难点在于依赖调度触发及批处理任务的级联影响。在调度任务及关联数据表都很多的情况下,很难靠人肉的方式梳理清楚任务之间的触发顺序、依赖关系,以及数据表之间的变更关联影响,这就需要靠数据血缘和从模型的依赖关系来进行自动化的推导。
主数据管理
主数据是组织中需要跨业务、跨部门、跨系统共享的核心业务实体数据,是企业的核心数据,这些数据由于应用广泛,必须严格保证其唯一性、一致性、准确性、实时性。
数据治理及数据中台建设都离不开主数据管理,两者使用的方法及数据定义、处理方式没有大的区别。部分数据中台产品中,会将相当一部分标签数据也纳入主数据管理范畴之中。
元数据管理
数据治理和数据中台建设都会要求形成企业完整、唯一的数据视图。这方面一般都会划分数据域、数据主题、主题下挂数据模型、指标,下面再挂具体的数据表,表中包含数据字段等等。
数据中台还会包含标签及标签类目的定义及开发工作,对用户、业务、市场进行打标,在此基础上构建人、事、物的“画像”,以方便进行精细化运营业务的开展。而标签的开发必然涉及特征工程及算法的应用,这也是数据中台和数据治理很重要的一个区别,一般数据治理工作主要是为特征工程及算法开发提供准确、一致的数据,但本身并不介入特征工程及算法开发工作。
建模方法上两者没有什么区别,大部分会使用维度建模法。
数据安全
数据安全管控贯穿于数据治理及数据中台建设的方方面面,主要有两种管控策略:
- RBAC(Role-Based Access Control,基于角色的访问控制)
- PBAC(Policy-Based Access Control,基于策略的访问控制)
由于授权复杂,并且要和企业的树形组织机构相结合,一般都会采用多级授权的机制,上级数据管理员会将某一个数据域或者数据主题下的模型或者表的权限整体授权给下一级数据管理员,再由下一级数据管理员进行更细化的授权控制。
数据中台由于介入业务应用,因此使用人员中增加了业务运营人员,在数据授权人群上会更广泛一些。
数据质量
传统数据治理工作中,对数据质量的要求会比较高,原则上不允许进入数据仓库的数据及各层汇总数据中出现脏数据。所以在数据抽取中会采用ETL模式,边抽取边检查、转换,以保证最终落盘存储的数据必须是准确、完整、一致。
而数据中台由于容纳的数据更多,并且更推荐在贴源层存储原始数据,因此在数据质量管控上会采用更灵活的策略,ODS数据基本上映射原始数据,一般采用ELT的方式,所以一般不进行非常严格的检查,更推荐存储全量的原始数据,允许存在一定的冗余。另外,由于数据中台存储的数据量更大,进行全量数据管控成本太高,所以一般会根据数据新鲜度及价值进行分级的质量检测管控。
总的来说,传统的数据治理更多的是为了解决数据的质量问题,保证数据的准确性、完整性、唯一性,以提升数据决策水平。而数据中台建设更多贴近业务,扩充了传统的数据质量的定义,除了数据准确性、完整性、唯一性之外,数据必须更好地适应不确定性的需求,即插即用,服务不断变化的业务创新,从而发挥更大的价值。
数据应用门户
不管数据治理还是数据中台建设,一般都会提供包括数据资产大盘、数据资产目录、数据资产检索、报表及BI等基础门户应用,并提供必要的工单及流程能力,为数据使用申请及数据开发申请提供必要的流程化规范管理能力。
此外,数据中台建设会介入特征工程领域及算法开发,开展数据智能、数据科研、预测分析,比较常见的场景是金融风控和反欺诈、文本挖掘分析、广告精准营销、个性化推荐等。因此在数据应用门户上还必须为这些数据应用及开发能力提供相应的功能,所以,数据中台的应用门户的复杂度要远超数据治理。
数据服务接口
数据治理和数据中台建设,都会提供数据网关接口服务(DPI),将数仓中的数据开放给业务系统使用,一般都会提供“批量推”、“批量拉”、实时检索这三种数据服务方式,同时会对DPI服务接口进行严格的监控,进行API的访问时长、成功率、失败率、传输数据量、高频访问等方面的度量审计,部分服务可能还会涉及计费计算。
数据中台由于存储了大量标签数据,在上面提供的服务基础之上,还会提供实时风控、基于标签圈人(圈物)等服务接口。
以上就是数据治理和数据中台建设在各个细分数据领域的异同点比较,除了这些数据技术领域外,不论是进行数据治理工作还是进行数据中台建设,还需要顶层战略规划、组织架构、数据文化建设上的保证,这些会在后续的随笔文章中做进一步介绍。
作者简介: 著有《微服务治理:体系、架构及实践》一书,目前在金融行业负责基金直销平台的整体技术架构和技术团队管理;在此之前,在华为的中间件技术团队,任六级技术专家,主导了多款华为软件的云计算产品的规划、设计、构建及落地工作,包括APaaS、ASPaaS、服务治理平台、分布式服务调测框架等几款产品;更早之前,在当当网的运作产品中心做技术负责人,主要负责电商中后台的仓储、物流、客服等系统的重构优化及技术管理工作。
个人从业十多年,在并行计算、大规模分布式服务及治理、中间件云化及服务化(PaaS)、APM监控、基础开发平台、数据集成及治理等领域都有技术积累,如果大家在这些领域有疑问或好的建议,欢迎共同探讨。