初探 Windows Azure SQL Reporting

本文將介紹如何使用 BIDS 來部署 Microsoft 報表到 SQL Reporting。

【情境描述】

在過去您使用 BIDS 開發報表並將之部署到企業內部的 SQL Server Reporting Services(以下簡稱 SSRS),到了雲端運算的時代,假設您使用的是 Microsoft 公有雲的解決方案(Windows Azure)那一定不能錯過 Windows Azure SQL Reporting(以下簡稱  SQL Reporting),您可以透過下列三種方式來使用 SQL Reporting:

  1. 在 Windows Forms 或 Web Forms 使用 Reporting Viewer 控制項來存取遠端的 SQL Reporting 報表。
  2. 利用 BIDS 設計報表,然後將之部署到 SQL Reporting,或是在 SQL Reporting 的報表伺服器上設計、發行和檢視報表。
  3. 您也可以 SOAP API 來呼叫 SQL Reporting 報表伺服器的 Web Services。

接下來筆者將介紹如何啟用 SQL Reporting 服務,並在 BIDS 中將設計好的報表部署至雲端的 SQL Reporting。

【前置作業】

首先必須啟用 SQL Reporting 服務,若您已經切換至 Preview 版的 Windows Azure 管理入口網站,可點選 Preview 按鈕後選擇【Take me to the previous portal】來切換至舊的入口網站。

 

image

image

 

於下圖畫面中點選【use the old portal】。

 

image

 

順利切換回舊的管理入口網站後,點選左下方功能選單的【報告(Reporting)】來進入 SQL Reporting 入口網站。

 

image

image

 

若您尚未訂閱 Windows Azure,必須點選【建立新的 Windows Azure 訂閱(Create a New Windows Azure Subscription)】來訂閱 Windows Azure 才可以建立 SQL Reporting Server。特別一提的是,每一個訂閱可在每個資料區域(Region)中建立一個 SQL Reporting Server,換言之,您可以在 Windows Azure 所提供的資料區域建立多台 SQL Reporting 伺服器,但同一個資料區域同一個訂閱只能建立一台 SQL Reporting 伺服器。若您已經訂閱 Windows Azure ,可點選【建立新的 SQL Reporting 伺服器(Create a New SQL Reporting Server)】,或是點選訂閱和報表伺服器工作列上的【建立(Create)】來建立 SQL Reporting 伺服器。

 

image

image

 

接著選擇您的 Windows Azure 訂閱以及資料頁區,然後按下一步(Next)。

 

image

image

 

輸入 SQL Reporting 伺服器管理員的使用者名稱及密碼,然後按完成(Finish)。

 

imageimage

 

建立完成之後,您可以在下圖 1 處看到您所建立的 SQL Reporting 伺服器,您可以點選下圖 2 的超連結來連接至該伺服器的 Web 服務。由於 SQL Reporting 並不支援類似 SSRS 的報表管理員功能,因此原本您使用報表管理員對報表所進行的一些管理動作,皆必須在這個入口網站來進行。

image

image

 

到此已經建立好後續要執行報表服務的 SQL Reporting 伺服器,接下來我們就可以開始利用 BIDS 來設計報表並進行部署。

【利用 BIDS 設計報表】

本文以 SQL Server 2008 R2 的 BIDS 來設計報表,請開啟 BIDS 後選擇【檔案 > 新增 > 專案】或直接點選起始頁上的建立專案按鈕。

 

image

於新增專案視窗中選擇【報表伺服器專案】,接著輸入專案名稱,本文以 NWReport 為專案名稱,接著按確定。

 

image

 

於方案總管中點選【NWReport > 報表 > 加入 > 新增項目】。

 

image

 

於加入新項目視窗中,選擇報表範本,名稱以預設的 Report1.rdl 即可,接著按加入。

 

image

 

於報表資料視窗中點選【資料集 > 加入資料集】。

 

image

 

於資料集屬性視窗中輸入資料集名稱(本文以 NWDataSet 為例),為示範方便筆者選擇【使用內嵌在我的報表中的資料集】,但根據 MSDN 文件表示,建議使用共用資料集,請按新增來建立報表的資料來源。


