目 录
01 前言
02 中台概念及背景
03 数据中台建设方法
04 数据开发实践
01
前言
2015年阿里在国内首次提出了中台概念,由阿里引领发展,迅速在互联网企业中形成了一股浪潮。在数字化转型的道路上,为了充分发挥数据价值,数据中台的理念也渐渐深入到各行各业中。数据中台,不是一套系统,同样也不是一个平台。它是一种企业的建设机制,植根企业特色,借助有形的产品和实施方法论,持续不断的整合数据、分析数据、挖掘数据价值。中台的构建不是一蹴而就的事情,今天我们就来简单聊一聊在数据中台中如何做数据开发。
02
中台概念及背景
依然是老套的三段论,是什么,为什么,怎么办。首先我们先明确数据中台是什么?
先说说“中台“,中台这个概念最早是阿里提出的。在2015年,时任阿里巴巴集团CEO的张勇,提出了构建符合DT时代的更创新灵活地”大中台,小前台“组织机制和 业务机制的战略方针。中台这个概念是阿里在访问芬兰的一家名叫Suppercell的游戏公司。对于一款游戏而言,除了内部的游戏场景机制外,还有其后台支撑系统,例如游戏引擎、用户系统、支付系统、交易系统等。Suppercell统一了各款游戏的后台支撑系统,这样各个游戏开发团队只需要关注自身的业务属性,基于统一的平台支撑,快速开发,实现利益的快速变现。
中台概念的出现既有其内部需求驱动,又有外部环境条件催化。从阿里的角度来看:
历经多年的信息化建设,旗下有1688、淘宝、天猫、一淘等等产品条线,这些产品由于建设时期、分管团队、技术栈等等原因各自为政,形成了经典的烟囱式系统。重复的功能建设,带来了高昂且日渐增大的开发和维护成本;系统间集成交互复杂,面对新需求,尤其是需要跨部门协作开发的场景,在需求沟通、确认、开发、验证、上线等诸多环节都费时费力。这种各自为政的发展方式,同样不利于业务沉淀,阻碍了企业的持续发展壮大。
从外部来看,国家的一系列政策也起到了一定的促进推动作用。
当企业发展到一定体量时,企业日常生产运营涉及到的数据量越来越庞大。随着数字化时代的到来,如何分析数据、挖掘数据价值,推动产业持续升级,变得越来越重要。
在这样的背景下,长痛不如短痛,阿里下定决心,重新梳理企业各条线业务结构,自上而下构建企业大中台。
抽取业务系统中的公共流程服务部分,合并相似的组织,提供通用的服务能力,打通业务流程构建业务中台;
抽取各个业务系统数据,对数据进行抽象、标准化、分析,进而提供统一、标准的数据服务。打通各业务线之间的数据和流程,实现数据共享和业务协同,构建数据中台。
数据中台的概念迅速自互联网企业阿里,腾讯,百度等头部企业兴起,并逐步扩散到传统企业,作为企业级的数据共享,能力复用平台帮助传统企业进行数字化转型。
03
数据中台建设方法
阿里的数据、业务双中台建设之路,给我们以启发。在讲究持续发展数字经济的当下,企业要想做好数字化转型,必须玩转数据,真正实现D2V,发掘数据价值。借助中台实现业务能力复用以及不同业务条线的联动合作,为企业的持续发展奠定基础,降本增效。数据中台建设要掌握正确的方式方法。
做事情都要有明确的目标,才能辅助我们做出正确的决策。我们希望数据中台能够打破数据孤岛,提供统一的数据口径,按照标准的数据规范、借助数据开发过程梳理数据资产,明确数据价值,并借助数据资产管理快速响应前台业务需求,实现需求的快速开发,减轻开发工作量。最后利用数据中台作为统一的数据运营平台,对数据的安全、质量、以及运营成本进行持续跟踪。
数据中台建设五步走:
1. 理: 梳理业务构成和流程,探查数据分布和特征,采集数据模型
盘点企业现有数据资源,根据数据需求确定数据体量,确定未来建设的规模,并根据规模确定相关的实施工具以及资源。
2. 规: 规划数据资产管理组织,建设多级管理规程体系
由上至下,建立数据资产管理组织,统一企业战略意识,达成统一目标。因为中台建设,在整合资源的同时需要各部门的倾力合作,需要有足够话语权的领导确认并推动中台建设方针。制定合理的机制保障,建设过程的顺利进行。
3. 优: 统一数据标准,优化数据质量
什么样的数据是真实有效的,保障数据的有效性是分析数据的另一个前提。建立统一的数据标准,保障数据的完整性、准确性、一致性,提高数据质量。
4. 用:集约化数据开发管理,建立数据资产门户,驱动数据共享
资产门户的建设涉及数据汇聚、数据开发、数据质量等多个环节,通过数据资产门户,积淀企业资产数据,资产数据作为参考,为数据服务开发,实现数据变现提供基础。
5. 评: 评估数据价值,企业发展方向的风向标
建立持续的数据运营能力,挖掘数据现存、潜在的价值,为企业的提供发展的风向标。
04
数据开发实践
鉴于篇幅以及结合开发经验,这里针对数据开发的一些实践经验,同大家共同探讨。数据开发我认为是数据中台建设中过程中占比很大的一项工作,在数据汇聚、数据质量、数据服务化等过程中都有它的影子。
普元数据开发平台各模块的组成结构如下图所示:
数据开发平台的初衷是屏蔽底层复杂实现,降低开发工作量、提升开发效率,为企业提供快速、便捷、稳定、易用的数据中台建设能力,降低企业实施成本。
基于项目空间,使数据团队不同角色更好的协作,打破团队间孤岛。通过项目配置实现人员、角色、资源(数据源、文件等)的统一管理。
基于项目空间,完成数据作业的开发、运行监控管理。
完整的数据源支持
数据汇聚是数据中台建设的第一步。能否适配多源数据源是数据集成、同步的关键。普元数据开发平台支持20+主流数据源(持续扩展支持中),涵盖关系型数据库(JDBC的方式支持各种数据库)、文件存储(FTP、OSS等)、NoSQL(Elasticsearch、Mongo等)、消息中间件(KafKa、PMQ等),可对接各类大数据平台,开源含括 Hadoop,商业体系包括阿里MaxCompute、ADS(AnalyticDB)、CDH、HDP、星环。
基于自定义Classloader,打破双亲委派原则,提供同一套引擎下多数据源版本的支持,简化部署流程、降低部署成本。
在连接方式上支持多种协议认证,直连、Kerberos认证。
提供逻辑数据源多环境管理,降低一般开发人员对于数据的接触面,保障数据安全,防止数据泄密。
提供多种通用数据处理组件,可视化便捷开发
基于数据集成数据同步开发的多年经验,普元积淀了很多通用的数据处理组件。通过在线编排的方式能够减少80%的数据开发工作量。比如字段映射、数据过滤、数据合并、数据脱敏、以及数据检验等等。
针对数据开发我们提供三种模式:
a) 在线编排自定义开发。借助50+输入、输出、转换组件,通过拖拉拽的方式对ETL过程进行组合编排开发。
b) 通用模版向导式开发。借助通用模版通过向导式配置,例如:多表同步、整库同步等。
c) 离线程序。离线程序作为能力补充,当在线开发不满足复杂业务需求情况下可以使用离线开发程序
曾有人笑言数据开发就是写SQL,其实这句话也是有一定道理的,当然这里的SQL是一个广义的SQL了,它能够帮助我们进行取数(获取测试数据,辅助分析数据逻辑)以及对数(获取过程、结果数据,验证数据计算结果)。我们提供在线客户端辅助开发,免去在各种工具之间切换的繁琐。
当然作为一款在线的开发工具,在线调试运行是必不可少的。
数据作业运行监控
数据作业开发完成后,通过作业流进行包装并提交正式版本到调度引擎中,就可以通过调度管理模块进行运行监控。
同时针对已经运行的作业流实例支持多种操作:
暂停:(离线作业支持)等待当前运行的算子计算完毕后,暂停当前流程。
恢复运行:从暂停、停止的节点继续运行。
重跑:以相同的参数进行重跑当前作业流实例。
恢复失败:从失败的节点恢复,继续运行。
停止:停止当前作业流实例。
暂停:(离线作业支持)等待当前运行的算子计算完毕后,暂停当前流程。
版本管理
支持保存开发期近10个任务草稿,以及正式版本切换。在遇到紧急情况下可以回滚至任意版本。
以上内容即我对数据中台建设过程中数据开发的一些个人理解,欢迎留言多多交流。
关于作者:瑞栋,普元资深工程师,负责普元数据类产品设计和研发,负责关于服务监控、日志监控等组件开发。