Archive

Posts Tagged ‘SSAS; Visual Studio;’

Truy xuất dữ liệu từ Cube với MDX và ADOMD.NET


Trong bài viết trước, Phong có chia sẻ về việc kết nối tới SSAS của SQL Server với ADOMD.NET, với bài viết này, Phong sẽ giúp các bạn cách thức truy vấn dữ liệu từ Cubes với AdomdCommand và AdomdDataReader.

Trước tiên, các bạn cần nắm cú pháp truy vấn của MDX, về MDX thì các bạn có thể hiểu đơn giản rằng đây là một câu truy vấn Analysis Services, tương tự như SQL truy vân trên Database Engine, có thể tham khảo thêm tại:

Về căn bản thì cú pháp MDX cũng không khác nhiều so với cú pháp SQL nhiều, các bạn nên tiến hành viết câu truy vấn MDX trên SQL Server Management Studiodưới đây là một ví dụ cơ bản về câu truy vấn với MDX.

image

image

Các bạn có thể hiểu cơ bản câu truy vấn trên là lấy ra giá trị “Total Sales Amount” theo “Product by Category” và “Calendar Year” từ Cube “AdventureWorks”; về chi tiết thì sẽ có một bài chuyên sâu hơn về MDX.

Sau khi xác định được chính xác câu truy vấn dữ liệu cần có từ SSAS, các bạn tiến hành sử dụng ADOMD.NET để tạo kết nối đến với SSAS và truy vấn gọi dữ liệu.

Khi thực hiện kết nối thành công, các bạn tiến hành việc khai báo AdomdCommand để lấy dữ liệu từ câu truy vấn

image

Các bạn sử dụng chế độ Debug để kiểm tra giá trị trả về từ đoạn code trên, kết quả như sau:

image

image

Các bạn có thể kiểm chứng tính bằng cách đối chiếu giá trị trong cửa sổ Watch với giá trị mà các bạn thực hiện câu truy vấn MDX tại SSMS ở trên.

Thao tác cơ bản với ADOMD.NET trong việc kết nối và truy xuất Metadata từ SSAS


Như trong bài viết trước, Phong có chia sẻ với các bạn về một số vấn đề cần chú ý trong việc tự phát triển ứng dụng retreive dữ liệu từ SSAS, các bạn sẽ sử dụng bộ thư viện Microsoft.AnalysisServices.adomdClient.dll (có thể tải về trong bộ Feature Pack của SQL Server 2008 từ website của Microsoft http://www.microsoft.com/downloads/en/details.aspx?FamilyID=228DE03F-3B5A-428A-923F-58A033D316E1)

Mô phỏng hiện tại các bạn có Analysis Database: Adventure Works DW 2008R2 như sau:

image

Sau khi cài đặt bộ thư viện ADOMD.NET thì các bạn có thể reference thư viện vào project của mình.

image

Kết nối đến Analysis Database và lấy một số thông tin cơ bản của kết nối

image

Kết quả:

image

Lấy Metadata đặc tả Cube và Cube Perspective của Analysis Database

image

Kết quả:

image

Tuy nhiên các bạn chú ý, hiện tại nếu mặc định các bạn sử dụng .Net Framework để phát triển thì sẽ gặp lỗi như sau (tuy nhiên lỗi này không xuất hiện nếu các bạn sử dụng các phiên bản .Net Framework 2.0, 3.x)

image

Nguyên nhân của việc này là do Visual Studio 2010 mặc định sử dụng .Net 4.0 Client Profile khi compile Console Application, do đó các bạn chỉ cần thực hiện việc thay đổi Target Framework sang .Net 4.0

image

Các bạn có thể download mã nguồn tham khảo tại http://www.mediafire.com/?5xmtozf50r802