[Windows Azure] SQL Azure Reporting 初體驗

SQL Azure Reporting 和 SQL Azure Data Sync 服務,簡直是難兄難弟,它們兩個都有一個共同的問題:CTP 很久,而且管理介面一開始並不好用也不怎麼開放,所以除了一些先導計畫的講師或專家會先進去用以外,大多數人看到那種介面就不會想用了 ... :) 還好,這次 PASS 大會也同時宣布了 SQL Azure Reporting 和 SQL Azure Data Sync 一樣也進入了 Final CTP 階段,不久後應該就會正式開始提供服務。

SQL Azure Reporting 和 SQL Azure Data Sync 服務,簡直是難兄難弟,它們兩個都有一個共同的問題:CTP 很久,而且管理介面一開始並不好用也不怎麼開放,所以除了一些先導計畫的講師或專家會先進去用以外,大多數人看到那種介面就不會想用了 ... :) 還好,這次 PASS 大會也同時宣布了 SQL Azure Reporting 和 SQL Azure Data Sync 一樣也進入了 Final CTP 階段,不久後應該就會正式開始提供服務。

SQL Azure Reporting 的核心是 SQL Server 2008 R2 的 Reporting Service,所以多數在本地 SQL Server Reporting Service 的功能都可用在 SQL Azure Reporting,但是就像 SQL Azure Database 一樣,無法完整將 SQL Server Reporting 的功能完全搬上 SQL Azure Reporting (架構設計使然),所以像是 Report Manager, 報表訂閱與排程, 以及組態設定的部份都是不支援的,而有些功能則是因為架構的修改無法支援的,例如:

  • 認證功能,只支援 SQL 驗證,因為 SQL Azure 只支援 SQL 驗證。
  • 資料來源,只支援 SQL Azure Database,如果想要將本地的資料由 SQL Azure Reporting 呈現,可能要繞路。
  • 可程式化功能,不支援 Reporting Service WMI Provider, SOAP API 2006 終端點以及部份 SOAP APIs。
  • 報表中如果有嵌入影像,則只支援資料庫內的影像 (最大 1MB),不支援外部連結的影像。
  • 報表產生器 Report Builder 支援 1.0 和 2.0,但不直接支援 3.0,可繞路部署 3.0 的報表。
  • SQL Azure Reporting 不支援報表中內嵌自訂組件,自訂擴充功能,自訂報表項目,RDCE 檔以及內嵌在報表中的程式碼。

 

相關的內容可參考:http://msdn.microsoft.com/en-us/library/windowsazure/gg430132.aspx

雖然功能還是不如本地版的 SQL Server Reporting Service,但基本型的報表資料還是可以負擔的,所以我們就來簡單的玩一下吧。

首先,進入 Windows Azure Management Portal,並選擇報表 (Reporting),會進入 SQL Azure Reporting 的管理功能區:

image

如果沒有先建立 Report Server 的話,可按工具列上 Server 群組的 Create 按鈕,會帶入 Create Server 精靈,依精靈指示接受授權合約,選擇訂閱帳戶與地區 (目前可支援到五個地區),設定管理員帳戶與密碼後即可完成,SQL Azure Reporting 會設定一個 Report Server 的 URL 給使用者。

image

接著,我們打開 Business Intelligence Development Studio (BIDS),並新增一個報表專案。

image

在共用資料來源資料夾上按右鍵,選擇 "加入新的資料來源":

image

此時會出現共用資料來源屬性設定的對話盒,請設定名稱,並選擇類型為 Microsoft SQL Azure:

image

然後按下 "編輯",設定 SQL Azure 資料庫的連線資訊,然後按確定,此時連線字串會出現完整的資訊,當然你也可以不用編輯的功能,直接貼上複製自 SQL Azure 管理介面的連線字串亦可,不過記得要把 User ID 和 Password 拿掉:

image

接著選擇 "認證",選擇中間的 "使用此使用者名稱和密碼",並輸入連線至 SQL Azure Database 所用的帳戶和密碼,輸入規則要符合 SQL Azure 的要求:

image

最後按確定,資料來源就完成了。接下來要建立資料集 (Dataset),這個部份筆者就略過了,因為和本地的 SQL Server Reporting Service 的報表設計是相同的作法,只是 Data Source 是 SQL Azure 而已。筆者在這裡是使用單一的 SQL 指令 SELECT * FROM Categories。

image

接著,建立新報表,但細部的操作筆者也不贅述了,可自行參照 SQL Server Reporting Service 的書或是線上文件即可,這是筆者最後完成的報表:

image

我們可以直接用預覽功能來測試資料來源是否可以正常存取:

image

完成報表設計後,我們就可以開始部署報表了,部署上也不會很複雜,但是有一個地方要修改,就是報表專案的 TargetServerURL,這個值可以由 SQL Azure Reporting Server 的管理介面上獲得,我們可以在專案屬性中設定,TargetServerVersion 則是設定 SQL Server 2008 R2 即可:

image

設定完後,就可以進行專案的部署了。

image

Visual Studio 會自動將報表部署到 SQL Azure Reporting Server,如果需要認證的話,會提示要求使用者輸入,而這通常是在第一次向 SQL Azure Reporting 部署報表時。

image

部署完成後,我們就可以在管理介面看到方才部署的元件(如果沒出現,可按工具列的 Refresh):

image

我們可以按下 Web service URL 右邊的 Link,進入報表瀏覽區:

image

輸入管理員帳戶與密碼後,即可看到細部的內容,瀏覽到報表,即可看到報表的內容:

image

 

SQL Azure Reporting 和 SQL Server Reporting Service 一樣,在開發和使用者不會很困難,如果有 Reporting 的開發和管理經驗,相信上手一定會更快,不過要注意一下環境的差異,以免開發出來的報表在上面卻不能用 ... :)

Reference:

http://msdn.microsoft.com/en-us/library/windowsazure/gg430130.aspx