不少刚初次接触MaxCompute的用户,面对繁多的产品文档内容以及社区文章,每每很难快速、全面了解MaxCompute产品全貌。同时,不少拥有大数据开发经验的开发者,也但愿可以结合自身的背景知识,将MaxCompute产品能力与开源项目、商业软件之间创建某种关联和映射,以快速寻找或判断MaxCompute是否知足自身的须要,并结合相关经验更轻松地学习和使用产品。算法
本文将站在一个更宏观的视角来分主题地介绍MaxCompute产品,以期读者可以经过本文快速获取对MaxCompute产品的认识。sql
概念篇shell
产品名称:大数据计算服务(英文名:MaxCompute)数据库
产品说明:MaxCompute(原ODPS)是一项大数据计算服务,它能提供快速、彻底托管的PB级数据仓库解决方案,使您能够经济并高效的分析处理海量数据。编程
产品说明的前半部分,将MaxCompute定义为大数据计算服务,能够理解为它的功能定位于支持大数据计算,同时是一款基于云的服务化的产品。后半部分,说明了它的适用场景:大规模数据仓库、海量数据处理、分析。安全
单从这里还不能了解到大数据计算服务提供了哪些的计算能力,具有怎样的服务化?产品定义中出现了数据仓库字眼,咱们可以了解到MaxCompute可以处理较大规模(这里提到了PB级别)结构化数据。而“海量数据处理”除了数据规模大以外,对于非结构化数据的处理有待验证,同时”分析”是否在常见的SQL分析能力以外,提供了其余复杂分析的能力。架构
带着这样的问题,咱们继续开始介绍,但愿在后面的内容中可以清晰地回答这些问题。并发
架构篇app
在介绍功能前,先提纲挈领从产品总体逻辑结构开始,让读者有个全貌了解。框架
MaxCompute提供了云原生、多租户的服务架构,在底层大规模计算、存储资源之上预先构建好了MaxCompute计算服务、服务接口,提供了配套的安全管控手段和开发工具管理工具,产品开箱即用。
用户能够在阿里云控制台,在几分钟内完成服务开通并建立MaxCompute项目,无需进行底层资源开通、软件部署、基础设施运维,系统自动进行(由阿里云专业团队)版本升级、问题修复。
功能篇
数据存储
多种计算模型
须要说明的是,传统数据仓库场景下,实践中有大部分的数据分析需求能够经过SQL+UDF来完成。但随着企业对数据价值的重视以及更多不一样的角色开始使用数据时,企业也会要求有更丰富的计算功能来知足不一样场景、不一样用户的需求。
MaxCompute不只仅提供SQL数据分析语言,它在统一的数据存储和权限体系之上,支持了多种计算类型。
MaxCompute SQL:
TPC-DS 100% 支持,同时语法高度兼容Hive,有Hive背景开发者直接上手,特别在大数据规模下性能强大。
MapReduce:
MaxCompute Graph图模型:
PyODPS:
用熟悉的Python利用MaxCompute大规模计算能力处理MaxCompute数据。
PyODPS是MaxCompute 的 Python SDK,同时也提供 DataFrame 框架,提供相似 pandas 的语法,能利用 MaxCompute 强大的处理能力来处理超大规模数据。
Spark:
MaxCompute提供了Spark on MaxCompute的解决方案,使MaxCompute提供的兼容开源的Spark计算服务,让它在统一的计算资源和数据集权限体系之上,提供Spark计算框架,支持用户以熟悉的开发使用方式提交运行Spark做业。
交互式分析(Lightning)
MaxCompute产品的交互式查询服务,特性以下:
机器学习:
对比篇
为便于读者,特别是有开源社区经验的读者快速创建对MaxCompute主要功能的了解,这里作简单地映射说明。
项目 |
MaxCompute产品 |
对开源社区的一些比较说明 |
SQL |
MaxCompute SQL |
阿里自研SQL引擎,语法兼容Hive,功能和性能更优 |
MapReduce |
MaxCompute MR |
阿里自研,相似并支持Hadoop MapReduce,MaxCompute Open MR作了优化和提高 |
交互式 |
MaxCompute Lightning |
Serverless的交互式查询服务,功能相似开源生态的Presto、Hawk等 |
Spark |
Spark on MaxCompute |
支持原生Spark运行在MaxCompute上,相似Spark on Yarn形态 |
机器学习 |
PAI |
不一样于开源社区的算法库,PAI有更丰富的算法,超大规模处理能力,更是覆盖了ML/DL全流程需求的平台服务。 |
存储 |
Pangu |
阿里自研分布式存储服务,相似HDFS。MaxCompute对外目前只暴露表接口,不能直接访问文件系统。 |
资源调度 |
Fuxi |
阿里自研的资源调度系统,相似Yarn。 |
数据上传下载 |
Tunnel |
不暴露文件系统,经过Tunnel进行批量数据上传下载。 |
流式接入 |
Datahub |
MaxCompute配套的流式数据接入服务,粗略地相似kafka,可以经过简单配置归档topic数据到MaxCompute表 |
用户接口 |
CLT/SDK |
统一的命令行工具和JAVA/PYTHON SDK |
开发&诊断 |
Dataworks/Studio/Logview |
配套的数据同步、做业开发、工做流编排调度、做业运维及诊断工具。开源社区常见的Sqoop、Kettle、Ozzie等实现数据同步和调度。 |
总体 |
不是孤立的功能,完整的企业服务 |
不须要多组件集成、调优、定制,开箱即用。 |
问题篇
dataworks和MaxCompute之间的关系与区别?
这是2个产品,MaxCompute作数据存储和数据分析处理,Dataworks是集成了数据集成、数据开发调试、做业编排及运维、元数据管理、数据质量管理、数据API服务等等功能的大数据开发IDE套件。相似Spark和HUE的关系,不知道这个对比是否准确。
想测试、体验MaxCompute,成本费用高吗?
不高,应该说很低。MaxCompute提供了按做业付费的模式,其中单个做业的费用有和做业处理的数据大小密切相关。开通按量付费服务,并建立1项目。利用MaxCompute客户端工具(ODPSCMD)或者在dataworks里,建立表并上传测试数据,就能够开始测试体验了。数据不大的话,10元钱能够用很长一段时间。
固然,MaxCompute还有独占资源的模式,出于费用可控的考虑,也选择了预付费的模式。
另外,MaxCompute立刻推出”开发者版”,每月为开发者赠送必定的免费额度用于开发、学习。
MaxCompute存储目前只暴露表,能处理非结构化数据吗?
能够,非结构化数据能够存放在OSS上,一种方式是经过外表方式,经过自定义Extractor来实现非结构化处理为结构化数据的逻辑。另外,也能够用Spark on MaxCompute对OSS进行访问,经过Spark程序对OSS目录下的文件进行抽取转换,结果写入MaxCompute表。
支持哪些数据源接入到MaxCompute
经过Dataworks数据集成服务或者本身使用DataX,能够实现阿里云上的各类离线数据源如数据库、HDFS、FTP等数据源的接入;
也能够用MaxCompute Tunnel工具/SDK,经过命令或SDK批量进行数据上传、下载;
流式数据,能够利用MaxCompute提供的Flume/logstash插件,将流式数据写入Datahub,而后归档到MaxCompute表;
支持阿里云SLS、DTS服务数据写入MaxCompute表;
总结
本文简要介绍了MaxCompute这个产品基本概念和功能,并和你们熟悉的开源社区服务进行了对比映射,但愿对你们快速了解阿里云大数据计算服务。
原文连接本文为云栖社区原创内容,未经容许不得转载。