阿里云大学精品课程:深入理解阿里云数加大数据开发套件Data IDE-基本知识
写在最前面
>>>进入了解更多>>>阿里云数加·MaxCompute大数据计算服务.
基于阿里云数加·MaxCompute构建大数据仓库的开发工具利器Data IDE《MaxCompute(原ODPS)开发入门指南——数据开发工具篇》,那么基于Data IDE进行数据开发想必也遇到一些不少的困惑,就自己在培训过程中的一些经验或者说阿里集团内的踩坑之路与大家在此分享,也欢迎拍砖。
大数据仓库业务架构
类似于传统数据仓库,我们都会经历ETL的过程,E-数据抽取,T-数据转换,L-数据装载。但在大数据时代下,数据仓库在数据清洗建模过程中,稍微有些不同,准确的说,他是ELT的过程。首先需要将散落在各地的数据统一进行数据采集到大数据计算服务上,这个过程就是E和L。然后基于大数据计算服务的大存储和高性能计算能力进行数据的清洗和转化,也就是T。具体可以见如下图:
1.数据采集与整合
根据自己公司业务情况,数据大体可以分为云业务系统的数据和本地业务系统的数据。云业务系统数据,可能业务系统已经在云上了,比如数据就在RDS上或者日志数据就在ECS上,这种情况开发成本最低,直接可以使用Log或者Data IDE-数据采集模块进行数据抽取和转载。而本地业务系统数据,可以详见>>>金融云的数据同步处理方式>>>
更多数据上云方式:【MaxCompute(原ODPS)开发入门指南——数据上云篇;
2.数据加工、存储与管理
大数据开发套件Data IDE是基于MaxCompute 之上的数据开发工具,在阿里巴巴集团内部也是身经百战,经历过双11大考,都得益于其背后强大的调度系统。
数据加工清洗建模都需要用户在Data IDE中编辑工作流任务,根据自己的业务逻辑来配置上下游关系和调度时间。支持调度周期类型:天、小时、分钟(5的倍数)、月、周。也就是说在大数据开发套件中如果做数据集成,最小的数据周期颗粒度为5分钟一次。具体可以在调度配置中进行设置:
只需要进行下拉框配置即可设置工作流任务的调度周期和任务执行时间。
3.数据应用与消费
数据的清洗、加工最终被下游系统所消费,主要会进行报表展示或其他更深层次的挖掘分析。那阿里云Quick BI也与MaxCompute无缝进行对接,也支持将制作好的报表嵌入到第三方系统中。阿里云Quick BI如下示意图:
4.数据管理
大家从上面的架构图中也可以看出,数据只有流经MaxCompute才可被记录,包括他的表级别血缘关系和字段级血缘关系。
务必掌握的Data IDE专业术语
- 项目空间:等同于MaxCompute project,项目空间是大数据开发平台最基本的组织对象,类似于传统数据库的DataBase。大数据开发套件的项目空间,是进行多组织隔离和访问控制的主要边界,也是用户管理表(Table)、资源(Resource)、自定义函数(UDF)、节点(Node)、工作流(WorkFlow)、权限等的基本单元。 在大数据开发平台中,一个项目空间对应绑定一个MaxCompute project。
- 工作流:工作流是一个DAG图(有向无环图),其描述了作业中多个节点之间的逻辑(依赖关系)和规则(运行约束)。
- 工作流任务/节点:工作流任务是一个完整的独立调度的整体。工作流节点属于工作流任务的子对象,是数据处理和分析过程的基本单元,每个节点任务对应工作流任务DAG图中的一个节点,其可以是一个SQL Query、命令和MapReduce程序。
- 节点任务:节点任务也是一个完整的独立调度的整体,也是数据处理和分析过程的基本单元。
- 依赖关系:描述两个或多个节点/工作流之间的语义连接关系,其中上游节点/工作流的运行状态可以影响下游节点/工作流的运行状态,反之则不成立。
- 在大数据开发套件中,节点任务在执行时会被实例化,并以MaxCompute实例的形式存在。实例会经历未运行、等待时间/等待资源、运行中、成功/失败几个状态。当天晚上23:30节点转实例!
当天晚上23:30节点转实例!也就是说,在当天23:30之前提交到调度系统的配置项都会转实例即生效,过了这个点提交的任务则需要再隔一天进行生效。这一点务必注意!!!!
- 资源:资源是大数据开发套件的特有概念,用户可以上传本地自定义的JAR或文件作为资源,在节点运行时调用。如MaxCompute MR需要上传jar包作为资源来进行执行。
角色隔离
在大数据时代,数据是一个公司的生命,在一个团队中如何进行一个角色和权限的隔离,以保障数据的安全性。那Data IDE在角色和权限上也做了很多工作,总体上角色可以分为:组织管理员、项目管理员、开发、运维、部署和访客。具体如下:
项目空间的设置
在阿里云数加·大数据开发套件中,也提供了多项目空间之间的发布流程,但是在业务划分过程中,需要根据自己公司业务情况来定,一般情况下可以按照如下规则来进行项目的配置:
- 创建单个项目空间:适用于业务较单一,成员角色基本一致,无需严格的经过数据开发>测试>预发>生产等开发流程。
- 创建开发/生产项目空间:适用于业务相对复杂,又对生产安全性要求很高的,需要经过开发>测试>生产流程。
↓↓↓↓分割线↓↓↓↓
之前断断续续写了几篇,也有几篇一直是热文,对大家在开发过程中也起到了一定的帮助作用。总体罗列如下,给大家提供个索引:
① 【数据架构解读】基于阿里云数加StreamCompute和MaxCompute构建的访问日志统计分析;
② 【Best Practice】基于阿里云数加·StreamCompute快速构建网站日志实时分析大屏;
③ 【Best Practice】基于阿里云数加·MaxCompute及Quick BI构建网站用户画像分析;
④ 【MaxCompute(原ODPS)开发入门指南——计量计费篇;
⑤ 【MaxCompute(原ODPS)开发入门指南——数据上云篇;
⑥ MaxCompute(原ODPS)开发入门指南——数据开发工具篇;
---华丽的分割线---