SQL Azure方便開發者踏上云數據庫之路
其實SQL Azure可以看做是SQL Server的云端版本,兩者在Logo方面都有相似之處。那么在一堆非關系型數據庫中“鶴立雞群”的SQL Azure究竟有什么獨到之處呢?
SQL Azure標志
SQL Azure是微軟提供的一個云數據庫系統。起初,該產品稱作SQL Data Services或SDS。現在它重新命名了,它的特點也得到了擴展。可以用T-SQL來管理、創建、操作云數據庫了。T-SQL是為數據庫管理的SQL Server本機語言。T-SQL起初在大多數云數據庫系統包括Azure上不被支持。然而,又要要求LINQ中的適當語言和變量。所以T-SQL就被添加進來了,這樣可以使現成的DBA技能擴展到云。另外,因為SQL Azure的數據類型和存儲過程幾乎和傳統的SQL Server匹配,所以在本地開發然后部署到我們喜歡的其他任何主平臺上的云是很容易的。
Azure是微軟提供的云計算系統。把Azure當作云操作系統,它可以為我們的應用程序提供存儲和計算平臺。除了Azure之外,有5個擴展部分提供額外的服務。這5個擴展部分分別為Live Services、Net Services、Share Point、CRM和SQL Azure。
SQL Azure是一個關系型數據庫。在云技術里關系型數據庫是不常見的。大多數都是非關系型數據庫,你只能創建很不正規化的表。另一個不常見的特點是SQL Azure支持存儲過程。使用存儲過程可以允許你將數據庫和應用程序邏輯之間完全分離。另外一個特點是SQL Azure支持大量的數據類型。包括幾乎所有典型的SQL Server 2008數據類型。
那么SQL Azure對初學者來說,它只與開發人員有關。SQL Server專家Brent Ozar表示,SQL Azure所關注的人群不是DBA而是開發人員。為什么?從性能角度出發,許多的管理任務都移交到其他人員那里去了。
Ozar解釋說:“Azure中最重要的事情,就是它抽離了許多DBA的管理工作。這部分工作還是需要有人來做,而這些人需要是能夠應對工作負載的人。”
這對于開發人員來說就是一個挑戰了,因為在使用Azure出現性能問題時,他們將不會得到DBA的幫助。Ozar指出,對于那些不喜歡同DBA打交道的開發者來說可以說是一個福音,對于出色的編碼者來說,Azure平臺再合適不過了。
Kevin Kline談到SQL Azure針對的是開發人群時,提到了微軟的廣告策略。他說:“回想一下微軟在發布Azure時是如何宣傳的吧,在PASS會議上幾乎就沒怎么提到它,而在開發者大會上它卻成了明星中的明星。Azure的目標人群無疑是開發者,而DBA作為數據的真正‘保護者’卻用不上它。”
Ozar認為DBA經常做的加密與訪問控制等操作,在開發者中并不常見,而Azure平臺正是要給開發者以這樣的能力。
維護云數據庫就像是開車
云數據庫有一個比較形象的比喻,他說這就像是我們開車時,手動擋與自動擋的區別一樣。“云數據庫能給你單獨的額外層。因此就像你從開手動擋換到開自動擋的汽車一樣,你不用再去擔心離合器和換擋操作了,雖然其中的工作大都轉向幕后,但實現的功能卻是相同的。因此我個人認為這樣的比喻是十分恰當的。”
Azure不是萬能的,但能幫你做很多事
數據庫技術人員分成兩個極端:什么功能都用上的人和只用所需功能的人。他指出,第一種人他們會嘗試使用所有SQL Server的新功能,但SQL Azure可能在一些領域會讓他們失望;而后一種人則會認為SQL Azure帶來了足夠多的驚喜。Azure絕對是能讓人滿意的產品,它能夠實現SQL Server現有九成以上的功能。
SQL Azure的架構
【編輯推薦】