image

 

於資料來源屬性視窗中輸入資料來源的名稱(本文以 NWDataSource)為例,在此您可以選擇使用內嵌連接或共用資料來源參考(也就是所謂的共用資料來源),本文為先以內嵌連接來進行 DEMO,請按編輯來設定連接字串。

 

image

 

於連接屬性視窗中選擇使用 SQL Server 驗證,因為 SQL Reporting 只能使用 SQL Server 驗證,不支援 Windows 驗證,且資料來源僅支援【SQL Azure】(後來改為 SQL Database),其連線字串的格式為【Data Source= <SQL Azure Database service>; Initial Catalog= <SQL Azure Database>; Encrypt=True; 】,輸入完畢之後可以點選測試連接,以確保連接資料來源正常,接著按確定來建立資料來源。

image

 

若上一步驟所建立的資料來源沒問題的話,您將會看到如下圖 1 資料來源已經自動選擇為 NWDataSource,接著請於查詢文字方塊中輸入下列的 T-SQL 敘述,然後按確定。

   1: select c.Country,c.Region,SUM(UnitPrice * Quantity) Amount
   2: from Orders a
   3: join [Order Details] b
   4: on a.OrderID = b.OrderID
   5: join Customers c
   6: on a.CustomerID = c.CustomerID
   7: group by c.Country,c.Region

 

到此步驟為止,您將看到如下圖的畫面。

 

image

 

再來由工具箱拖拉一個資料表控制項至報表主體,接著指定欄位名稱為 NWDataSet 查詢結果所對應的 Country、Region 和 Amount 欄位,設定結果如下圖所示:

 

image

 

【部署報表】

接下來請在方案總管中於您的專案上按右鍵選擇屬性。

 

image

 

在專案屬性視窗中 TargetServerURL 必須設定為您的 SQL Reporting 伺服器,其格式為【https:// <ServerName>.reporting.windows.net/ReportServer】,另外 TargetServerVersion 必須設定為【SQL Server 2008 R2】,接著按確定。

 

image

 

最後您可以在方案總管中您的專案上按右鍵選擇部署。

 

image

 

第一次部署時,SQL Reporting 會詢問你具備報表建立權限的使用者名稱及密碼,輸入完畢之後按確定。

 

image

 

若您看到如下圖的部署成功字樣,代表已經將您的報表透過 BIDS 上傳至 SQL Reporting。

 

image

 

【執行報表】

若您要執行報表的方式可直接於瀏覽器中輸入 SQL Reporting 伺服器的 URL,其格式為【https:// <ServerName>.reporting.windows.net/ReportServer】,或是在 SQL Reporting 入口網站中點選您要執行的報表名稱。

 

image

 

此時,您可能看到如下圖的錯誤訊息,告訴您無法連接內嵌在報表中的資料來源。

 

image

 

會發生這個問題的原因在於 SQL Database 預設禁止所有外部連接,僅接受您所允許 IP 才可以存取資料庫,其中包含 Windows Azure 上的其他服務,解決這個問題的方式必須在 SQL Database 伺服器首頁勾選【允許其他 Windows Azure 服務存取這部伺服器(Allow other Windows Azure services to access this server)】,如下圖所示:

 

image

image

 

設定完畢之後再重新執行報表,您將看到如下圖的執行結果:

 

image

【使用限制】

筆者測試的結果,目前僅支援使用 BIDS 來設計和部署報表,若您使用 SSDT 來設計報表並嘗試部署時,將會看到如下圖的錯誤訊息 

image

實際執行報表也會看到這樣的錯誤訊息,目前就筆者看到的資料,都是介紹使用 BIDS 來部署報表,至於是否 SSDT 可以支援待筆者再查證之後再來跟大家分享。

image

 

【備註】

有關 SQL Reporting 的收費方式,請見 Accounts and Billing in Windows Azure SQL Reporting (Windows Azure SQL Reporting)

【參考資料】

  1. Windows Azure SQL Reporting 入口網站
  2. Windows Azure SQL Reporting
  3. Windows Azure 管理入口網站
  4. Windows Azure SQL Reporting 使用者入門