Recomendaciones para Analysis Services

Archibald Alexander Leach

Supervisor
Supervisor
Mensajes
8.108
Reacciones
5.014
Ubicación
in high definition
A ver si me podéis ayudar con esto:

¿Podéis recomendarme un buen libro para aprender SQL Server Analysis Services y temas relacionados como Reporting Services? A ser posible que explique claramente los conceptos.

Poseo una buena base en administración y desarrollo en SQL Server, pero en el entorno del Business Intelligence no he ido más allá de realizar tablas dinámicas en Excel y me pierdo al enfrentarme con Analysis Server "a pelo", pese a contar con los tutoriales de MSDN, TechNet, ...

Aparte de libros, manuales u otro tipo de documentación y de los tutoriales, ¿hay alguna otra vía para aprender y profundizar en este tema?
 
Respuesta: Recomendaciones para Analysis Services

Para base funcional, lo mejor es que te leas los libros de Ralph Kimball, también tiene libros técnicos, pero después de unos años trabajando en BI, tengo claro que lo más importante es siempre tener muy claro lo que vas a poner por debajo y de donde va a salir. Una vez diseñado el origen y las ETLs de extracción, lo demás es sencillo.

Lo más jodido quizá es aprender MDX para hacer consultas sobre SSAS, pero si lo de debajo está bien, es menos necesario porque la potencia viene cuando explotas el cubo desde Excel o desde Reporting y lo hace todo solo...
 
Respuesta: Recomendaciones para Analysis Services

Añado, para mi el más importante de Kimball es este...

The-Data-Warehouse-Lifecycle-Toolkit-9780470149775.jpg

The Data Warehouse Lifecycle Toolkit: Amazon.co.uk: Ralph Kimball, Margy Ross, Warren Thornthwaite, Joy Mundy, Bob Becker: Books

Tiene los que hace lo mismo con tecnologías MS, pero no los he leído, quizá te interese más, pero yo creo que el otro, aun siendo mucho más teórico, da mucha mejor base...

001bdb92_medium.jpeg

The Microsoft Data Warehouse Toolkit: With SQL Server 2008 R2 and the Microsoft Business Intelligence Toolset: Amazon.co.uk: Joy Mundy, Warren Thornthwaite, Ralph Kimball: Books
 
Respuesta: Recomendaciones para Analysis Services

Gracias Findor, aunque compré un libro para salir del paso, me haré con el segundo que me indicas si está más orientado a las tecnologías de MS.

Por cierto, Findor, creo que la dificultad inicial que tenía era por el hecho de partir de una base de datos OLTP no preparada para BI (sin tabla de dimensión de tiempos, sin claves de sustitución...). Por lo que he ido leyendo y si no lo he entendido mal, la idea es partir de una base de datos preparada y en el caso de no disponer de ella, adaptarla mediante los ETLs creando el DW con toda la información necesaria. De todos modos, sigo viendo un problema y es que los cubos parecen indicados para analizar datos "históricos" y no tengo muy claro si SSAS es la herramienta adecuada que se precisa en este caso, puesto que lo que se quiere es analizar datos actuales o muy recientes comparándolos con periodos anteriores (mes anterior, mismo periodo del año anterior...). Lo digo porque me da la impresión que el procesado del cubo lee todos los datos de las tablas de origen y no se actualiza de forma incremental como suponía, lo cual implicaría realizar un proceso de actualización diferido tanto de los ETLs como de los cubos para tener los datos al día. ¿Esto es así o es que me dejo alguna cosa?
 
Respuesta: Recomendaciones para Analysis Services

Gracias Findor, aunque compré un libro para salir del paso, me haré con el segundo que me indicas si está más orientado a las tecnologías de MS.

