XQuery, 連通SQL與NOSQL的橋梁

2022-02-21 16:12:14 字數 3983 閱讀 3218

在企業應用軟體設計中,原來往往只需要與乙個sql資料打交道,現在卻往往要連線多個資料來源,這些資料來源可能是sql資料庫、nosql資料、xml檔案、**資料等。這麼多複雜的資料,有沒有辦法讓它們構成乙個資料中心,以相對統一的方式進行管理和資料處理呢?xquery是合適的前端。

具體做法:

1、在企業伺服器上設定資料庫連線池,並指定連線名稱。

2、選擇合適的xquery引擎,並繫結企業伺服器。

3、擴充套件xquery的函式用於運算元據庫,比如連線關聯式資料庫,擴充套件以下函式,原型如下:

declare function sql:select($a as xs:string, $b as xs:string) as node() external;

declare function sql:update($a as xs:string, $b as xs:string) as xs:boolean external;

4、使用xquery查詢各單元的資料,合併處理後返回結果。

5、使用xquery維護各資料單元。

這樣做有以下的優缺點:

優點:

1、與sql一樣,對外提供統一查詢和維護方式。

2、可以以一種統一的方式構建資料中心管理工具。

3、按資料特性,選擇合適高效的儲存單元。

以後的模式是否應該這樣: 

一些廠商提供各種具有一定特性的(比如sql、cache、xml、json、 file)的高效能資料單元。

一些廠商提供高效能的資料中心管理工具,主要的查詢和維護語言是xquery,也可延伸sql。

資料庫廠商不需要面面俱到,只需要提供的儲存單元足夠高效就可以。

4、提高sql資料庫的分布性

5、提高內容的分布性。

6、更有效規劃內容的儲存方式。

缺點:

1、xquery的效能還需要提高。

2、增加了資料儲存規劃複雜性。

下面是具體使用的例子:

1、查詢某類別下產品貨號,類別以xml的方式儲存在dbxml庫,貨號放在sql server中。

declare function sql:select($a as xs:string, $b as xs:string) as xs:string external;

declare function sql:update($a as xs:string, $b as xs:string) as xs:boolean external;

let $stxt := xqilla:parse-xml($str)

let $id := $stxt/search/@id

let $t := doc("dbxml:/product/productcategory.dbxml/data")//category[@id=$id]

let $k := data($t/@id|$t//category/@id)

let $s := concat("'",string-join($k,"','"),"'")

let $sql :=

select  rtrim(itemno) as code,name,spec  from itemdetail  where categoryid in ()

order by itemno

for xml path ('product'),root ('

products

')let $link := "link_erp1"

return  sql:select($link,$sql/text())

2、使用xquery查詢企業資源。

初學 sql2005中的xquery

今天小試了一下sql2005中操作xml的語句 如表divname中有列 id int型 stylecontent xml弄 content內容格式如下 rows p head p div id title class title p span class lower span p div p ul...

連通Hive與HBase,用SQL操作HBase

hive與hbase同在hadoop生態體系內。hive可以看作hadoop的sql程式設計介面 hbase則是真正意義上的儲存海量資料的分布列式資料庫。生產環境中,hbase用作線上實時資料庫,hive用在離線資料處理 資料倉儲領域。hbase中查詢資料,不能使用大眾熟知的sql,也不支援複雜的查...

LCT 與連通問題

所有問題只有加邊,沒有刪邊。並查集就可以了。考慮連邊時維護割邊。如果把割邊的值設為 1 非割邊的值設為 0 那麼只需要修改和維護鏈的和即可。因為根會變,所以邊的資訊需要新建點來儲存。例題 p2542 ahoi2005 航線規劃 圓方樹有乙個很好的性質 兩點之間的割點為圓方樹上兩點路徑的圓點 含端點 ...