1、基于大数据的能力开放平台解决方案1 摘要关键字:大数据 经分 统一调度 能力开放运营商经过多年的系统建设和演进,内部系统间存在一些壁垒,通过在运营商的各个内部系统,如经分、VGOP、大数据平台、集团集市等中构建基于ESB 的能力开放平台,解决了系统间调度、封闭式开发、数据孤岛等系统问题,使得运营商营销能力和效率大大提高。2 问题分析2.1 背景分析随着市场发展,传统的开发模式已经无法满足业务开发敏捷性的要求。2014 年以来,某省运营商经营分析需求量激增,开发时限要求缩短,业务迭代优化需求频繁,原有的“工单-开发”模式平均开发周期为 4.5 天,支撑负荷已达到极限。能力开放使业务人员可以更便捷
2、的接触和使用到数据,释放业务部门的开发能力。由于历史原因,业务支撑系统存在经分、VGOP、大数据平台、集团集市等多套独立的运维系统,缺乏统一的运维管理,造成系统与系统之间的数据交付复杂,无法最大化的利用系统资源。统一调度的出现能够充分整合现有调度系统,减少运维工作量,提升维护质量。驱动力一:程序调度管理混乱,系统资源使用不充分经分、大数据平台、VGOP、集团集市平台各自拥有独立的调度管理,平台内程序基本是串行执行,以经分日处理为例,每日运行时间为20 个小时,已经严重影响到了指标的汇总展示。驱动力二:传统开发模式响应慢,不能满足敏捷开发需求大数据平台已成为一个数据宝库,已有趋势表明,只依赖集成
3、商与业务支撑人员的传统开发模式已经无法快速响应业务部门需求,提升数据价值。驱动力三:大数据平台丰富了经分的数据源,业务部门急待数据开放某省运营商建立了面向企业内部所有部门的大数据平台,大数据平台整合了接入B域、O 域、互联网域数据,近 100 余个数据接口,共计820T 的数据逐步投入生产。大数据平台增强了传统经分的数据处理的能力,成为公司重要的资产,但是传统经分数据仓库的用户主要面向业支内部人员,限制了数据的使用人员范围和数据的使用频度,已经无法满足公司日益发展的业务需求,数据的开放迫在眉睫。2.2 问题详解基于背景情况分析,我们认为主要问题有三个:1、 缺乏统一的调度管理,维护效率低下目前
4、经分系统的日处理一般是使用SHELL 脚本开发的,按照串行调度的思路执行。进行能力开放后,目前的系统架构无法满足开发者提交的大量程序执行调度的运维需求。如果采用统一调度的设计思路则基于任务的数据表依赖进行任务解耦及调度,将大大简化调度配置工作和提高系统的并发度;2、 需求周期长,导致开发周期长现行的开发模式是由业务部门提出需求,业务支撑中心进行需求分析,然后再转派给开发厂商。厂商除了需要与业支沟通需求以外,有时候还需要与业务部门进行二次沟通,最终才能明确需求,开发周期比较长;3、 数据管理分散,存在数据冗余,营销效果欠佳经分系统对外提供数据,目前采用的是传统的文件接口形式,这样会造成经分和外围
5、系统存在至少2 份的数据,随着经分的按天支撑模式,造成传统的营销效果欠佳,外围系统的存储浪费。3 解决方案介绍3.1 业务目标将大数据平台及经分数据仓库平台的数据和系统处理能力进行标准化封装,按需进行开放,满足各业务部门数据使用的需求,并在经验成熟的情况下逐渐开放给外部众多的合作伙伴使用。统一调度:作为大数据开放基础平台,通过消息总线将大数据平台、经分、集市、VGOP、业务部门的应用进行统一的系统调度管控,提供跨平台调度、分发、解析等基础功能,实现大数据平台、经分数据仓库等多类型底层平台的能力互补,形成融合平台的协作效应;通过多租户技术,解决生产任务与数据开放能力争用的问题,实现系统资源对生产
6、任务与临时任务的合理分配及高效调度。统一开发:集成图形化的开发界面,通过统一封装的函数库提供类SQL 的开发语言,以屏蔽底层平台差异,降低业务人员的开发门槛,实现快速的业务开发及数据测试。通过元数据的数据模型抽象,逐步将Hadoop、DB2 的后台数据资源高效、安全并可控可管的开放给前端进行访问。数据共享:大数据平台将用户标签、营销目标、用户套餐剩余量等信息通过统一的数据服务方式开放给其他系统或者在线使用,确保数据的唯一性和数据响应的及时性。3.2 方案内容及亮点图为基于大数据的能力开放体系架构,我们在原有大数据平台上进行整合,使得大数据的成果能够有效的被外部系统调用,并具备标准的服务能力供后
7、续的系统对接。能力开放平台由统一调度、统一开发、数据共享三大平台组成:统一调度平台将原大数据平台、经分数据仓库、VGOP 平台等关联度高的独立应用系统的任务进行统一管理、执行调度及监控,提升整体的执行效率并简化运维。统一开发平台搭建于统一调度的基础之上,开发者可以通过IDE 使用封装后的函数,以SQL 脚本进行图形化的数据处理程序设计及开发。通过多租户的方式,对开发者分配独立的大数据平台及数据仓库的存储、计算资源,确保开发者在共享数据、系统能力的同时,不影响生产系统的正常运行。数据共享平台提供标准API 封装,提供给外部系统进行数据查询和调用,实现经分系统对外数据服务标准化,同时保障数据安全性
8、并降低外部系统数据存储压力。3.2.1 统一调度统一调度由控制中心和AGENT 两部分组成,如下图所示:(1)控制中心 : 控制中心接收来自内部的消息,通过规则引擎判断任务是否满足触发条件并分发给Agent 进行处理,并对任务执行情况进行监控及消息生成。消息接收:支持各种事件触发消息,如文件到达、接口装载、表生成;规则引擎:根据人工定义、系统资源情况、租户定义等设置制定任务的执行条件及前后依赖关系;任务触发:根据消息总线传递的消息,判断任务是否具备执行条件,并将满足触发条件的任务分发至各平台Agent 端执行;任务监控:接收来自Agent 的程序执行状态及资源状态并产生新的消息。(2)AGEN
9、T:部署到参与调度的执行平台,负责任务执行及系统资源、任务状态收集报告。任务监听:轮询扫描控制中心发出的任务;任务执行:支持tcl、shell、python 、java 等程序,可以手工设置各个执行平台进程数,支持多进程并发处理;资源状态及心跳报告:支持分钟级和主动资源收集报告,将资源信息进行反馈。控制中心实时监控Agent 运行状态,并进行短信告警 ,防止Agent 挂死。3.2.2 统一开发统一开发提供图形化的开发能力以及统一元数据管理:(1) IDE 图形化的开发界面及统一封装函数库的集成,如下图所示:满足业务部门自助开发的需求,集成图形化的开发界面,通过拖拽的方式实现快速数据处理逻辑设
10、计及开发;通过JAVA 包对SQL 命令、Hadoop、DB2 执行平台的系统命令、时间函数、字符串函数、聚合函数等基础函数库进行统一封装,屏蔽底层执行平台的系统差异,实现类SQL 开发语言支持,降低系统的技术门槛;前台提供图形化开发界面、拖拽式开发方式、统一封装的函数库、灵活的脚本编辑能力对开发过程进行支撑。包含以下功能:查看元数据、数据模型注册、数据模型导入、设计、开发、测试、上线、优化;数据处理过程API 分为7 大类:数据输入(Reader)、数据输出(Writer)、行集处理(Process)、字段级处理、流程控制类、数据检查类、数据交换类,并提供了一套可扩展的机制;函数编排支持条件
11、分支、循环、异常控制等,支持变量读取、定义,能够实现复杂场景下的开发;数据同步采用开源的Sqoop 来实现大数据平台和DB2、HBASE 的高效数据同步。(2) 统一的元数据开放共享与实时更新为实现公司内部模型及数据的复用,并实现数据资产的编目管理、共享及分级存储,同时实现数据安全的可控可管,能力开放平台搭建了元数据管理模块。包含全局数据字典、程序逻辑等元数据,提供元数据维护、权限控制等工具实现元数据整个生命周期的管理。元数据的管理界面如下图所示:元数据的自动更新:通过统一开发平台开发的程序,相关元数据(表、字段、数据流图、触发条件)将自动纳入元数据管理,实现元数据的自动更新,并为统一调度平台
12、提供程序调度触发消息;元数据的可控开放:为了保障开放数据的安全性,安全管理员要对即将开放的基础元数据进行逐个审批,只有得到安全管理员审批的基础数据才能对外开放,从而保障开放数据的安全性。3.2.3 数据共享为发挥大数据的价值,通过标准API 封装的方式为企业内各种实时的业务运营提供信息支撑,并对外部系统提供统一的数据调用接口,具有实时、动态的信息交互能力。标准的数据开放接口实现数据和应用的解耦、应用和UI 的解耦,有利于各应用系统功能集成。(1)数据层为实现快速的数据查询,数据共享平台采用了HBASE 及Redis 作为数据层。HBASE: 作为分布式的、面向列的开源数据库,HBASE 在Ha
13、doop 之上提供了大数据的存储和快速查询能力。Redis:作为基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的API。其查询速度比 HBASE 更高。(2)封装层基于Restful 架构实现API 封装,使用Nginx 的代理功能,整合后端多个Tomcat 服务器,实现高并发的查询能力。内部结构如下:服务注册:服务属性配置:如服务标识、服务名称、服务描述、服务发布地址等信息的配置; 服务参数配置:包括输入参数、输出参数、输出内容等配置。服务安全管理:服务认证鉴权是用于鉴别服务请求方是否有服务调用权限;数据交换安全是用于保证服务请求- 响应过程中的数据安全;权限管理是用于确定服务请求方可调用的服务权限。认证鉴权:确定服务请求方是否有访问服务提供方提供的具体服务的功能权限;对于有功能权限的服务请求方,还需要再确定其可访问的具体服务的数据范围权限。服务运维:服务监控对数据服务的运行状况提供实时的监控和分析,帮助运维人员及时了解数据服务的健康情况。查询响应:负责处理数据和各类数据源进行交互,获取查询结果。数据获取处理主要包含: 连接相应的数据源,执行经过模型映射解析的可执行SQL 语句,获取结果数据。通信协议:通信协议采用全球公认的WEB SERVICE 标准协议。