2009-12-22 20 views
19

Estoy interesado en conocer algunos enfoques diferentes para recuperar datos de Analysis Services, utilizarlos en los objetos en el código o para informar al usuario final.Diferentes enfoques para acceder a SSAS

He utilizado dos enfoques diferentes en el pasado, uno estaba usando ADOMD para extraer resultados y ponerlos en un conjunto de datos, el otro estaba usando OPENQUERY de SQL a un servidor SSAS vinculado para obtener resultados como resultado de un procedimiento almacenado SQL conjunto. Ambos tenían ventajas y desventajas.

A lo largo de los años he visto varias preguntas en esta línea, así que perdóneme por cualquier duplicación, pero ¿qué otros métodos hay para obtener datos de SSAS en un formato donde el código de otras personas pueda usarlo?

He considerado los conjuntos de resultados XML de SSAS a través de HTTP, luego de Linq a XML: ¿Alguien tiene alguna experiencia con eso?

Lo ideal es que quisiera un conjunto de datos con columnas mecanografiadas u objetos con propiedades, pero estoy más interesado en el enfoque general que en los ejemplos de código. ¿Cómo se obtienen los datos de SSAS, aparte de SSRS/Otros controles del panel?

Respuesta

8

Sé que se supone que MS admite XML/A (XML for Analysis). Pronto lanzaré una biblioteca ajax para hacer solicitudes XML/A desde páginas web.

Si bien actualmente estoy enfocado en Mondrian de Pentaho, es si también funciona para MS SQL XML/A. Si está interesado, estoy haciendo una presentación el 13 de enero (vea: http://wiki.pentaho.com/display/COM/January+13,+2010+-+Roland+Bouman+-+OLAP+and+Analysis+for+web+applications+using+XMLA) Voy a liberar mi código en ese momento también (probablemente bajo una licencia LGPL)

Me encantaría recibir comentarios de las personas que utilizan otros servidores XML/A, por lo que si está interesado, sería genial trabajar juntos en esto.

ACTUALIZACIÓN:

el proyecto ya está disponible en http://code.google.com/p/xmla4js/ Existe documentación de la API, ejemplos de código y scripts de creación. Es LGPL, así que puede usarlo en sus aplicaciones, incluso con fines comerciales. La licencia requiere que se suelta ninguna modificación en la propia biblioteca como LGPL (pero esto no afecta a la aplicación que utiliza la biblioteca)

Update2

El proyecto no reside en github en https://github.com/rpbouman/xmla4js funciona en el navegador, así como en nodejs.

+0

Hola Roland, un enfoque interesante y que voy a echar un vistazo. Estoy más interesado en el acceso desde (y el uso de) el código de nivel medio en este momento. Muchas gracias por tu sugerencia. – Meff

3

XMLA es el enfoque de "alta potencia", pero no conozco un conjunto de herramientas o una biblioteca que realmente exponga todas las capacidades de XMLA; Creo que lo habrías preparado tú mismo. Para los proyectos que he hecho, eso es demasiado trabajo.

En su lugar, utilicé ADOMD.NET para recuperar los resultados en el código; la clase CellSet en particular es bastante rica. Para el análisis del usuario final (corte y dado), la mayoría de las veces utilizo Excel Pivot Charts (¡que son fabulosos!); a veces también uso Visio Pivot Diagrams. Para informes fijos, Reporting Services puede acceder a SSAS directamente, e incluso tiene su propio generador de consultas.

BTW, en caso de que ayude, tengo un capítulo en mi libro sobre la integración de SSAS con sitios web como una forma de descargar SQL Server: Ultra-Fast ASP.NET. Los ejemplos de mi código usan ADOMD; También paso por la construcción de un cubo simple, configurando actualizaciones automáticas con SSIS, usando el caché proactivo, construyendo consultas MDX simples, etc.

4

Nunca lo he usado, ya que solo utilizamos ADOMD y Excel para conectarnos a SSAS, pero en algún momento consideramos el uso de HTTP y XML. Terminamos yendo por la ruta ADOMD debido a un programa de desarrollo abreviado, pero supongo que es otra opción que permite el acceso a SSAS fuera del mundo .Net.

Aquí hay un enlace que encontré útil cuando la creación de prototipos: Configuring HTTP Access to SQL Server 2008 Analysis Services on Microsoft Windows Server 2008

2

Otro enfoque es utilizar el proveedor OLE DB MSOLAP. Nuestro código actualmente está usando este método.

+0

¿Funciona mejor que ADOMD? Lo pregunto porque hay algunas molestias con el uso de ADOMD, por lo que me llamó la atención si vale la pena considerar un cambio a ese proveedor. – jvilalta

+1

Pensé que era mucho más sencillo trabajar con él. Los conjuntos de resultados se aplanan en tablas bidimensionales a las que accede a través de un IDataReader. Sin embargo, tiene sus peculiaridades. Por ejemplo, tuve que buscar en el depurador para ver cómo genera los nombres de las columnas del conjunto de resultados para las dimensiones. Además, es muy flexible con sus tipos, por lo que debe tener cuidado. Por ejemplo, si un valor que podría ser punto flotante pasa a ser un número entero, a veces el tipo que recibe es un int. Tuvo que crear un conjunto de métodos para extraer correctamente los datos. – Jacob

+0

Es bueno saberlo, gracias. Parece que de todos modos hay algo de trabajo por hacer: -S – jvilalta

2

Otra forma (y yo diría la más simple) de obtener datos de cubos OLAP OLAP en .NET es mediante LINQ + ADO.NET Entity Framework + SSAS Entity Framework Provider.

(trabajo para la empresa que desarrolló el proveedor de SSAS Entity Framework).

+0

Bien hecho Señor, de hecho me di cuenta de esto, seguí el mismo camino de TTGen para crear las clases comentadas, pero no pude entender cómo crear un proveedor de IQueryable ... Bien hecho, <3 – Meff

Cuestiones relacionadas