新技术架起 Oracle、Hadoop、NoSQL数据存储之间的桥梁

发现企业或组织对数据管理架构的需求,Oracle推出Big Data SQL软件来整合包括Hadoop、NoSQL和Oracle数据库等在内的各种各样的数据源。

一套完整的解决方案是使Oracle的大数据设备和Big Data SQL结合起来,Cloudera的 Hadoop 分布式和Oracle自己的 NoSQL 数据库。开始时Oracle Big Data SQL只支持Apache Hive和Hadoop File System,其他供应商需要移植SQL关系数据库到Hadoop上运行。

Oracle Big Data SQL产品意味着管理员在处理非关系型数据库或Hadoop中的信息时,不用再学习其他查询语言,Oracle的大数据分析主管Neil Mendelson说。

我们可以使用我们已经习惯使用的Oracle SQL语言——完整的SQL语言,我们现在可以直接访问这三个中的任何一个数据源或其中任意组合,他解释道。

类似的工具都可以在开源社区如Stinger中获得,这使得你可以使用SQL命令来查询Hadoop中数据,或使用旨在NoSQL系统上实现SQL命令的CQL语言(Cassandra查询语言)。

创建这个大数据管理系统的目标是希望SQL查询能够运行在不同的数据源上,并且使企业或组织能够利用现有的技术维护企业级数据安全,以及管理敏感的信息。Oracle表示这项技术其独特的架构和Smart Scan继承于Oracle Exadata,同时能够允许Oracle Big Data SQL查询所有形式的结构化和非结构化数据,并且最小化数据移动。

这也促进了Oracle数据库的安全功能,包括组织现有的安全策略,扩展到Hadoop和NoSQL数据。

Oracle的Dan McClary说,产品的开发已经有一段时间了,而且它超越了现有的技术。他同时表示Big Data SQL与HDFS DataNodes和YARN NodeManagers能够co-resident,另外,从新的外部表的查询被发送到这些服务能够保证直接路径读取和数据本地化。

Cloudera创始人、董事长兼首席战略官Mike Olson说:“在oracle的大数据设备上运行Cloudera的软件集比DIY集群部署更具成本效益并且速度更快。在Hadoop查询数据时,我们已经看到客户对SQL强烈的需求。”

WS 技术代言人Werner Vogels谈混合云、移动、大数据和技术债务的运用

AWS的流动性推动。Vogles说云计算和移动性将不可避免的相互关联。他表示移动设备的增多带我们进入了数据消费、内容更少的时代。他说:“年轻的企业是移动第一”。AWS希望通过中央ID管理或者是虚拟工作空间消除开发过程中的复杂性,使得开发更加灵活,从而更好的创新。Vogles说:“CIO已经给我们反馈,他们表示BYOD是非常重要的,但是他们不想管理设备。他们希望自己管理的是虚拟的工作空间和充分配置的环境”。

另言之,AWS也开始向其他移动玩家靠近。AWS也开始向其他移动玩家靠近设备管理相当于赌注。值得注意的是,亚马逊-谷歌和微软一样,与Box和Dropbox在文件分享和文档协作上的价格竞争非常激烈。

混合数据中心。“混合云对我们很重要” Vogles说。“很显然,我们是公共云,事实上,还是会有一些东西放在企业本地的。”确实,最大的问题是在将来怎样定义混合云。公有云和本地数据的比例会是1:9或者相反?或者一些适中?第三个答案是正确的,但关键在于如何定义适中。

Vogles提出像新闻集团这样的公司,它考虑通过AWS将40个数据中心合并成,这就是他们对混合云的定义。AWS的计划是提供一系列工具,如虚拟专用网络、直接连接以及联合身份验证等工具,帮助企业更加自然的连接到本地数据中心。AWS也提供VMware管理集成突帮助企业更好的管理混合云。

Yinal Ozkan,AWS的主要方案构架师的一段讲话强调了细微的差别。AWS的使用案例比比皆是,从卸载存储到分析云的灾难恢复。“例如,三星智能电视中心软件在AWS上运营,但是财务交易在在三星自己的基础设施上进行的。”Vogels介绍道。为什么?多项三星的业务依赖于基础设施的交易而且很难移动。另外,银行会在云计算中运行面向客户的运行维护,但是交易会在财务数据中心部门。

所以,怎样使混合数据中心转向更加公共化?Vogles说高性能计算(HPC)是云计算应用的一个关键领域。工业化公司比如像石油和天然气还有环境已经投资了高性能计算系统,但是本地资源确实提前好几个月预定的。

“在满负载的情况下,本地的高性能计算系统非常的昂贵,” Vogles说,所以额外的工作就需要转移到云上去完成。

遗留的基础设施和技术债务。AWS和亚马逊都有技术债务-遗留的基础设施,这些不可以简单的被投弃-Vogles说关键是建造一套不被锁定的系统。

Vogles说亚马逊假设今天的软件是无法运行两年的,软件必须能够随着时间的发展。“它的意思是我们没有被锁在历史系统中,” Vogles谈到,“当然我们有技术债务,但是可以改变我们系统和规模化运营。 这样,相较于客户来说,我们处在一个不利的境况中。”

值得注意,在某种程度上讲亚马逊书混合商店。亚马逊很多零售业务是运行在AWS上的,但是产品数据是缓存在本地的,Vogles解释说。这项产品的信息专门服务于硬件并为使用案例设计。“我们正在打算从本地转向云端。” Vogles补充道。

