大数据分析平台产品对比之MaxCompute(原ODPS)篇

  1. 云栖社区>
  2. 阿里巴巴大数据 —玩家社区>
  3. 博客>
  4. 正文

大数据分析平台产品对比之MaxCompute(原ODPS)篇

隐林 2017-07-20 15:31:19 浏览5371

之前尝试使用过一些国内外的云产品,特别是大数据分析型产品,例如:亚马逊的EMR、Redshift,Google的Bigquery以及阿里云的ODPS,现在更名为MaxCompute,https://www.aliyun.com/product/odps。相信大多数人对亚马逊的EMR、Redshift,Google的Bigquery都比较了解。但在尝试使用ODPS后,­­ODPS感觉也是一款不错的大数据分析产品。本文主要为大家介绍关于ODPS的使用体验,同时也会与Redshift及Bigquery做对比,让大家对各款云产品有初步的认识。

鉴于很多人对ODPS不是很熟悉,在这里有必要简单介绍下。ODPS 是阿里云旗下一款功能较为齐全,使用便捷,完全托管的PB级别数据仓库产品,用于解决用户在分析大数据过程中遇到的问题。ODPS提供多种数据导入/导出手段,使用户数据轻松上云。且完全屏蔽底层算法的实现,即便没有分布式编程经验的开发人员,也能快速完成分析工作。同时ODPS提供的多种计算框架,在使用习惯上与开源Hadoop基本一致,用户不需要过多的额外学习就可以基本掌握ODPS的使用方法。此外,阿里云数加产品还为ODPS提供了友好的图形化界面,方便用户开发、配置作业,完成多用户协同工作。阿里云下的另一款产品CDP能够提供ODPS与阿里云旗下其他产品的数据互通。

下面,我将从准备工作、数据导入、BI分析以及机器学习、流式分析等场景介绍ODPS。


准备工作


在正式使用之前,仔细阅读了ODPS的文档,这个还是很有必要的,对产品的基本概念、安全策略、售卖方式要有足够的了解。在此之后再进行创建Project,Table等操作(各家的组织结构不尽相同,RedShift有Cluster、Database,Bigquery有Project、Dataset,ODPS是Project)。

在这方面ODPS和Bigquery明显好于Redshift,前两者真正做到了开箱即用,在创建Project后,即可进行数据开发工作,无需额外的启动服务及系统配置工作。用户不必关心硬件配置、系统规模等繁琐的配置。作为一款完全托管的大数据分析产品,ODPS可以根据业务情况做到计算资源自动弹性伸缩。但亚马逊要先启动Cluster,再创建Project,且在此过程中还需要诸多配置工作(这也难怪,AWS几乎都是基于ECS的)。

在付费方面,ODPS和Bigquery完全是按照云的理念按量付费,每运行一个作业产生一笔账单。这个不得不要吐槽亚马逊,超级贵啊有没有,几乎是国内ODPS的数倍!而且是按月出账单,稍不留神几千大洋就被扣掉了。本人就是一时疏忽损失了2000人民币,这也是我告诫大家仔细看文档的原因。可是,亚马逊和google的文档都是英文的,这是为神马?亚马逊不是要进中国嘛?可为啥到现在连中文文档都没有,为啥没中文文档,为啥没中文文档,为啥没中文文档?重要的事情…

说到文档,Bigquery的文档也还是较为简单,感觉也不过是Google放出来摆摆样子。Google强大的云计算技术并没有真的想施舍给中小企业。ODPS的文档还是比较全面的,描述准确、细致。虽然使用起来还是感觉有点小贵,但据说会很快推出降价策略。ODPS在成本控制方面也很用心,SQLCost这个命令可以估算每条SQL消耗的费用,很好用。


数据上云


如何使数据上云是大数据处理中遇到的第一个难题。通常情况下,在起始阶段会花费大量时间将数据导入云产品中。

ODPS是一款将存储与计算集成的产品,数据在导入ODPS后即可参与计算。ODPS提供多种操作简便的数据导入工具,通过简单的几项配置操作后,即可以通过数据导入工具将数据上传至ODPS。用户也可以通过ODPS提供的Restful API及Java/Python SDK完成多种多样的定制化场景需求。此外,ODPS可同现有生态对接,已经实现与OGG,Fluentd,Sqoop的对接,通过这些工具用户可以完成Oracle,Mysql,Hadoop的数据阐述。阿里云的CDP能够帮助用户完成云产品见的数据同步工作,例如:RDS、OTS、OSS的数据导入导出。