Por cierto, Findor, creo que la dificultad inicial que tenía era por el hecho de partir de una base de datos OLTP no preparada para BI (sin tabla de dimensión de tiempos, sin claves de sustitución...). Por lo que he ido leyendo y si no lo he entendido mal, la idea es partir de una base de datos preparada y en el caso de no disponer de ella, adaptarla mediante los ETLs creando el DW con toda la información necesaria. De todos modos, sigo viendo un problema y es que los cubos parecen indicados para analizar datos "históricos" y no tengo muy claro si SSAS es la herramienta adecuada que se precisa en este caso, puesto que lo que se quiere es analizar datos actuales o muy recientes comparándolos con periodos anteriores (mes anterior, mismo periodo del año anterior...). Lo digo porque me da la impresión que el procesado del cubo lee todos los datos de las tablas de origen y no se actualiza de forma incremental como suponía, lo cual implicaría realizar un proceso de actualización diferido tanto de los ETLs como de los cubos para tener los datos al día. ¿Esto es así o es que me dejo alguna cosa?

¿Y por que no consideráis alguna herramienta empaquetada?, plan Microstrategy, Oracle BI (:sudor), BO, etc... Suelen tener ciclos de implementación muy rápidos con resultados bastantes espectaculares, esto permitiría una evolución mas a largo plazo de el reporting interno....:cool
 
Respuesta: Recomendaciones para Analysis Services

Las herramientas vienen impuestas por la empresa, por supuesto, no es algo que pueda decidir yo.

De todas formas tampoco conozco las otras como para justificar un cambio de herramienta de forma clara y sin apelativos, aunque si me dices que son mucho mejores y más sencillas de implementar, les puedo echar un vistazo.
 
Respuesta: Recomendaciones para Analysis Services

Yo no dejaría de mirar QlikView. No es aplicable para todos los entornos, pero su ciclo de implantación es rapidísimo y tanto los usuarios finales como el equipo de sistemas suelen acabar encantados, algo que suele ser difícil de encontrar como atributos de un producto.

http://www.qlikview.com/

:ok :ok :ok
 
Respuesta: Recomendaciones para Analysis Services

La gracia de las ETLs y de montar un modelo en estrella es que la velocidad de proceso se incrementa y tienes control sobre lo que entra y deja de entrar en el cubo y lo más importante, como lo hace. Tu rendimiento siempre es el máximo y el que sufre el tiempo de acceso al origen es la ETL. Si se monta el BI encima del modelo relacional implica montar tablas de hechos y dimensiones a partir de vistas en el propio cubo e implica procesar cada vez que se quieran actualizar y leer los datos siempre de origen, hay opciones de procesamiento incremental, pero SSAS siempre debe saber cuales son los registros incrementales. Las soluciones que sacan esto pueden ir bien si los datos de origen son pocos, trabajar con 60 millones de registros como hacemos aquí, no es viable.

Al final la latencia de cargas incrementales de datos depende de ti. En el cliente donde estoy hay un cubo de información contable extraida de un ERP que se actualiza cada 15 minutos, con lo que virtualmente la información es casi equivalente a estar online.

Tu caso habría que mirarlo. No suelo ser partidario de las soluciones "pre-hechas" porque suelen tener ciertos hándicaps cuando luego el cliente te diga "quiero esto" y el producto no pueda, pero claro, en muchos casos sí que ayuda como aproximación inicial.
 
Respuesta: Recomendaciones para Analysis Services

Yo no dejaría de mirar QlikView. No es aplicable para todos los entornos, pero su ciclo de implantación es rapidísimo y tanto los usuarios finales como el equipo de sistemas suelen acabar encantados, algo que suele ser difícil de encontrar como atributos de un producto.

http://www.qlikview.com/

:ok :ok :ok

El QlikView sí lo conozco, pero lo descartaron en su momento.
 
Respuesta: Recomendaciones para Analysis Services

La gracia de las ETLs y de montar un modelo en estrella es que la velocidad de proceso se incrementa y tienes control sobre lo que entra y deja de entrar en el cubo y lo más importante, como lo hace. Tu rendimiento siempre es el máximo y el que sufre el tiempo de acceso al origen es la ETL. Si se monta el BI encima del modelo relacional implica montar tablas de hechos y dimensiones a partir de vistas en el propio cubo e implica procesar cada vez que se quieran actualizar y leer los datos siempre de origen, hay opciones de procesamiento incremental, pero SSAS siempre debe saber cuales son los registros incrementales. Las soluciones que sacan esto pueden ir bien si los datos de origen son pocos, trabajar con 60 millones de registros como hacemos aquí, no es viable.

