微軟Azure DocumentDB文件數據庫概覽
2014年8月,微軟發布了Azure DocumentDB,顯而易見,這是微軟在Azure云平臺上推出的NoSQL文件數據庫服務。
本文只是對Azure DocumentDB的一個概覽,但是我希望能起到拋磚引玉的作用激發大家對于Azure DocumentDB的興趣。在這里bit.ly/1GMnBd9大家可以讀到SGS國際公司使用Azure DocumentDB的體驗。SGS國際的一個開發人員后來在微博 上@我說他們的客戶相當滿意。
關于文件數據庫
顧名思義文件數據庫以文件的形式儲存數據,通常使用的是JSON格式的文件(MongoDB使用的是BSON格式,其實就是JSON格式的二進制形式)。文件數據庫的優點是數據量大的時候性能相當好,因為它省去了關系型數據庫中的連接查詢操作。文件數據庫的另一個特性是沒有schema的概念,數據庫中的每一個文件都可以定義自己的schema。下面的JSON文件就是一個文件的例子
{
"菜名": "瘋狂巧克力",
"摘自": "復活節餐廳菜譜",
"點評":"最起碼夠20個人吃",
"原材料":[
{
"名字":"黑巧克力",
"數量":"1斤3兩6錢",
"注意事項":"要用巧克力棒,最好用金帝巧克力"
},
{
"名字":"鮮奶油",
"數量":"2杯"
},
{
"名字":"黃油",
"數量":"2湯匙"
}
],
"做法": "將奶油和黃油倒在巧克力上"
}
請注意文件的內容無需解釋,而且其中包含了與菜單有聯系的相關信息(原材料)。文件數據庫還有一個特性就是一般都能通過HTTP來調用,稍后我們會進一步介紹。
Azure DocumentDB的結構
之前我們舉了一個DocumentDB中文件的例子,但Azure DocumentDB不是僅僅由一堆文件組成的。文件是一種資源,而且可以歸類成集合。集合也是資源,用戶可以通過HTTP來實現對集合的創建,更新,刪除和選取。事實上DocumentDB就是由不同種類的資源和集合所組成的。你可以創建多個賬戶而每一個DocumentDB賬戶可以創建多個數據庫。
除了這些資源,DocumentDB也有與關系型數據庫中類似的存儲過程(SP),自定義函數(UDF),索引(index)以及觸發器(trigger)。
另外,DocumentDB中還有一種資源-附件。與JSON文件關聯的任何二進制文件都是附件。附件存儲在Azure塊存儲Blob Storage中,其附加信息則存儲在DocumentDB中,使用戶可以方便地取得附件的屬性信息。
除此之外,DocumentDB有自帶的安全特性,當然你也可以像文件一樣操作數據庫用戶和權限。
操作DocumentDB
有下面這些方法來操作DocumentDB中的資源:SQL,REST API以及各種API。這其中也包括.NET API,使用.NET API的一點好處就是你可以使用LINQ來查詢數據庫。想了解更多關于DocumentDB數據庫的查詢,請點這里。
朱莉?勒曼 發表于MSDN雜志2015年6月刊
原文鏈接https://msdn.microsoft.com/en-us/magazine/mt147238.aspx