“企业信息集成(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来说是一个并行查询框架,通过云计算驱动节点,运行在低成本存储及虚拟化技术之上。
Kicking的知识回顾
当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在引领云计算方面的编辑,并且参与了“云计算:评估风险”项目。
原文链接:http://www.infoq.com/articles/DataIntegrationFromEIItoBigData