Al final la latencia de cargas incrementales de datos depende de ti. En el cliente donde estoy hay un cubo de información contable extraida de un ERP que se actualiza cada 15 minutos, con lo que virtualmente la información es casi equivalente a estar online.

Tu caso habría que mirarlo. No suelo ser partidario de las soluciones "pre-hechas" porque suelen tener ciertos hándicaps cuando luego el cliente te diga "quiero esto" y el producto no pueda, pero claro, en muchos casos sí que ayuda como aproximación inicial.

La tabla del OLTP que correspondería a la tabla de hechos tiene unos 15 millones de registros de modo que la carga completa y el recálculo del cubo directamente desde la base de datos relacional tarda lo suyo. De momento he creado un procedimiento almacenado a modo de ETL que genera y prepara las tablas de hechos y dimensiones para poder ser atacadas por el cubo de forma eficiente. Este sistema me permite hacer cargas incrementales muy rápidas y de momento me está funcionando muy bien. Me falta investigar como hacer lo mismo mediante ETLs (no las he usado nunca, aunque se parecen a los antiguos DTS) para ver si puedo mejorar en algún aspecto (rendimiento, facilidad de uso...) y averiguar como realizar el recálculo del cubo en diferido y en cuanto lo tenga montaré una pequeña aplicación en .NET que realice todo el proceso de forma centralizada para todos los cubos que haya que generar. No sé si es la mejor solución, pero al menos tengo una para empezar. :sudor

Por otro lado ayer estuve probando el PowerPivot para Excel 2010 porque me han hablado maravillas, pero o bien no sé manejarlo o bien no está todavía depurado porque tuve muchos problemas para sacar algo de provecho al conectarlo al cubo. Me pareció bastante limitado y no vi que me aportara nada. ¿Lo habéis probado? ¿le habéis sacado utilidad o está todavía tan verde como parece?
 
Última edición:
Respuesta: Recomendaciones para Analysis Services

Una ETL es un acrónimo de Extract, Transform, Load. Que se implementa con SSIS que es la evolución de los DTS. La gracia de usar integración services es que trae muchas tareas para gestión de cubos y datos y cuando le coges el punto, da mucha potencia. La extracción la puedes gestionar desde un paquete dtsx y luego eso lo guardas en el SQL y lo programas con una tarea con toda la potencia del planificador del SQL Server y te olvidas, ese paquete puede lanzar la carga y procesar el cubo.

La potencia de Power Pivot es mas para simular cubos desde Excel, trayendo datos planos y explotandolos. Conectado a un cubo no da mucha más potencia que una tabla dinámica normal y corriente, quizá algún tema de visualización...
 
Respuesta: Recomendaciones para Analysis Services

Que nostalgia, volver a encontrarme con estos temas!! Veo que en este mundillo todavía sigue la bipolaridad OLAP-ROLAP.

Findor, sigues trabajando en BI ?
 
Respuesta: Recomendaciones para Analysis Services

Una ETL es un acrónimo de Extract, Transform, Load. Que se implementa con SSIS que es la evolución de los DTS. La gracia de usar integración services es que trae muchas tareas para gestión de cubos y datos y cuando le coges el punto, da mucha potencia. La extracción la puedes gestionar desde un paquete dtsx y luego eso lo guardas en el SQL y lo programas con una tarea con toda la potencia del planificador del SQL Server y te olvidas, ese paquete puede lanzar la carga y procesar el cubo.

La potencia de Power Pivot es mas para simular cubos desde Excel, trayendo datos planos y explotandolos. Conectado a un cubo no da mucha más potencia que una tabla dinámica normal y corriente, quizá algún tema de visualización...

No, si ya sé lo que son los ETLs después de haberme tragado las 500 páginas del libro :sudor, por eso te decía que se parecen a los DTS, pero en versión evolucionada :cuniao. Y entiendo que quizá sea el mejor método para gestionar todo los procesos de carga, pero ... aquí entramos una cuestión de prioridades: tengo poco tiempo para realizar el proyecto y mucho que aprender todavía, por lo que el hecho de avanzar rápidamente elaborando un proceso de carga por medios más "tradicionales" -aunque sea poco ortodoxo-, me permite disponer de más tiempo para dedicarlo a otros temas que tengo claro que voy a necesitar de SSAS como el tema de los MDX que me está llevando de cabeza (alguna pregunta te haré, seguro, porque el asunto se las trae). Ya me gustaría aprender y conocer todas las opciones para poder usar la mejor en cada situación, pero no me es posible ahora mismo.

