编者按:由 InfoQ 主办的全球架构师峰会将于2012 年8 月10 日-12 日在深圳举行,为了更好地诠释架构的意义、方法和实践,InfoQ 中文站近期会集中发布一批与架构相关的文章,本篇即为其中之一。InfoQ 也欢迎读者亲身参与到本次全球架构师峰会中,与来自国内外的顶尖架构师进行面对面的交流。报名参会请点击这里。
“企业信息集成(EII):实用方式”于2005 年发布,描述了一套集成不同数据源的方法论,它利用了当时的先进技术,如面向服务架构(SOA)、Web Services、XML、资源描述架构(RDF)、基于XML 的元数据格式、数据提取、转换和加载(ETL)等。EII 基本能够为关系型数据元素提供统一视角,但在性能效率上还无法替代数据仓库和多维数据库。五年之后,技术已经得到了显著提升,不仅体现在对分散数据的操作上,还体现在简化了单一容器下不同数据的整合,以及对数据深入挖掘的能力上。
数据管理方式的技术正在向虚拟化转换,包括低成本存储、云计算、NoSQL 数据库以及Hadoop 等。当我们提起虚拟化时,已经远远超出为一台物理机器提供一套软件实例的概念。时至今日,我们可以对服务器、存储以及网络实现虚拟化。所有这些虚拟化意味着我们不再受这些物理条件的限制,能够迅速构建物理环境,以支持我们特定时刻的特定需求。当面对Gb、Tb、Pb 等级数据量的处理需求时,我们基本能摆脱结构化的数据仓库。我们不再需要仅仅为了发掘业务的某一方面而建立特殊的环境了。
低成本存储在业务的数据存储方面节省了开支。高昂的存储成本会使得企业寻找在有限规模的数据之上进行关键业务分析的方案,这使得如何选择最重要的数据变得十分关键,而且还限制了系统能够处理的数据的质量。负面影响是业务最终可能面临很少选择,因为无法提供足够的历史数据,从而识别一种有效关键模式。或者因为高昂的投入使得业务停止,而使用常规惯例来确定模式。
云计算提供了一种方式,可以满足需要通过海量数据源在合理时间范围内产生结果的需求。海量数据处理需要两点:弹性存储,CPU。高速网络很有帮助,但是稍后我们会看到,软件在处理海量数据时,它并非是系统的瓶颈。弹性存储意味着企业不会在期望操作的数据规模或类型上受到限制,从而降低了使用数据仓库无法获取最佳结果的风险。更多的CPU 使得结果能够在期望的时间范围内更快地被交付。
NoSQL 提供了对海量数据的支持,但与传统的关系型数据库没有关联。而且大部分 NoSQL 数据库是开源的,无须支付购买证书等费用。NoSQL 对于表结构有着惊人的灵活性,无须随着系统的改进而不断修改完善定义。NoSQL 可以支持不同数据源的合并查看,从而成为 EII 之后另一种备选方案,这或许是 NoSQL 最重要的方面了。
NoSQL 内置了数据冗余与分布式数据存储机制。海量数据的最大问题之一就是磁盘读写,NoSQL 通过将数据分布至一系列节点来缓解这个问题。当发出查询请求时,这些节点能够并行查询自身节点,而不是仅仅依靠一块磁盘,一个磁盘阵列或一条网络连接,数据查询能够在节省了读写开支之后变得更加迅速。
最终,我们来讨论 Hadoop,集合了上述所有技术力量于一身、用于检测和分析数据的框架。有些人可能认为 Hadoop 是一项 NoSQL 技术,实际上 Hadoop 是一个分布组件的 java 框架,用于分解“吃大象”(此处是双关语,Hadoop 是以创立者的儿子给自己的大象玩具起的名字)的工作——每次一口。
Hadoop 自身实际上与待处理数据是彼此独立的。它将大型查询任务分解为小的并行查询任务,然后收集结果,并整合出答案返回给用户。Hadoop 相对于 NoSQL 来说是一种并行查询框架,通过云计算驱动节点,运行在低成本存储及虚拟化技术之上。
Kickin 的知识回顾
EII 第一次作为最佳实践出现于 2003-2004 年,那是的关键要素就是无需再移动数据了。当时大部分的数据中心仍然运行于低速网络中,有限的空间用于复制数据。之后,EII 成为了当时可用技术和问题域中最优秀的解决方案。EII 的某些方面的优秀即使在海量数据中也是很显著的。
EII 的优点之一就是将处理过程转移到数据所在地。海量数据方案的关键架构要素之一就是将处理过程转移到数据所在地,而不是转移数据。EII 中的一条重要原则就是使用数据归属地的查询功能。这项实践就是构建靠近数据源网络的 Web Service,能够建立起通用查询接口,但只针对本地数据库进行查询。我们通过开放的基于 Web 的接口解决了数据的专有格式的问题,从而使得多个数据子集能够迅速的整合并以统一模式展示。
有了低成本存储和 10G 网络之后,我们就不必那么担心数据冗余与数据迁移,但还是有其他问题存在,数据仓库无法确保数据的原始性便是其中之一。在 EII 中,我们将从原始数据源获取数据视为“黄金准则”,这样就能够保证信息未被修改过,且是准确的。
Big Data 要求数据必须转移到新的物理位置,这样可信任度又成为了问题。EII 的那些获取基线数据的最佳实践仍然是相关且重要的。实际上,那些为 EII 设计开发的 Web Services 接口最终在 Big Data 的启用中扮演主要角色。
当然,讨论数据管理不能不涉及到安全问题。EII 在安全领域中还是超过了 Big Data。技术上来说,Big Data 在数据集成方面更加高效与敏捷,但是大部分缺少了固有的安全性,因为在设计上会加大处理的难度。所以,可能要由源系统来担任起数据访问安全方面的责任。因为 EII 直接在源系统中查询数据,所以必须要求有适当的授权,否则查询就将失败。
上述关于安全讨论描述的是内在的安全控制情况。将访问权限控制列表集成到数据库中非常合理,这将确保安全能够作为查询的一部分进行维护。然后,一旦能够直接查询 NoSQL 数据源,就意味着能够自由的访问你所有的数据。
总结
引用老的 Virginia Slims 的广告中的台词:“我们已经历很长的路途了,宝贝儿!”文中讨论到的技术的发展已经对 21 世纪第二个 10 年中的数据解决方案产生了巨大的影响。商业化与小型化扫除了一些思想体系上的障碍,使得架构师能够专注于问题本身,而不是寻找一些实用及可实现的问题解决方案。构建 10000 个节点的处理引擎,能够在数秒内处理 Pb 级别的数据量,而每小时只消耗几便士,这就是数据处理的美好前景。
有了这些新工具,我们就要重新考虑如何推进数据管理。为何数据无法很好地维护整合,并且需要花费数万美元。数据管理几乎是每个大中型企业的心病。数据管理曾经在存储、管理、访问、整合以及查询上花费巨大,但是今后不再会是这样了。
关于作者
JP Morgenthal 是在 IT 策略与云计算方面的世界级专家之一。他在企业复杂问题域的解决方案实施上拥有 25 年的经验。JP Morgenthal 以其在技术方面的深度和广度,有利的支持他在企业问题域中的敏感度。他在集成、软件开发和云计算是一位让人尊敬的作者,同时也是 InfoQ 在引领云计算方面的编辑,并且参与了“云计算:评估风险”项目。
关于译者
陈晨, 长期从事互联网信息收集分析领域架构研究。对海量数据处理,NoSQL 等处理运用有丰富经验,关注过程方法及其自动化。他的新浪微博:一酌散千忧
原文链接: Evolution in Data Integration From EII to Big Data
感谢侯伯薇对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论