一、官方介绍
MaxCompute是适用于数据分析场景的企业级SaaS(Software as a Service)模式云数据仓库,提供离线和流式数据的接入,支持大规模数据计算及查询加速能力。
MaxCompute适用于100 GB以上规模的存储及计算需求,最大可达EB级别,适用于大型互联网企业的数据仓库和BI分析、网站的日志分析、电子商务网站的交易分析、用户特征和兴趣挖掘等。
与阿里云其他产品做了深度融合:
- DataWorks:基于DataWorks实现一站式的数据同步、业务流程设计、数据开发、管理和运维功能。
- 机器学习PAI:基于机器学习平台的算法组件实现对MaxCompute数据进行模型训练等操作。
- Quick BI:基于Quick BI对MaxCompute数据进行报表制作,实现数据可视化分析。
二、概述产品
MaxCompute原名ODPS,是一款存储与计算分离的产品,整体设计理念和Hadoop体系类似,我们知道Hive是建立在Hadoop体系架构上的一层SQL抽象(Hadoop生态及Hive、HBase、Impala、HDFS之间的关系),而MaxCompute对外暴露的SQL接口,基本等同于Hadoop体系里的Hive。
17年的时候,阿里云论坛上有一篇文章:阿里云大数据利器Maxcompute学习之-假如你使用过hive,这篇文章直接点明了MaxCompute底层技术的本质。
- 类似于Hadoop体系中的Hive,支持分区、支持SQL、语法也与Hive基本一致;
- 存储与计算分离,Maxcompute的数据是在飞天文件系统,对外不暴露文件系统;
所以,如果理解了Hadoop体系,那么再去理解MaxCompute就简单多了,如果不了解Hadoop体系,建议先熟悉Hadoop体系后再学习MaxCompute。
通过上图,可以看到看到:
- MaxCompute的存储层存储层类似于Hadoop里的HDFS,并且支持对接OSS等外部存储;
- MaxCompute的计算引擎部分,下意识地会将其对标理解为Hadoop里的MapReduce,但是我们看到这个图里计算模型通道里还有MapReduce,那么这里的MaxCompute Engine可能是更为底层的计算引擎,上层可以对接MapReduce等一系列的计算框架;
- MaxCompute的计算模型通道里,并没有更进一步地划分层级,实际上还是有一些层级和依赖关系的。
三、版本信息
产品版本:
SAAS产品没有具体的版本,所有云上用户都是相同的产品版本,更新记录见:重要功能发布记录 (aliyun.com)
驱动版本:
通过JDBC连接MaxCompute时,用到的驱动有多个版本,最新的驱动版本是V3.2.9:使用JDBC连接 (aliyun.com)
数据类型版本:
MaxCompute 2.0推出了兼容开源主流产品的2.0数据类型和Hive兼容数据类型两个数据类型版本。加上原有的1.0数据类型版本,目前MaxCompute一共支持3个数据类型版本:数据类型版本说明 (aliyun.com)
- 1.0数据类型版本
- 2.0数据类型版本
- Hive兼容数据类型
四、基础特性
MaxCompute SQL:
- MaxCompute SQL 是MaxCompute 对外提供的诸多接口之一:SQL概述 (aliyun.com);
- 适用于海量数据(GB、TB、EB级别)、离线批量计算的场景,主要用于100 GB以上规模的数据计算;
- 提交MaxCompute作业后,会存在几十秒到数分钟不等的排队调度,所以适合处理批作业,提交一次作业批量处理海量数据,无法在毫秒级别返回结果。不适合直接对接需要每秒处理几千至数万笔事务的前台业务系统。
- MaxCompute SQL不支持事务、索引。
- 语法的差异:与其他SQL语法的差异 (aliyun.com)
MaxCompute Tunnel:
- Tunnel是MaxCompute的数据通道,可以通过Tunnel向MaxCompute中上传或者下载数据:Tunnel操作 (aliyun.com);
- Tunnel功能及Tunnel SDK当前不支持外部表操作。您可以通过Tunnel直接上传数据到MaxCompute内部表,或者是通过OSS Python SDK上传到OSS后,在MaxCompute使用外部表做映射。
内部表与外部表:
- MaxCompute的表格有两种类型:内部表和外部表(MaxCompute 2.0版本开始支持外部表)。
- 对于内部表,所有的数据都被存储在MaxCompute中,表中列的数据类型可以是MaxCompute支持的任意一种数据类型版本说明。
- 对于外部表,MaxCompute并不真正持有数据,表格的数据可以存放在OSS或OTS中 。MaxCompute仅会记录表格的Meta信息,您可以通过MaxCompute的外部表机制处理OSS或OTS上的非结构化数据,例如,视频、音频、基因、气象、地理信息等。
官方参考资料:
- 官网介绍:
- 云原生大数据计算服务 MaxCompute (aliyun.com)
- 使用JDBC连接 (aliyun.com)
- 数据类型版本说明 (aliyun.com)
- Tunnel操作 (aliyun.com)
- Tunnel命令与Tunnel SDK参考 (aliyun.com)
- 官方文档:
- MaxCompute Reader (aliyun.com)
- MaxCompute Writer (aliyun.com)
- DataX/odpswriter.md at master · alibaba/DataX · GitHub
- DataX/odpsreader.md at master · alibaba/DataX · GitHub
其他参考资料:
- 阿里云大数据利器Maxcompute学习之-假如你使用过hive-阿里云开发者社区 (aliyun.com)
- MaxCompute理解数据、运算和用户的大脑:基于代价的优化器-阿里云开发者社区 (aliyun.com)