En cualquier caso, el proceso de actualización automático que he realizado me ha llevado menos de media hora crearlo, planificarlo y probarlo y la actualización en sí tarda 6 segundos que para 15 millones de registros no está nada mal. No sé si con un un buen dominio de los ETL se podría mejorar, pero de momento me vale y crear el ETL seguro que me llevaría muchísimo más tiempo (al menos el primero que haga). Por otro lado, también te digo que me resulta más fácil, rápido y cómodo realizar, controlar, mantener y entender un script en un editor -y comprenderlo pasado un periodo de tiempo suficiente para haber olvidado lo que hacía- que con toda la potencia visual que despliega el entorno visual de los ETLs puesto que esconde más que muestra al tener que ir navegando por propiedades :juas. Será que soy de la vieja escuela. :lol

La actualización del cubo la he realizado configurando el ProactiveCaching. He probado varias opciones y la de MOLAP automático me ha funcionado de lujo. No sé si es la mejor opción, pero entre esto y lo anterior, he conseguido que el cubo muestre los datos prácticamente a tiempo real con una latencia mínima -y el cliente trabajando con total normalidad-. Ha sido una sorpresa realmente agradable. :yes

Respecto al PowerPivot, mañana voy a un mini-seminario de Microsoft donde me explicarán y mostrarán todas esas maravillas, pero a no ser que ande muy desencaminado tengo muy claro que no llega hasta donde necesito ni mucho menos es la herramienta "mágica" que pretenden hacer ver. :no
 
Respuesta: Recomendaciones para Analysis Services

Entiendo que si no dominas al principio puede costar aproximarse al SSIS, pero en el momento que te acostumbras a tratar con flujos de datos, ayuda un montón. Yo ahora mismo evalúo muchos proyectos en los que he estado y pienso en la cantidad de tiempo perdido haciendo procesos de lectura de ficheros que se podrían haber hecho en 10 veces menos de tiempo...

Uno de los últimos procesos que hice saca datos de una BBDD relacional, hace una join con datos extraidos de un cubo OLAP, los inserta en un fichero Access, lo comprime, lo manda por FTP y ejecuta un script remoto via http... Tiempo de desarrollo... no llega a un par de horas... :cuniao

Tampoco quiero vender el producto, al final es cuestión de ver sus ventajas y aplicarlas cuando toque. Si tienes tiempo (eso que normalmente los informáticos no tenemos), échale un ojo, cuando veas que, por ejemplo, hacer una tarea de procesar un cubo lo haces en, literalmente, 20 segundos, lo verás con mejores ojos... :P

Y lo que dices del MDX, sí, es la muerte... :fiu Es probablemente lo más complejo, pero siempre hay alternativas para llegar a lo mismo sin usar MDX.

Findor, sigues trabajando en BI ?
De momento sí, aunque más marginalmente porque estoy participando en otros proyectos, pero el bloque gordo de mi trabajo sigue teniendo que ver con eso...
 
Respuesta: Recomendaciones para Analysis Services

Gracias, Findor. Intentaré sacar tiempo y probarlo cuando monté el siguiente cubo que espero me cueste muchísimo menos que el primero (por fuerza) y si la cosa va bien, aplicaré el mismo sistema al primero. Así de paso podré comparar resultados.

Del tema de MDX de momento he podido hacer lo que necesitaba con los asistentes, afortunadamente, porque si no creo que no hubiera sido capaz con tan poco tiempo. :fiu

El PowerPivot definitivamente no es la herramienta que necesitamos. Está pensada totalmente para que el usuario final pueda gestionar "fácilmente" los datos de origen, pero luego es Excel 100%. Como bien decías, no aporta nada si partes de cubos.
 
Arriba Pie