之前尝试使用过一些国内外的云产品,特别是大数据分析型产品,例如:亚马逊的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界面能够让用户定义数据查询。并且可以通过简单的控件拖拽方式决定多个任务间的依赖关系,不在需要编写复杂的任务调度工具。这的确节省了我大量的时间。一旦任务失败,会有报警短信发给我,不用担心白天由于报表没产出,老板给我脸色看。
如果想尽快获取SQL查询结果,可以通过简单的配置获得ODPS提供的准实时查询能力。这个是ODPS内置的,不需要将数据迁移到其他产品中。当然,如果不满足于ODPS提供的数据实时处理能力,想借助RDS或者ADS完成更快速的交互式查询及多维分析,可以通过CDP,将ODPS中的数据导入到RDS中。我当时使用的是ADS,更加便捷,可以直接加载ODPS的数据。这些产品可以为企业决策提供提供更快速的数据支持。
在这方面,Redshift及Bigquery真的显得乏善可陈。虽然Redshift支持jdbc协议,可以对接多种BI分析工具。但shuju.aliyun.com中提供了非常多的BI工具及分析套件。之前有见过阿里巴巴内部的BI分析师使用这套产品。
数据挖掘及机器学习
随着业务的不断发展,很多用户已经不满足于简单的BI分析,想通过数据挖掘及机器学习算法完成更位复杂的数据业务,例如:广告,个性化推荐,用户分类等。但并不是每家企业都具备开发分布式算法的能力,ODPS上面的PAI算法平台有不少常用算法,例如分类,聚类,预测,甚至还有深度学习算法。比较特别的是,这些算法通过简单的拖拽动作就可以搞定,无需使用者介入枯燥的编程工作,降低操作使用门槛。我之前通过阿里云发布的沟通邮箱申请了试用:
更为重要的是,用户可以通过ODPS提供的MapReduce、扩展的MRR及Graph模型提供定制算法的能力,并可以将这些算法分享给其他人。
这方面我没深入了解过AWS及Google。之前听说过AWS的Amazon Machine Learning,只可惜看到售价就差点把我吓跑了,按照条数收费。第一次尝试处理4MB数据,收了25美金....然后,就没有然后了。虽然AmazonMachine Learning同样提供可视化的工具和向导,但看看定价,还是算了。
流式分析
除大家熟知的离线分析能力,StreamCompute流式数据处理解决了实施数据处理的难题。不同于Storm,StreamCompute为提供的是SQL查询接口。普通的BI分析师也可完成流式开发工作。对于我这种懒人,是非常有吸引力的。只要一个SQL就搞定了:
结语
总的来说,目前把云计算当做重点发展业务的恐怕只有亚马逊和阿里云。Google怎么看起来都像是玩票的感觉。虽然也有很多小厂商投入到云计算的市场,但考虑到这个行业的特殊性(业务要求严苛,技术投入高),我还是会选择亚马逊、阿里云这样的大公司。从国内的服务现状来看,亚马逊虽然出道早,产品深入人心,但从定价、服务、使用习惯上,国内企业则更占优势。况且,阿里云ODPS这半年来更新很快,例如:加入了对Flume、Fluentd、OGG等数据导入插件的支持,定价也在准备下调。
阿里巴巴大数据-玩家社区 https://yq.aliyun.com/teams/6/
---阿里大数据博文,问答,社群,实践,有朋自远方来,不亦说乎……