2009-12-22 33 views
19

Tôi muốn biết một số phương pháp khác nhau để truy xuất dữ liệu từ Dịch vụ phân tích, sử dụng trong các đối tượng trong mã hoặc cho báo cáo người dùng cuối.Các cách tiếp cận khác nhau để truy cập SSAS

Tôi đã sử dụng hai phương pháp khác nhau trong quá khứ, một đã sử dụng ADOMD để lấy kết quả và đặt chúng vào tập dữ liệu, phương pháp kia đang sử dụng SQL OPENQUERY cho máy chủ SSAS được liên kết để nhận kết quả dưới dạng kết quả thủ tục lưu trữ SQL bộ. Cả hai đều có lợi thế và bất lợi. Trong những năm qua tôi đã thấy nhiều câu hỏi khác nhau dọc theo dòng này, vì vậy hãy tha thứ cho tôi vì bất kỳ sự trùng lặp nào, nhưng những phương pháp nào khác có để nhận dữ liệu SSAS vào một định dạng mà mã của người khác có thể sử dụng nó?

Tôi đã xem xét các tập hợp kết quả XML từ SSAS qua HTTP, sau đó LINQ to XML - Bất kỳ ai cũng có bất kỳ trải nghiệm nào với điều đó?

Lý tưởng nhất là tôi muốn tập dữ liệu với các cột được nhập hoặc đối tượng có thuộc tính, nhưng tôi quan tâm đến cách tiếp cận chung hơn so với mẫu mã. Bạn có dữ liệu từ SSAS như thế nào, ngoài SSRS/các điều khiển trang tổng quan khác?

Trả lời

8

Tôi biết MS có nghĩa vụ hỗ trợ XML/A (XML cho phân tích). Tôi sắp phát hành một thư viện ajax để thực hiện các yêu cầu XML/A từ các trang web.

Trong khi tôi hiện đang tập trung vào Mondrian của Pentaho, nó nên cũng hoạt động với MS SQL XML/A. Nếu bạn quan tâm, tôi đang thực hiện một bài thuyết trình vào ngày 13 tháng 1 (xem: http://wiki.pentaho.com/display/COM/January+13,+2010+-+Roland+Bouman+-+OLAP+and+Analysis+for+web+applications+using+XMLA) Tôi sẽ phát hành mã của tôi trước thời điểm đó (có thể là giấy phép LGPL)

Tôi rất muốn nhận phản hồi từ mọi người sử dụng các máy chủ XML/A khác, vì vậy nếu bạn quan tâm, nó sẽ là tuyệt vời để làm việc cùng nhau về điều này.

UPDATE:

dự án bây giờ đã có tại http://code.google.com/p/xmla4js/ Có tài liệu API, mẫu mã, và xây dựng kịch bản. Đó là LGPL, do đó bạn có thể sử dụng nó miễn phí trong các ứng dụng của mình, ngay cả với mục đích thương mại. Giấy phép không yêu cầu bạn phát hành bất kỳ sửa đổi vào thư viện chính nó như là LGPL (nhưng điều này không ảnh hưởng đến ứng dụng sử dụng thư viện)

UPDATE2

Dự án không nằm trên github tại https://github.com/rpbouman/xmla4js Nó hoạt động trong trình duyệt cũng như trong nodejs.

+0

Hi Roland, một cách tiếp cận thú vị và tôi sẽ xem xét. Tôi quan tâm nhiều hơn đến việc truy cập từ (và sử dụng bởi) mã trung cấp vào lúc này. Cảm ơn rất nhiều vì gợi ý của bạn. – Meff

3

XMLA là cách tiếp cận "quyền lực cao" - nhưng tôi không biết về bộ công cụ hoặc thư viện thực sự cho thấy khả năng đầy đủ của XMLA; Tôi nghĩ rằng bạn sẽ tự mình tạo dựng nó. Đối với các dự án tôi đã làm, đó chỉ là cách làm việc quá nhiều.

Thay vào đó, tôi đã sử dụng ADOMD.NET để truy xuất kết quả bằng mã; lớp CellSet nói riêng khá phong phú. Đối với phân tích người dùng cuối (lát và xúc xắc), thông thường tôi sử dụng Biểu đồ Excel Pivot (tuyệt vời!); đôi khi tôi cũng sử dụng Visio Pivot Diagrams. Đối với báo cáo cố định, Dịch vụ báo cáo có thể truy cập trực tiếp SSAS và thậm chí nó còn có trình tạo truy vấn riêng.

BTW, trong trường hợp trợ giúp, tôi có một chương trong sách về tích hợp SSAS với các trang web dưới dạng cách tải xuống SQL Server: Ultra-Fast ASP.NET. Ví dụ mã của tôi sử dụng ADOMD; Tôi cũng đi qua xây dựng một khối lập phương đơn giản, cấu hình các bản cập nhật tự động với SSIS, sử dụng bộ nhớ đệm chủ động, xây dựng các truy vấn MDX đơn giản, v.v.

4

Tôi chưa bao giờ sử dụng bản thân mình, vì chúng tôi chỉ sử dụng ADOMD và Excel để kết nối với SSAS, nhưng tại một thời điểm nào đó, chúng tôi đã xem xét sử dụng HTTP và XML. Chúng tôi đã kết thúc lên tuyến đường ADOMD vì một lịch trình dev rút ngắn, nhưng tôi đoán đó là một tùy chọn khác cho phép truy cập vào SSAS bên ngoài thế giới .Net.

Dưới đây là một liên kết mà tôi thấy hữu ích khi prototyping: Configuring HTTP Access to SQL Server 2008 Analysis Services on Microsoft Windows Server 2008

2

phương pháp khác là sử dụng các nhà cung cấp MSOLAP OLE DB. Mã của chúng tôi hiện đang sử dụng phương pháp này.

+0

Ứng dụng có hoạt động tốt hơn ADOMD không? Tôi hỏi vì có một số khó chịu với việc sử dụng ADOMD và do đó là tò mò nếu nó có giá trị xem xét một di chuyển đến nhà cung cấp thay thế. – jvilalta

+1

Tôi nghĩ việc làm việc đơn giản hơn rất nhiều. Các tập kết quả được làm phẳng thành các bảng hai chiều mà bạn truy cập thông qua một IDataReader. Nó có quirks của nó, tuy nhiên. Ví dụ, tôi đã phải poke xung quanh trong trình gỡ rối để tìm ra cách nó tạo ra các tên cột tập kết quả cho các kích thước. Ngoài ra, nó rất lỏng lẻo với các loại của nó, vì vậy bạn phải cẩn thận. Ví dụ: nếu giá trị có thể là dấu phẩy động xảy ra với một số nguyên, đôi khi loại bạn lấy lại là int. Đã phải tạo một bộ các phương thức để trích xuất đúng dữ liệu. – Jacob

+0

Tốt để biết, cảm ơn. Có vẻ như một trong hai cách có một số công việc cần làm: -S – jvilalta

2

Một cách khác (và tôi sẽ nói đơn giản nhất) để lấy dữ liệu từ khối OLAS OLAP vào .NET là sử dụng LINQ + ADO.NET Entity Framework + SSAS Entity Framework Provider.

(Tôi làm việc cho công ty đã phát triển Nhà cung cấp khung thực thể SSAS).

+0

Làm tốt lắm Sir, tôi thực sự đã chạy theo hướng này, đi cùng một con đường của TTGen để tạo ra các lớp chú thích, nhưng không thể hoàn thành việc tạo ra một nhà cung cấp IQueryable ... Làm tốt bạn <3 – Meff

Các vấn đề liên quan