为了履行自己将提供能大部分数据库的简易访问的诺言,
雅虎发布了YQL,也就是雅虎查询语言。
它是一个具有基于REST接口,且可以让开发者从各类资源中查询数据的在线查询处理器,而不仅限于应用于
雅虎自己的产品。在最新的Yahoo! Query Language Thoughts,博文中,
谷歌的应用程序引擎团队的一员Ryan Barrett,在检测YQL的
应用程序接口,并将其与其他基于Web的数据应用程序接口包含谷歌自己的数据存储应用引擎后,Barrett指出:YQL类似于包括XPath/XQuery, 微软的LINQ, 谷歌的GQL, Facebook的FQL, 以及Amazon SimpleDB的查询接口和
CouchDB等大多数的现代查询语言。
它的主要任务是为
雅虎的大量网络工具,例如Flickr, Yahoo! Maps和Upcoming提供统一的
接口。这个查询引擎是由Yahoo开发,用户可以通过发送
HTTP请求到REST终端来进行查询。
目前,YQL并不是
云数据库的一部分,它是一个严格的查询处理托管服务。另外,这也意味着YQL不受单独的数据资源限制,甚至不限制应用于
雅虎的自身产品。YQL可以操作任何第三方
数据源,只要对方是一种常见的格式,如RSS, ATOM, JSON, XML,等等。
Barrett 还指出,YQL的概念类似于
关系数据库模型:在较高的层次中,YQL使用我们所熟知的
关系数据库模型的表和列。然而,为了绘制不同数据等级,YQL需要了解每一列所代表的是何种等级水平。所有的操作都是在内存中进行,处理最大时限为30秒。这就限制了少量后加工和装点工作的操作,也排除了应用于中等数据集中的很多有趣的应用。
Yahoo的YQL被许多人认为是nextbigthing,你可以用它做成千上万种不同的事情。其背后的机理是每个人都可以将他的数据以一种特殊的方式供其他人使用,谁想要读取这些数据,只需要使用一种SQL语法类语言即可。
也就是说YQL将Web变为一种庞大复杂的数据库来等待用户的访问、查询。有人问这怎么可能呢?实际上,每个
web服务都会产生一种特殊格式的
数据源(datatable),这样其他用户就可以提取、插入或者更新数据。目前我们已经可以在YQL里看到几百种可用的群集数据表(communitytables)。
举个例子形象一点来说,如果你用YQL创建一个预定酒店的网站,这个网站就会产生
数据源来表示酒店是否可预定、空余房间、价格等信息,然后你只需要输入这样一个YQL语句就可以看到SanFransisco的空余房间:SELECT*FROMhotels.rooms.sfWHEREroom=open