AWS使遗留的基础设施都是基于客户的要求进行淘汰的。比如说,AWS已经是第二代的了。Vogles曾说过传统的系统将会保持其他的能力。内部高性能计算系统的平均寿命是5到8年,但是研究人抱怨两年后就开始抱怨,因为他们没有最新的处理器。“我们可以将这些高性能计算系统应用于日常使用,并设立快速的更新周期。” Vogles说道。

当谈及遗留的基础设施,企业更希望是重组架构和面向未来,而不是将基础设施转向云。

大数据,MapReduce 和Hadoop。谷歌最近指出MapReduce 也只能到此为止了。对此,Vogles表示赞同。

最终,“MapReduce下降到低级的一层,”Vogels说。“运用 Hadoop和MapReduce自定义分析是至关重要的。最后,MapReduce将会被运用为方程式的一部分,但是将不会成为完整的图画。亚马逊的Redshift服务提供更加快速和简单的分析服务,这是MapReduce不能提供的,”他补充道。这里将会有MapReduce大量的应用, 当然也会吸引众多的开发者,但是最终,它也只是大数据的一个资产组合。

最适合大数据应用的是SOA还是REST?

跟所有的企业数据一样,大数据唯有通过应用投射给用户才有用。对于设计或重新设计大数据应用的架构师来说,一个关键问题是究竟是用面向对象架构(SOA)还是RESTful API将大数据组件及服务与应用其他部分连接。从大数据产品要暴露的接口开始,然后在应用这一侧定义大数据接口。接下来,考虑安全和治理,最后,无论选择什么样的API都要小心地将管理和访问服务分隔开来。

做大数据应用的一个主要问题是与大数据容器本身进行交换的本质。这一关系包括了传统的哪一种抽象级别最适合应用的问题,所需的事务及状态控制以及必要的安全性。

大数据工具往往混合了API,部分RESTful以及部分类似SOA式的API。这种混编会导致一种混乱的景象,除非大数据接口被抽象为服务或资源,而不是直接暴露给应用。这样的话,只有一个组件需要做出变化——大数据适配器流程——如果大数据工具彻底改变了的话。

大数据应用,什么时候用SOA,什么时候用REST

在大数据适配器与其他组件之间的接口处,看看大数据是如何被用来为选择API进行指导的。SOA适合在向大数据容器这样的东西发布一组与应用绑定的特定能力的情况。这一模型可以是高度抽象的,意味着应用使用大数据可以与数据本身的技术和可分布性完全隔绝。

应用预期会在特定分析或规约流程的结果方面更多使用大数据,在这种情况下SOA是有意义的。如果应用需要知道作为资源集的大数据的情况,又不想把它抽象化为高层服务,那么RESTful接口也许会更合适。

在这种高度上进行应用审查,至关重要的一点是不要掉进这样一个陷阱,即假定大数据应用应该用Apache的WebHDFS这类现有的RESTful API来开发。通常而言,最好的办法是将大数据流程或设施与应用通过现有的接口连接起来,而不是那些用来直接进行文件系统级操作的。后一种类型的接口会产生可观的增量式开发工作,如果是在这个层面来写,要想将应用从一个大数据服务或设施迁移至另一个几乎是不可能的。

上下文、状态及事务性行为

事务就是工作的上下文,一个从业务角度产生流程步骤的逻辑序列。在确定是SOA还是REST最适合大数据应用时,第一个问题是事务性工作是否包含在大数据组件之内,或者大数据引用在事务中是否跨多个组件传播。第一种情况下,RESTful接口可轻易部署。而在第二种情况下,要想用REST,就得需要某种事务状态控制的机制。而SOA这两种情况都很容易处理。

在进行大数据的SOA和REST决策时,安全和治理也是很重要的点。SOA的安全、访问日志及控制是显式的,且与用户目录和应用控制是高度集成在一起的。而REST的安全和访问控制机制则可能是在外部应用的。这有可能是将大数据访问包装进SOA里面的一个有力的理由,即便在REST使用是在大数据产品级这种层次上也是如此。如果采用RESTful模型的话,必须明确如何建立起能通过正式治理评审的大数据安全。大多数用户会吸收VPN或SSL级的安全,但还会通过网络级的应用访问安全来增强。

最后,小心不要暴露过度。大多数情况下,大数据服务可分为两类——实际的数据访问服务以及数据服务平台管理和控制服务。所有的现代大数据架构都支持这两种,但因为平台管理和控制往往被视为是技术过程而非应用过程,其支持往往牵涉到通过简单的REST接口进行低级的功能访问。大数据管理服务应该尽量少直接暴露给应用开发者或用户,因为会导致相当重大错误的风险。

在需要平台管理工具为大数据使用进行准备时,最好是将这些功能在大数据适配器组件内实现,为应用开发者建立一个更容易的接口来使用,并确保在大数据分析开始之前永远都先经历必要的平台管理步骤。

为架构师和大数据专家预留对平台管理API的访问将是必要的,这样能让他们在日常的数据仓储维护任务中用到。部分用户建议对低级的平台管理API进行抽象,这样的话哪怕是平台管理实践也能跨多个实现应用,但经验告诉我们,要想在这种层次上建立有用的通用实践是很困难的。最好的做法有可能是就让专家和架构师在需要时采用特定的平台管理API就行了。

一旦大数据SOA/REST评审完成,永远要记得把这两种截然不同的API风格的结果与一般政策对照一下。一种工具被创建出来时,需要的绝不仅仅是确立的API基线支持,还包括不同的实践,要预料到更高层面的风险。确保在进行下去之前对风险进行了评估。