Guy Harrison是Quest软件研发经理和数据库大师,最近他谈及了在Quest云计算新产品Toad和下一代称之为“NoSQL”的非关系型数据库中所做的工作,并就非关系型数据库的相关领域及云计算的推动作用回答了记者的提问。以下为访谈记录:
Quest Software's Chief Officer, Guy Harrison
问:什么推动了新型非关系型数据库的出现?是否是如今数量惊人的数据?
Guy Harrison:那是整个争论的焦点所在。将数据保存在硬件中,然后使用一个不怎么合适且能力有限的引擎;或者支付一定的费用将数据保存在某些设施中,并在真正使用之前锁存起来。如果你去看看Hadoop目前已初具规模的数据仓库市场,它几乎是一个不断发生冲突、碰撞的过程。
Oracle正致力于海量数据、大规模并行处理、优化I/O、CPU和I/O之间的超高速通道等工作,并试图通过相同的处理途径和安全的文件格式在大量数据中进行相关操作,这就意味着你无需在数据库中处理数据,你能够将数据库指向别处并清楚其结构,但是它仍然保存在它初次出现的地方。
那距离目前Hadoop的成就并不遥远。虽然两种技术之间还存在着一定的差距,但是两者趋同性趋势已相当明显,他们将会变得几乎完全一致。
问:那么目前NoSQL数据库又存在着哪些缺点呢?它能否提供一个全面的解决方案?
Guy Harrison:它在很多方面都有具体的任务,同时还支持非常大型的应用实现。但是其中充斥着显而易见的差距需要进一步弥补,这也反应了其成熟度水平。
我认为任何在这个行业中工作过一段时间的人,特别是如果他从企业的角度出发,都会理解数据不在数据库中只是出于应用的原因。并不仅仅限于插入、更新和删除等操作,还要进行挖掘和分析,以便用于决策和趋势分析。拥有更详尽的数据,在决策时就能拥有更精细准确的数据支持。但大多数NoSQL数据库并没有为之提供解决方案。
问:能否提供区别关系型数据库和非关系型数据库的实际示例?
Guy Harrison:你可以想象下诸如HBase没有真正一致范围的情况,如果你需要在HBase表格中完成类似SELECT COUNT * 的功能,那么你基本上就需要开始读取所有的标签来计数行数,因为没有现成的API可以告诉你表格中有多少行,而唯一可行的方法就是把它们都读取出来。
如果与此同时,某人又在执行插入操作,那么就没有办法真正确保你查询到所有数据,因此你就有可能遭遇到COUNT * 操作永远无法执行完毕的窘境。所以,我们就必须拿出些能够解决问题的举措出来,要么设置超时预设值并发出诸如“无法执行该任务,查询时间过长”的提示,要么就应当试图估算其大小。那是一个在任何关系型数据库中都能够顺利执行的简单关系型查询例子,同时这也是在非关系型数据库中一般不予以支持的应用。
问:那么它们的用途何在?
Guy Harrison:让我们看看目前的景象,在一个直接使用NoSQL的组织中Hadoop以及Hive如何运用,一个在Hadoop基础上使用类SQL界面的产品,你就能了解这两种NoSQL的使用情况。一种用于具有无限可扩展性和相对简单数据模型的高速OLTP,而另一种由Hadoop提供的是如同正在使用SQL层数据仓库的使用体验。
问:企业为什么对NoSQL如此地感兴趣?
Guy Harrison:我们已经看到了最大型企业数据库的容量已呈平稳的指数增长的趋势,而数据仓库技术大体上直到最近才能够跟上这种增长趋势的脚步。而目前该指数型增长已经刚刚超出了最大型数据库的能力范围。Oracle和Teradata为此苦苦支撑,但是Hadoop的出现为此提供了一个更为经济的方案。
目前,也许我们的许多客户并不愿意采用NoSQL,但是有许多客户将在未来一年左右的时间内选择采用Hadoop。与Oracle公司的Exadata相比,处理创建海量数据仓库的大量记录数据的经济性将更具成本效益。
问:似乎云计算和这些非关系型数据处理模型有着齐头并进的发展趋势,为什么会这样?
Guy Harrison:首先,所有的云计算平台必须提供一些弹性存储模型,否则其经济模式将受到损害。使用的应用程序越来越多,我希望能够根据我实际使用情况来计算我在数据库方面的费用,然后我希望根据实际使用情况来计算我消耗的资源,事实上这是很难使用关系型数据库来实现的。从理论上来说,Oracle公司的RAC可以做到这一点,但是你无法自动分享MySQL。分享它的人必须要投入庞大的手动工作量,并规划各种东西。现实中这是难以实现的。
因此Amazon的SimpleDB和微软公司的Azure Table都是一种非关系型数据库。Google公司也拥有类似的产品。
问:那是供应商端的状况,但是企业客户是否正在使用这些技术和产品呢?
Guy Harrison:Netflix是SimpleDB的大客户,此外,我们还未能看到许多令人鼓舞的案例。如果身处云中,那么你很可能更想尝试NoSQL解决方案,并希望以这种方法调整规模和支付费用,而传统的关系型数据库则会显得无能为力。
这又推动了NoSQL数据库托管机制。Rackspace公司正在研究提供Cassandra,SimpleDB也同样在努力中。业界正在努力推动 Hadoop以及其他类型适用于云计算的大型数据分析应用。Amazon提供了一个相当成熟的Hadoop实现,你可以按运行小时付费,可在打开成千上万节点完成短期处理之后再次全部关闭。而如果你在自有集群中进行这样的操作,效率是非常低的,但是如果你希望以极具成本效益的方法来处理大量数据时,这又不失为一个好的解决方案。目前,已有多个成功的公司实施案例。
问:那么对于期待廉价数据处理的企业来说,这应当是一个最佳的数据处理方案?
Guy Harrison:当然,问题在于数据如何接触到云计算。如果你有TB或PB级别的数据,那么数据进入云中的成本和时间都是非常惊人的。Amazon宣称的“你给我们一个硬盘驱动器,我们来安装”的解决方案则显得相当笨拙。
此外,对于某些企业来说,数据外迁还可能存在技术问题,事实上将数据置于外部的数据中心往往会引发所有权等各种各样的问题,这样的做法可能是违法的。在许多情况下,公司必须按照法律或公司政策而放弃这样的方案。从我个人来看,我信任Amazon,但是我并不确定我是否愿意拿我的业务去打赌,他们是否能够保护数据,不会丢失等等。
问:展望未来,NoSQL是否会取代关系型数据库?
Guy Harrison:我当然不认为关系型数据库会退出市场,它仍然将占据主导地位。但是关系型数据库处理所有的数据面临的限制是它的薄弱之处。但是,我们寄希望于新型数据库,除少数几个非常特殊地点外我们几乎没有现实世界的范例。
你已经拥有了用于Twitter和Facebook的Cassandra,但是它们是世界上最大网站之一,并不能够代表企业客户,或代表一般网站。关系型数据库提供了这么多的功能,有这么多知道如何使用的专业人士,它还是如此的可靠和安全,因此它可能将是95%数据处理需求的最佳选择。尽管如此,专业的 NoSQL数据库还是有可能成为最合适的选择。
作者简介:Guy Harrison是Quest软件公司的研发董事,他在数据库设计、开发、管理和优化方面拥有者20年的工作经验。Guy是一位Oracle ACE,是《Oracle性能生存指南》(Prentice Hall出版社,2009)和《MySQL存储过程编程》(O’Reilly和Steven Feuerstein)以及其他数据库技术书籍、文章、演讲的作者。Guy是Quest公司Spotlight系列产品的架构师,并领导开发了Quest 公司的云数据库产品Toad。
【编辑推荐】