全部博文(221)
2012年(221)
分类: 云计算
2012-08-01 16:59:25
西方人常说,没有永远的敌人,只有永恒的利益。要说微软与开源社区的恩怨,估计一辈子都说不完。不过,作为当今最富魅力的技术热点之一,云计算居然能将微软与开源这连两片隔路不同天的“云”神奇地连在了一起。Hadoop就是一个经典的例子。
总所周知,微软作为一家知名的数据库厂商,SQL Server以其易用性被广泛应用于各个企业的公有云与私有云平台。不过,作为硬伤之一,SQL Server的兼容性一直是饱受诟病的地方。另一个硬伤是,在SQL Server 2012之前,SQL Server不支持NoSQL,在大数据横行的今天,弄得微软云计算用户煞是郁闷。
不过SQL Server 2012与Apache Hadoop的联姻,着实是一个巨大的惊喜。微软宣布与 Hadoop 的提供商 Cloudera 的合作,推出基于Linux 版本SQL Server ODBC 驱动。主要内容是微软开发 Hadoop 的连接器,正式意味 SQL Server 也跨入了 NoSQL 领域。
那么,到底Hadoop有什么神奇的魔力,使得微软如此垂涎呢?要回答这个问题,我们需要明白Hadoop对于SQL Server究竟意味着什么。首先,Hadoop不是一个关系型数据库系统,因此不存在替代SQL Server的可能。恰恰相反,作为Apache基金会管理的开源项目Hadoop的出发点是非结构化数据。而SQL Server与其它关系型数据库主要面向的是结构化数据的存储。当然,数据也可以使用XML或者FileStream数据类型存储,但是,相对于关系型数据库而言,其存储空间与存储效率都不甚理想。实际上,Hadoop的幕后推手是Google,初衷是基于本文信息的索引。Yahoo!的加盟加速Hadoop的企业级应用。2010年,Facebook拥有世界上最大的Hadoop集群,总量超过20PB。
Hadoop对应的编程语言是Java,对应的两大实现分别为:Hadoop Distributed File System (HDFS),用于分布式集群服务器的数据存储;MapReduce,用于高性能并行数据处理。本质上,MapReduce将数据操作肢解,映射到集群中的所有服务器,然后取回所有的结果合并为一个单一的结果集。
微软对于Hadoop支持有。第一是为Windows Server开发的Windows版本的Hadoop,第二是为基于Windows Azure开发的云端Hadoop。第三,微软与HortonWorks合作开发的可用于Hadoop与SQL Server通信的双向连接器。有了Hadoop连接器,微软的云用户就可以在Hadoop与SQL Server 2012之间来回移动大数据了。
Hadoop对于微软的意义非常明显。实际上,由于大数据时代的到来,SQL Server的另外两大对手Oracle与IBM DB2实际上也已经拥抱了Hadoop。微软联姻开源Hadoop既可以说是无奈,也可以说是双赢。但是不管怎么样,对于云计算客户而言,他们可以不用再纠结数据的结构化与非结构化的问题了,因为SQL Server 2012是一个完整的数据应用平台了。