簡介
它是一個具有基於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不受單獨的數據資源限制,甚至不限制套用於雅虎的自身產品。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