Redshift支持将S3、EMR、DynamoDB等产品的数据导入其中。当然最基本的,Redshift也支持Remote Host数据,可惜我从来没成功过。这也暴露了国外云厂商的缺点:距离有了,美没了。Bigquery支持导入BigTable的数据。


BI开发


有了数据,就可以进行数据查询。ODPS提供了友好的UI界面能够让用户定义数据查询。并且可以通过简单的控件拖拽方式决定多个任务间的依赖关系,不在需要编写复杂的任务调度工具。这的确节省了我大量的时间。一旦任务失败,会有报警短信发给我,不用担心白天由于报表没产出,老板给我脸色看。

b1be47e1726813a30f738098751ff7f19ecc3538

如果想尽快获取SQL查询结果,可以通过简单的配置获得ODPS提供的准实时查询能力。这个是ODPS内置的,不需要将数据迁移到其他产品中。当然,如果不满足于ODPS提供的数据实时处理能力,想借助RDS或者ADS完成更快速的交互式查询及多维分析,可以通过CDP,将ODPS中的数据导入到RDS中。我当时使用的是ADS,更加便捷,可以直接加载ODPS的数据。这些产品可以为企业决策提供提供更快速的数据支持。


在这方面,Redshift及Bigquery真的显得乏善可陈。虽然Redshift支持jdbc协议,可以对接多种BI分析工具。但shuju.aliyun.com中提供了非常多的BI工具及分析套件。之前有见过阿里巴巴内部的BI分析师使用这套产品。


数据挖掘及机器学习


随着业务的不断发展,很多用户已经不满足于简单的BI分析,想通过数据挖掘及机器学习算法完成更位复杂的数据业务,例如:广告,个性化推荐,用户分类等。但并不是每家企业都具备开发分布式算法的能力,ODPS上面的PAI算法平台有不少常用算法,例如分类,聚类,预测,甚至还有深度学习算法。比较特别的是,这些算法通过简单的拖拽动作就可以搞定,无需使用者介入枯燥的编程工作,降低操作使用门槛。我之前通过阿里云发布的沟通邮箱申请了试用:


bed3c48f787e5181bd8ddd4743313be9221e422c

更为重要的是,用户可以通过ODPS提供的MapReduce、扩展的MRR及Graph模型提供定制算法的能力,并可以将这些算法分享给其他人。

这方面我没深入了解过AWS及Google。之前听说过AWS的Amazon Machine Learning,只可惜看到售价就差点把我吓跑了,按照条数收费。第一次尝试处理4MB数据,收了25美金....然后,就没有然后了。虽然AmazonMachine Learning同样提供可视化的工具和向导,但看看定价,还是算了。


流式分析


除大家熟知的离线分析能力,StreamCompute流式数据处理解决了实施数据处理的难题。不同于Storm,StreamCompute为提供的是SQL查询接口。普通的BI分析师也可完成流式开发工作。对于我这种懒人,是非常有吸引力的。只要一个SQL就搞定了:

4f6cdd4c1eccfe870a03fdadc326bb9eddfb00d6


结语


总的来说,目前把云计算当做重点发展业务的恐怕只有亚马逊和阿里云。Google怎么看起来都像是玩票的感觉。虽然也有很多小厂商投入到云计算的市场,但考虑到这个行业的特殊性(业务要求严苛,技术投入高),我还是会选择亚马逊、阿里云这样的大公司。从国内的服务现状来看,亚马逊虽然出道早,产品深入人心,但从定价、服务、使用习惯上,国内企业则更占优势。况且,阿里云ODPS这半年来更新很快,例如:加入了对Flume、Fluentd、OGG等数据导入插件的支持,定价也在准备下调。


阿里巴巴大数据-玩家社区  https://yq.aliyun.com/teams/6/

---阿里大数据博文,问答,社群,实践,有朋自远方来,不亦说乎……

bba01b493e1c5d904e882b1c380673c6ebe49a98