You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
7.0 KiB
Markdown

2 years ago
# 081 | 亚马逊的大数据故事:创新和拿来并存的云服务
随着大数据的发展数据处理变得越来越重要亚马逊的云端数据处理和分析服务也逐渐多起来。亚马逊的这些服务除去已经提到的DynamoDB和Elastic MapReduce还有很多。它们的来源大致分为两种一种是自己开发的另外一种则是拿开源的包装一下。今天我们就来看一看这些服务。
## Redshift
Redshift是亚马逊比较早的一个基于云的数据仓库系统。Redshift是一个兼容PostgreSQL 8.0.2版本的数据仓库系统前端对SQL语言的解析复用了PostgreSQL 8.0.2版本的源代码后端最初是基于一家亚马逊投资的公司ParAccel的并行数据仓库处理技术。Redshift在2012年以Beta版发布2013年2月正式亮相。
Redshift无疑是亚马逊最为成功的数据处理云服务之一或许我们都不需要加“之一”这种说法。Redshift自诞生开始就受到了中小型企业的欢迎很多大型企业比如Airbnb也一度使用它。
Redshift到底有多牛证据之一在2017年的年度大会OpenWorld上Oracle创始人拉里 · 埃里森Larry Elison在发表主题演讲时把Redshift作为Oracle的唯一对标的产品进行了比较。Oracle在数据库领域的建树决定了任何一个被Oracle作为敌人对待的人都是在这个领域里面取得了相当成就的。这一次Redshift终于“荣幸”地成为了“靶子”。
Redshift这款产品长久以来都有自己独立的数据存储方式用户需要从其他地方把数据导入Redshift才可以使用。2017年4月亚马逊发布了叫作Redshift Spectrum的新功能从而允许Redshift直接访问存储在S3上的文件。
这个新发布的功能给业界带来了相当大的震撼。结合亚马逊S3存储的无敌和Redshift的查询功能这进一步强化了亚马逊在云端数据处理上的能力。
Redshift在市场上最大的竞争对手是Snowflake这是一家云端弹性数据仓库的创业公司。有关Snowflake的故事我会单独介绍。
## Aurora
Aurora是亚马逊推出的第二个数据库云端服务2014年底推出。如果说Redshift是服务于数据仓库和数据分析的Aurora主要是亚马逊用于事务处理的服务。
Aurora和MySQL 5.6版本兼容其存储引擎和InnoDB兼容。2017年的时候亚马逊又推出了和PostgreSQL兼容的Aurora数据库。这样一来两大开源数据库都兼容了。
Aurora是亚马逊另外一款在云端受欢迎的数据库。亚马逊自己公布的数据显示Aurora的性能比传统MySQL要快5倍性能提升主要是源于亚马逊自己设计的属于商业机密的基于SSD的存储结构。
Aurora团队在2017年发表了一篇论文介绍了Aurora的实现细节。其中最为创新的地方在于计算引擎往存储层写入东西的时候可以做得非常轻量级只需要把日志文件记录传下去就好文件系统本身实现了对数据的整理和冗余的保证。
结合Aurora和Redshift亚马逊拥有了关于数据仓库和事务处理全方位的解决方案这也让它在云端数据库领域越发显得有竞争力。
## Athena
Athena是亚马逊的一个查询服务它允许用户直接查询存储在S3中的数据。和Redshift以及Aurora不同Athena是Serverless架构的这个服务可以按照计算的需要自动起虚拟机就能够进行查询。用户不再需要显式的起虚拟机大大的方便了用户的使用体验。
此外它与Aurora以及Redshift还有一点不一样Athena是一个拿来主义的产物。它基于开源项目Presto这个项目在Facebook、Airbnb、京东等很多公司都被广泛使用。实际上按照公布的信息来看Redshift Spectrum也是基于Presto的技术。
亚马逊当然是对Presto进行了很多的改进。但是以亚马逊一贯的作风这些改进并没有被重新贡献回开源社区。所以指望亚马逊在从开源吸血的时候能够反馈社会可能过于乐观。
## Kinesis
Kinesis是亚马逊平台上另外一款重要的产品它主要针对的是对流数据的导入和分析。从某种程度上来讲Kinesis平台对应的开源产品是Kafka。这一次亚马逊选择了不用Kafka而是自己开发一套具有竞争意义的产品。
这是一个我不太理解的决定。因为Kafka在开源社区里面是质量挺高的一款软件它的用途也很广泛充分被人证实了是靠谱的选择。亚马逊这个非常擅长“拿来主义”的公司这次竟然选择了自己去建一个系统。
我后来注意到这个团队的主管人员是微软里面早年做流计算平台出身的。我想可能这位主管人员觉得自己的经验搭建一个新产品可能会比Kafka更成熟更先进。至于实际效果我们还需要时间去验证。
但是不管怎样作为在AWS上流计算的唯一选择Kinesis推出以来还是吸引了不少用户。这个产品无论如何结果都应该不会太差。只要AWS本身表现可以的话流计算总是有需求的。
## Glue
Glue是亚马逊2017年最新推出来的云计算服务。它的主要目标是ETLETL是数据管理整个生态周期中很重要的一环。以前用户需要把数据导入Redshift之类的数据库时需要自己去写ETL的管道pipeline这无疑非常不方便。
Glue的推出是亚马逊想要弥补这块市场缺失必然的一步。至于为什么到2017年才提上日程我想数据处理的产品核心的还是在数据处理而数据的导入很多用户有自己成熟的解决方案其优先级到底有多高不好说。
## QuickSight
严格讲QuickSight不是一个数据处理分析工具而是一个数据可视化服务主要的服务对象是商业智能仪表盘BI dashboard
亚马逊主推的QuickSight和传统的BI领导者比起来还有很多的问题比如说功能上比较单一。但是它主要的优点是成本低廉又和亚马逊云端的其他产品紧密集成。所以对于中小企业不需要太复杂BI功能的这是一个很好的选择。
我们可以看到,亚马逊在云端已经构建了非常完善的大数据处理生态圈,这其中既有开源的,又有自己构建的,这个生态圈足以让亚马逊对任何一个传统的和云端数据处理的提供者展开竞争。
亚马逊在整个大数据的发展历程里通过Dynamo产品给大数据的发展作出了巨大贡献也体现了一个业界领先企业的创新能力。很多其他的产品也展现出了亚马逊良好的创新能力。
但是亚马逊从Hadoop开源社区获得了很多的便利却不愿意把自己的改进反馈给开源社区实际上这种做法动摇了开源社区良性发展的基础树立了一个坏榜样。所以对于亚马逊在大数据发展过程中的功与过我们只能以一种很复杂的态度去看待无法一言以蔽之。