用戶使用SQL Azure數據庫存儲數據時,通常需要SQL Azure數據庫支持報表功能。在SQL Azure中,SQL Azure報表服務器租用實現了這一個功能,它是基于SQL Server報表服務(SSRS,SQL Server Reporting Services)實現的。
現在SQL Azure Reporting主要有兩個使用場景。第一,SQL Azure報表創建的報表可以發布到某一個門戶上,云端用戶可以訪問這個門戶的報表,也可以通過URL地址直接訪問報表;第二,ISV (Independent Software Vendor,獨立的軟件開發商)能夠嵌入發布到SQL Azure報表門戶的報表,這些門戶來自于不同的應用,包括windows Azure應用。ISV可以使用Visual Studio標準的ReportViewer控制,這與將本地報表嵌入到應用中沒有任何差別。
SQL Azure報表服務與存儲在SQL Azure數據庫中的數據相互作用。SQL Azure使用的報表可以通過Business Intelligence Developer Studio創建。SQL Azure Reporting與SSRS的報表格式是相同的,都使用微軟定義的RDL(Report definition Language)。
需要注意的是,SQL Azure Reporting并沒有實現本地情況下SSRS提供的所有的功能。比如,當前的SQL Azure Reporting并不支持調度和訂閱功能,這使得報表每隔一定的時間將會運行和分發一次。
SQL Azure數據同步
Internet上的應用可以訪問SQL Azure數據庫中存儲的數據。為了提高存儲數訪問性能,同時確保網絡發生故障時應用仍然能夠訪問數據庫,需要本地擁有SQL的數據庫副本,微軟使用了SQLAzure數據同步技術。
該技術主要包括一下兩個方面。
(1)SQL Azure數據庫與SQL Server數據庫之間的數據同步。用戶選擇這類同步的原因有很多,除了前面提到的網絡故障等因素外,數據調度也需要數據副本在某一區域范圍內進行,同時需要防止某些操作失誤所帶來的數據丟失。這時用戶可以通過SQL Azure數據庫與SQL Server數據庫的信息同步在本地數據庫保存副本。
(2)SQL Azure數據庫之間的同步。某些ISVs (獨立的軟件開發商)或全球化的企業需要創建一個應用,為了滿足高性能的需求,應用的創建者也許會選擇在三個不同的Windows Azure數據中心(比如,北美數據中心、歐洲數據中心、亞洲數據中心)運行這個應用。如果這個應用將數據存放在SQL Azure數據中,需要使用SQL Azure數據同步服務保持三個數據中心之間的信息同步。
SQL Azure數據同步服務使用“輪輻式(hub-and-spoke)”模型,所有的變化將會首先被復制到SQL Azure數據庫“hub”上,然后再傳送到其他“spoke”上。這些“spoke”成員可以是一個SQL Azure數據庫,也可以是本地SQL Server數據庫。上述的同步過程可以同步整個數據庫,也可以只同步有更新的數據庫表格。