1.4 什么是数据虚拟化
数据虚拟化是虚拟化的一种形式。正如这一术语表明的,它封装的资源是数据。简而言之,当应用数据虚拟化时,它提供了一个中间层,这个中间层对应用隐藏了大多数关于数据是怎样存储、存在哪里这些方面的技术部分(如图1-3所示)。因为这一层,应用不需要知道所有数据在物理上的存储位置,数据库服务器的运行位置,需要的API是什么,使用哪种数据库语言,等等。对于每个使用数据虚拟化的应用来说,它感觉像是在访问一个大数据库。
如果我们使用前几节中对虚拟化的描述来描述数据虚拟化,我们认识到:数据虚拟化意味着应用程序可以使用数据而不用考虑它存储在什么地方,技术接口是什么,是如何实现的,使用的平台是什么,以及有多少是可用的。数据虚拟化方法封装数据资源使得所有的技术细节都隐藏起来,并且应用程序可以使用一个更简单的接口进行工作。
在图1-3和整本书中,我们使用数据使用者和数据存储这些术语。术语数据使用者指任何检索、输入或操作数据的应用程序。例如,数据使用者可能是在线数据输入程序、报告程序、统计模型、网络应用、批处理应用或RFID传感器。同样,术语数据存储用来指代任何数据源:SQL数据库中的表、简单的文本文件、XML文档、电子表格、Web服务、顺序文件、HTML页面,等等。在某些情况下,数据存储文件仅仅是某种被动访问的文件;而其他情况下,数据存储系统包含访问其本身的软件,例如数据库服务器和Web服务。
数据虚拟化方法存在于数据使用者和数据存储之间。数据使用者通过数据虚拟化层访问数据,数据虚拟化层隐藏数据存储。