Ultimamente estamos realizando muchas pruebas, tanto internas, como para nuestros clientes alrededor de soluciones Business Intelligence Open Source. Una de las más interesantes es la de conectar Jpivot (visor OLAP que usa Pentaho ), con los cubos AS de Microsoft .
No olvides visitar la versión mejorada de jpivot , (actualizado en 2012)
Se trata de una solución rápida y económica de tener un visor OLAP (flexible y escalable) conectando con el motor OLAP más extendido del mercado.
El resultado ha sido este breve tutorial que queremos compartir con todos vosotros.
1. Objetivo
El presente documento contiene los pasos y la información obtenida tras la investigación realizada con el objeto de contectar la interfaz OLAP JPivot a un cubo de Analysis Services de Microsoft via XMLA.
2. Paso a Paso
2.1. Prerequisitos de nuestra prueba
- Necesitamos un Cubo funcionando en el Analysis Services de la edición 2000 SP4 de Sql Server. Este ejemplo se ha realizado con el cubo de prueba Food Mart 2000.
- Necesitamos un IIS (>=4.0) funcionando. El presente ejemplo se ha realizado con el IIS 6.0.
- Necesitamos un servidor de JBoss con la aplicación web JPivot.war desplegada.
- En principio no es imprescindible disponer de pentaho si se desea sólo comprobar el acceso desde JPivot al cubo.
La presentes pruebas se han realizado con el sistema Windows 2003 Server, el JBoss 4.0.4 y el JPivot 1.6.
2.2. Pasos a realizar
1. Instalamos la extensión de Sql Server XMLA for Analysis desde:
http://www.microsoft.com/downloads/details.aspx?displaylang=es&FamilyID=0e93b1ee-be73-4d15-9c37-6cc2dcc2ac33
2. Configuramos un origen de datos en el fichero:
XMLA\ Config\datasources.xml
Con algo parecido a esto:
Es posible mirar las instrucciones en el fichero de ayuda de XMLA for Analysis. Situado en: Microsoft XML For Analysis SDK\Help\xmla10.chm
También resulta muy útil la información de configuración de XMLA disponible en la siguiente URL de Microsoft:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsql2k/html/implementxap.asp
3. Crear un directorio virtual XMLA en el IIS
Seguimos las instrucciones de la ayuda de XMLA, que copio a continuación.
To set up the virtual directory
1. Open Internet Services Manager.
2. In the tree pane, expand the server you want to administer.
3. Right-click the name of the Web site you want to use, point to New, and then click Virtual Directory.
4. The Virtual Directory Creation Wizard steps you through creating a virtual directory.
• For the directory containing the content to publish, enter the path to the
folder containing Msxisapi.dll (for example, C:\Program Files\Microsoft XML for
Analysis SDK\Isapi).
• For access permissions for the virtual directory,
select Read, and set the execute permissions to Run scripts and Execute.
If you are configuring IIS 4.0, select Allow Read Access, Allow Script Access and Allow Execute Access.
Note: For simplicity, when you specify the content directory for the virtual directory, use the path to the installation folder that contains Msxisapi.dll (for example, C:\Program Files\Microsoft XML for Analysis SDK\Isapi). If you specify a different folder for the content directory, you must then copy Msxisapi.dll from the installation folder to that location.
To configure security for the XML for Analysis Provider, use Internet Information Services Manager to manage the virtual directory security.
4. Configurar el IIS de Windows 2003 con extensiones.
Por defecto el IIS (6.0) de Windows 2003 se instala en un modo que no permite la ejecución de dlls, para ello hay que agregar una nueva extension de servidor que apunta a la dll Msxisapi.dll y marcar el permiso permitido.
De la URL proporcionada con información de configuración de XMLA para Sql Server, ver el tag: Enabling the XML for Analysis Web Service Extension on Windows Server 2003
5. Probar que el servicio está funcionando
Tras hacer esto realizamos la siguiente prueba desde un navegador: acceder a la URL: http://localhost/asxmla/msxisapi.dll (siendo asxmla el nombre que hayamos puesto al directorio virtual).
Ha de aparecer una respuesta SOAP con este contenido, de lo contrario revisar los pasos anteriores:
6. Añadir los roles de seguridad deseados al Cubo
Si no se realizar este paso obtendremos un error indicando que no se localiza la base de datos indicada.
a. Desde el Analysis Manager de MSSQL nos vamos a modificar las funciones de la base de datos con la que estamos trabajando.
b. Seleccionamos la funcion All Users y hacemos clic en Modificar
c. Seleccionamos los usuarios que queremos que tengan acceso a la base de datos (para pruebas todos).
Esto permitirá que JPivot pueda acceder al origen de datos del cubo.
2.3. Desde la aplicación web de JPivot
1. Descargar jpivot.war y desplegarlo sobre el jboss de Pentaho, en el directorio Server/default/deploy. Podemos dejarlo como un fichero .war y abrirlo para modificarlo con el winrar por ejemplo o bien descomprimirlo con el winrar y colocar los directorios que contiene en un directorio llamado jpivot.war, de forma que sea más fácil editar su contenido.
2. Añadir una jsp en WEB-INF/queries que contenga la Query que queremos probar, algo similar a (en negrita las cosas a customizar).
Ver indicaciones en el post :
3. El nombre que demos a la jsp de la Query (ej. queryxmla ) será el parámetro a pasar a la página de test de JPivot via url como Query, siguiendo la siguente estructura:
http://localhost/jpivot/testpage.jsp?query=nombredenuestraquery
Si hemos realizado bien los pasos anteriores, debería de funcionar sin problemas, obteniendo algo como lo siguiente al acceder a la URL: