作者介绍 @奈文摩尔 教育公司数据产品经理; 擅长数据应用产品、数仓建设; “数据人创作者联盟”成员。 上回说到,领导让我搞大数据平台,历时2个月终于刷过了“数据集成”这个副本,虽然通关评价只得了1星,但至少已完成任务,后续有时间和精力再对数据集成进行重刷,争取把评价刷到3星。 此刻站在第二个副本的门口我茫然了,数据开发是个什么东西,听起来技术含量很高,我这个产品经理怕是搞不定啊,跟领导反馈之后,领导来了句“现在只有你啊,其他人更不懂了”。好吧,我这是“托孤大臣”啊(裂开)…… 01 什么是数据开发? 翻阅了很多资料,大多都在讲大数据开发这个岗位,包含这个岗位是做什么的,有哪些技术需要掌握等等。从大数据开发的工作内容来看大数据开发主要负责大数据挖掘、数据清洗、数据建模等。 根据大数据开发的工作岗位大概推算一下,数据开发系统大概提供的个人能力就是数据挖掘、数据计算和数据建模;抱着这个想法我找到公司的研发大佬进行求证和学习,最后总结数据开发系统的定义为:基于大数据基础平台的数据资源和计算存储能力,结合服务资源层的各类后台服务,可以为后续各类大数据应用的开发提供一站式数据开发系统。 通俗讲,数据开发系统就是对有效集成的数据进行预处理、存储、训练、计算、挖掘,通过数据分析获取有效的结论,推送给前端业务系统,从而帮助用户挖掘数据潜在的业务价值。接上篇文章来说,就是所有的粮食通过管道(数据集成系统)接入到我们系统中了,接下来需要熬粥了,至于熬什么粥、怎么熬,需要有个工具来提供服务,此时数据开发系统就应运而生了,通过数据开发系统可以对所有接入的数据进行各种计算、挖掘,来得到目标数据。 02 为什么需要数据开发系统? (1)提供一站式数据开发 教育大数据覆盖众多业务场景,如果每个业务场景都进行集群的搭建和后续的运维,需要消耗大量的人力,通过数据开发系统,数据工程师可以将原始数据转变为具有洞察的海量业务数据能力的应用服务,而无需关心集群的搭建和运维。数据开发系统支持多种类型的离线ETL任务(例如HiveSQL、MapReduce、Shell等)的开发、运维、监控、以及强大的离线计算任务调度功能,为使用者提供离线数据计算任务的协同开发服务。 (2)教育大数据本身特性 借助分布式平台解决教育多源松散数据的建模和存储,满足教育碰撞的性能要求,同时协同教育理论通过数据科学来帮助学校提供更多的信息,回答更高级的问题:学生学习行为分析、考试结果挖掘、教师教学特征等。 03 数据开发系统的特点是什么? (1)多平台协作,获取数据源 支持用户上传本地数据,自定义数据源添加和申请系统管理发布的共享数据。 (2)计算任务是开发平台的核心模块 整个系统是一个以集中调度管理监控为中心,以任务为基础的架构。系统通过制定任务开发设计规范,实现计算任务的集中调度和监控,从而使得分散管理的、多种类型的计算任务可以实现集中的统一的角度和监控,大大简化任务管理工作负担;支持离线、实时任务运行。 (3)计算任务编辑器 系统基于“系统组件化、功能模块化、参数配置化和信息服务化”的思想开发;支持通过可视化界面创建模型训练和计算任务,获取模型分析预测结果,可自定义拖拽相关控件在工作区创建计算工作流程,操作方便快捷。 (4)丰富的算法库和预处理组件 提供多种内置算法和数据预处理组件(数据集成系统的预处理就是调用这里的能力);模型算法至少支持决策树、随机森林、贝叶斯等,并支持用户上传自定义算法。 04 数据开发系统怎么做? 4.1 数据开发系统数据流转 数据开发系采用流程化进行开发,共计包含3个步骤: (1)添加数据源 数据源包含传统的MYSQL数据、NoSQL数据以及用户自己上传的私有数据,可以通过基础控件库中的源节点进行选择; (2)数据处理 整个数据处理阶段,包含数据收集与存储、数据分析与处理以及数据提取;通过数据的相关处理过程生成对应的计算结果集;要通过基础控件库中的字段节点以及模型控件库完成; (3)构建服务 数据服务主要是通过数据服务、页面服务对外提供模型服务支撑,在整个服务过程中,会将服务创建到公共基础支撑的服务总线上,为每一个服务创建一个私有数据服务接口,用户可以直接在使用私有数据服务接口进行信息的调用。 4.2 数据开发系统功能结构 4.3 功能介绍 4.3.1 系统管理 系统管理主要提供基础信息维护,包含用户管理、角色管理、队列管理等,这部分的功能和很多B端后台管理系统类似,不进行过多介绍; 针对权限啰嗦几句,通过角色和权限两个维度对平台用户进行身份授权,具有合法权限的用户才可以进行操作,不具备权限的用户会被拒绝不能进行操作。为了实现最小化授权和访问控制,大数据平台的访问控制授权系统从以下几个方面进行细粒度的权限控制:访问主体、访问客体、访问权限、访问有效期、访问时间段、访问来源; 4.3.2 数据源管理 数据源管理主要支持用户对数据源进行增删改查,支持多源异构数据源的接入;对于有条件共享的资源,支持进行申请操作;对于无条件共享的资源,支持进行接入操作; 自定义数据源支持用户添加管理第三方数据源,对开发平台提供第三方数据源连接,自定义数据资源管理支持添加明确的数据库表或者主题信息,实现第三方数据通过同步或直连模式进行管理。 4.3.3 资源管理 数据开发过程中,所有对数据的处理都可以提前写好脚本存储在系统中,作为资源在创建任务时进行调用,各种预处理、数据分析模型、算法模型等均在此列; 4.3.4 工作流管理 工作流管理主要包含工作流定义、工作流实例、任务实例三个模块,实现工作流的创建、运行、监控全过程管理。 4.3.4.1 工作流定义 工作流定义模块主要是用户对工作流进行编辑、运行、定时管理、上线/下线、删除;在这个模块主要定义清楚工作流的来源和目的地,通过可视化组件快速搭建流式计算。 (1)操作说明 运行:支持对已上线的任务执行运行操作,点击运行之后任务正式进入队列进行计算; 定时管理:支持给工作流创建定时任务,实现例行调度。 (2) 创建工作流 通过拖拽左侧工具栏下任务类型到画板中,实现任务的创建,例如:拖拽SQL节点到画板中,弹出如下窗口: 不知道大家看到弹窗里的参数有何感想,当我刚开始要做时,其实我只想到了几个参数,是研发大佬看着我的原型和我一遍又一遍的确认,最终得到了上图这些参数(感动啊)。下方是参数详细说明: 4.3.4.2 工作流实例 工作流实例就是工作流每一次执行的记录,我们可以在这里查看执行结果和执行日志。 工作流实例页面支持编辑、重跑、恢复失败、杀死、暂停、删除等操作。 (1)列表操作 重跑:重新执行已经终止的流程; 恢复失败:针对运行失败的流程,可以执行,从失败的异常开始执行; 扇死:对正在运行的流程进行停止操作,后台会先kill工作流程,再执行kill操作; 暂停:对暂停的恢复流程,直接从暂停的节点开始运行。 4.3.4.3 任务实例 工作流是由一个个任务节点组成的,在任务实例页面支持查看每个任务节点的执行情况和执行日志。 05 结语 数据开发系统在整个大数据能力平台中承载着不可替代的作用,数据集成系统底层任务也是依赖于数据开发系统实现的;通过数据开发系统,建立教育大数据汇聚、清洗、存储、计算、建模分析、运维监控的各项基础能力,完成从数据到信息、从信息到知识的过程,让分散、杂乱的数据变成有序的数据资产。 通过数据挖掘分析,进行教育数据价值挖掘,并形成数据资产进行开放共享;最终实现大数据驱动教学、大数据驱动学习以及大数据驱动管理的整体大数据应用建设。
发表评论 取消回复