阿里云 - MaxCompute研究

一、官方介绍

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研究_第1张图片

通过上图,可以看到看到:

  • 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)

你可能感兴趣的:(数据库,数据仓库,阿里云,odps,大数据)