基于阿里云大数据平台开发大数据应用(二):MaxCompute 初体验-阿里云开发者社区

开发者社区> 数据库> 正文
登录阅读全文

基于阿里云大数据平台开发大数据应用(二):MaxCompute 初体验

简介: 本文是基于阿里云大数据平台开发大数据应用系列文章的第二篇,主要谈谈阿里云MaxCompute作为大数据项目开发的平台的特点与优点。

阿里云的MaxCompute是一种大数据数据仓库平台,一个综合性的数据服务平台。它不同于普通的mysql,oracle这样的关系型数据库,一大区别是它不能在毫秒级甚至秒级返回查询结果。

一般来说,在MaxCompute平台上,一条MaxCompute命令的执行通常需要经过如下流程:

当用户提交一个MaxCompute作业时:

  • 客户端提交一个SQL语句,发送 RESTful 请求给HTTP服务器
  • HTTP 服务器做用户认证。认证通过后,请求就会发送给 Worker。
  • Worker判断该请求作业是否需要启动后台Job。如果不需要,本地执行并返回结果。如果需要,则生成一个 instance, 发送给 Scheduler。
  • Scheduler把instance信息进行注册,并将其状态置成 Running。Scheduler 把 instance 添加到 instance 队列。
  • Worker把 Instance ID返回给客户端。

MaxCompute运行一个作业的流程如下:

  • Scheduler把instance拆成多个Task,并生成任务流DAG图,并把可运行的Task 放入到优先级队列TaskPool中。
  • Scheduler 的后台线程定时对TaskPool 中的任务进行排序,并定时查询计算集群的资源状况。Executor在资源未满的情况下,轮询TaskPool,请求Task。同时,Scheduler判断计算资源,若集群有资源,就将该Task发给Executor。
  • Executor调用SQL Parse Planner,生成SQL Plan。Executor 将 SQL Plan 转换成计算层的 Job 描述文件,并将该描述文件提交给计算层运行,同时定期查询 Task 执行状态。Task 执行完成后,Executor更新 Task信息,并汇报给Schedler。
  • Scheduler 判断 instance 结束,更新 instance 信息,置为 Terminated。

MaxCompute客户端接收到返回的 Instance ID 后,可以通过 Instance ID 来查询作业状态:

  • 客户端发送另一个 REST 的请求,查询作业状态。
  • HTTP 服务器根据配置信息做用户认证。用户认证通过后,把查询的请求发送给 Worker。
  • Worker 根据 InstanceID 查询该作业的执行状态。Worker 将查询到的执行状态返回给客户端。

在MaxCompute中,用户可以用SQL语句进行编程。MaxCompute SQL与普通关系型数据库的SQL大体类似,不同在于MaxCompute不支持如事务、主键约束、索引等,可以看成标准SQL的子集。由于MaxCompute专注于大数据领域,操作的数据量通常很大,所以分区字段需要特别关注。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章