View
2
Download
0
Category
Preview:
Citation preview
Avenida de Castilla,1 - Edificio Best Point - Oficina 21B28830 San Fernando de Henares (Madrid)
tel./fax: +34 91 675 33 06info@autentia.com - www.autentia.com
Somos su empresa de Soporte a Desarrollo Informático.Ese apoyo que siempre quiso tener...
1. Desarrollo de componentes y proyectos a medida
TecnologíaDesarrolloSistemas
Gran Empresa
Producción
autentia
Certificacióno Pruebas
Verificación previa
RFP Concurso
Consultora 1
Consultora 2
Consultora 3
Equipo propio desarrolloPiloto
3a
3b
1. Definición de frameworks corporativos.2. Transferencia de conocimiento de nuevas arquitecturas.3. Soporte al arranque de proyectos.4. Auditoría preventiva periódica de calidad.5. Revisión previa a la certificación de proyectos.6. Extensión de capacidad de equipos de calidad.7. Identificación de problemas en producción.
3. Arranque de proyectos basados en nuevas tecnologías
¿Qué ofrece Autentia Real Business Solutions S.L?
Para más información visítenos en: www.autentia.com
Compartimos nuestro conociemiento en: www.adictosaltrabajo.com
Gestor portales (Liferay)Gestor de contenidos (Alfresco)Aplicaciones híbridas
Tareas programadas (Quartz)Gestor documental (Alfresco)Inversión de control (Spring)
BPM (jBPM o Bonita)Generación de informes (JasperReport)ESB (Open ESB)
Control de autenticación y acceso (Spring Security)UDDIWeb ServicesRest ServicesSocial SSOSSO (Cas)
Spring MVC, JSF-PrimeFaces /RichFaces, HTML5, CSS3, JavaScript-jQuery
JPA-Hibernate, MyBatisMotor de búsqueda empresarial (Solr)ETL (Talend)
Dirección de Proyectos Informáticos.Metodologías ágilesPatrones de diseñoTDD
2. Auditoría de código y recomendaciones de mejora
4. Cursos de formación (impartidos por desarrolladores en activo)
Adictos al Trabajo. Formación y desarrollo | JAVA, JEE, UML, XML |... http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=JPivot
1 de 8
Últimos tutoriales
2008-03-04
Introducción a JPivot
2008-03-03
Tablas dinámicas online
2008-02-29
Generación automática de gráficasen un web
2008-02-28
Manual de instalación de OpenCms7
2008-02-28
Creación de un proyecto enSourceForge.net
2008-02-22
Lucene: Analyzers, stemming ybúsqueda de documentossimilares.
2008-02-22
Crear un logger utilizado a travésde aspectos con Spring AOP.
2008-02-20
Primeros pasos con PostgreSQL enDebian
2008-02-17
Cómo realizar pruebas unitariascon Spring y JUnit4 utilizando Gienah
2008-02-15
Creación de una aplicación conSpring e Hibernate desde 0
Últimas ofertas deempleo
2008-02-06
T. Información - Analista /Programador - MADRID.
2008-02-04
T. Información - Becario -MADRID.
2008-01-28
T. Información - Becario -MADRID.
2008-01-25
Otras Sin catalogar - MURCIA.
2008-01-24
T. Información - Analista /Programador - MADRID.
Tutorial desarrollado por
Juan Alonso Ramos
Consultor tecnológico de desarrollo deproyectos informáticos.
Ingeniero Técnico en Informática (cursandoIngeniería)
Puedes encontrarme en Autentia
Somos expertos en Java/J2EE
Catálogo de servicios de Autentia
Descargar (6,2 MB)
Descargar en versión comic (17 MB)
AdictosAlTrabajo.com es el Web de difusión de conocimiento de Autentia.
Catálogo de cursos
NUEVO ¿Quieres saber cuánto ganas en relación al mercado? pinchaaquí...
Ver cursos que ofrece Autentia Descargar comics en PDF y alta resolución
[¡NUEVO!] 2008-03-022008-02-26
2008-02-24 2008-02-19
Estamos escribiendo un libro sobre la profesión informática y estas viñetas formarán parte de él. Puedes opinar en la seccion comic.
Descargar este documento en formato PDF: JPivot.pdf
Fecha de creación del tutorial: 2008-03-04
Introducción a JPivot
Introducción
JPivot es una librería de componentes JSP que se utiliza para construir tablas OLAP generadas de forma dinámica. Este tipo de tablas es de gran utilidadya que permite mostrar los resultados de las consultas filtrando por los campos de la tabla de manera que se puedan quitar y poner distintos criterios debúsqueda de los datos, consiguiendo un amplio abanico de posibidades. Consultar la API aquí
OLAP: Es el acrónimo en inglés de procesamiento analítico en línea (On-Line Analytical Processing). Es una solución utilizada en el campo de laInteligencia de Negocios (Business Intelligence) cuyo objetivo es agilizar la consulta de grandes cantidades de datos. Para ello utiliza estructurasmultidimensionales (o Cubos OLAP) que contienen datos resumidos de grandes Bases de Datos o Sistemas Transaccionales ( OLTP). Se usa en informes de negocios de ventas, márketing, informes de dirección, minería de datos y áreas similares. Fuente: Wikipedia
Los cubos OLAP se estructuran en ficheros XML y en ellos se definen las dimensiones y las conexiones entre los datos. Estos XML a menudo soncomplejos de hacer a mano por lo que existen herramientas que de forma gráfica nos facilitan la tarea. Una de ellas es la aplicación open source PentahoCube Designer.
Para desarrollar este tipo de tablas pivotantes es necesaria la arquitectura OLAP Mondrian contenida en la plataforma Pentaho. Esta arquitectura quecorre sobre un servidor web nos permite la comunicación entre aplicaciones OLAP con bases de datos. El núcleo del servidor Mondrian es similar a JDBCpero exclusivo para OLAP. Proporciona la conexión a la base de datos y ejecuta las sentencias SQL.
Ya hemos visto otras opciones de tablas dinámicas y gráficas en Javascript por parte de Daniel. La principal diferencia de JPivot respecto a otras libreríasen Javascript es que JPivot únicamente realiza la consulta de los datos necesarios, es decir los que se muestran en ese momento a diferencia de laslibrerías de Javascript que contienen todos los datos de la consulta y los muestran de diferente manera en función de los filtros aplicados.
Entorno
Windows XP Pro SP2JDK 1.5.0_4Apache Tomcat 6.0Servidor Mondrian 3.0.0Pentaho Cube Designer 0.7.2.
Instalación
Mondrian
Descargamos la última versión de sourceforge (mondrian-3.0.0.10550.zip) y la descomprimimos. Dentro de la carpeta lib está el mondrian.war quecolocamos en %TOMCAT_HOME%\webapps. Arrancamos el Tomcat para que haga el despliegue del war y cree el directorio webapps\mondrian. Alarrancar el servidor dará un error ya que no tenemos configurada ninguna base de datos. Esta versión contiene una base de datos de prueba en Accesspero nosotros lo configuraremos para que utilice MySQL. Para ello editamos el fichero mondrian.properties que se encuentra en WEB-INF. Dentro de estefichero habría que modificar la última línea (sustituir NOMBRE_BD, USUARIO y PASSWORD por las propiedades correspondientes).
mondrian.test.connectString=Provider=mondrian;Jdbc=jdbc:mysql://localhost/NOMBRE_BD?user=USUARIO;password=PASSWORD;JdbcDrivers=com.mysql.jdbc.Driver;
Construcción de un Cubo OLAP
Para crear los cubos OLAP de forma gráfica vamos a utilizar la aplicación Pentaho Cube Designer. Nos descargamos la última versión de sourceforge(CubeDesigner-0.7.2.0_Win32.zip) y la descomprimimos. Ejecutamos el CubeDesigner.exe y creamos un cubo nuevo desde File > New Cube Schema.
Lo primero será indicar la fuente de datos en la opción ('Select a data source') de donde queremos sacar la información. En este tutorial vamos a utilizarlos datos de la encuesta salarial
Inicio Quienes somos Tutoriales Formación Empleo Colabora Comunidad Libro de Visitas Comic
Catálogo de serviciosAutentia (PDF 6,2MB)
En formato comic...
Web
www.adictosaltrabajo.com
Buscar
Hosting patrocinado por
Adictos al Trabajo. Formación y desarrollo | JAVA, JEE, UML, XML |... http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=JPivot
2 de 8
.
Una vez confugurada la conexión a la base de datos, le damos un nombre y una descripción al cubo.
En la siguiente pantalla nos mostrará las tablas que tenemos en la base de datos. Para ir montando la consulta que queremos hacer bastará arrastrar lastablas que queramos al panel central (se irá rellenando el campo FROM en el árbol ROOTQUERY). Una vez añadidas las tablas seleccionamos los camposque queremos consultar (campos SELECT) pinchando en los campos correspondientes de cada tabla. Por último falta relacionar las tablas para conformarlos criterios de la consulta (campos WHERE). El editor nos facilita esta tarea uniendo las foreign keys de las tablas con un simple arrastre. El resultadoquedaría así:
El siguiente paso será definir las medidas (measures) que básicamente son los datos que se van a mostrar en la tabla JPivot y que en función de losfiltros (dimensions) que posteriormente definamos nos van a permitir definir los criterios de consulta de los datos.
Anuncios Google
OLAP Sample
OLAP and OLTP
Access OLAP
Curso JDBC
Anuncios Google OLAP Viewer Herramientas OLAP Tomcat Servlet OLAP Cube Tomcat MySQL
Adictos al Trabajo. Formación y desarrollo | JAVA, JEE, UML, XML |... http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=JPivot
3 de 8
El siguiente paso es crear las dimensiones del cubo que nos perimitirán definir los criterios de búsqueda o filtros de los datos.
Por útltimo grabamos el XML generado. La aplicación Cube Designer es muy útil para generar el grueso del fichero XML que nos define la estructura delcubo OLAP pero no permite definir muchos de los parámetros disponibles por lo que podemos editarlo a mano. Para nuestra consulta de salarios esnecesaria una fórmula (Salario total / Nº Muestras) que metemos en la etiqueta CalculatedMember. El XML que representa el cubo OLAP es el siguiente:
Copyright 2003-2008 © All Rights Reserved | Texto legal y condiciones de uso | Powered by Autentia
Adictos al Trabajo. Formación y desarrollo | JAVA, JEE, UML, XML |... http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=JPivot
4 de 8
Mostrar los datos con JPivot
Una vez creado el XML para nuestro cubo OLAP lo guardamos dentro del directorio mondrian que instalamos anteriormente, por ejemplo enWEB-INF/queries/UsersSalaryRange.xml. En ese mismo directorio hay varias JSPs con algunas etiquetas de la libreríra JPivot de prueba junto con un elarchivo FoodMart.xml que es un cubo para hacer pruebas con la base de datos que viene por defecto. Nosotros utilizaremos la página mondrian.jsp paranuestras pruebas. Editamos la JSP modificando los parámetros de conexión a la base de datos. Hay que decir que se pueden crear datasources para laconexión a la base de datos bien en el server.xml del Tomcat o en eldatasources.xml que viene en el servidor Mondrian pero de momento vamos autilizar los atributos de la etiqueta jp:mondrianQuery.
Los parámetros importantes a configurar son:
jdbcDriver="com.mysql.jdbc.Driver": Indica el driver de conexión a la base de datos
jdbcUri="jdbc:mysql://localhost/NOMBRE_BD?user=USUARIO&password=PASSWORD": URL de conexión indicando el nombre de la base de datos y elusuario y password de autenticación.
catalogUri="/WEB-INF/queries/UsersSalaryRange.xml": Path donde se encuentra el cubo OLAP.
Dentro de la etiqueta jp:mondrianQuery podemos hacer consultas SQL seleccionando los criterios (Dimensions) que consideremos, en este caso en lascolumnas de la tabla sacamos el promedio de sueldos y en las filas los puestos.
En las páginas se muestra un menú donde ir jugando con todos las opciones que permite JPivot filtrando por los campos que queramos, sacar gráficas,exportar a PDF o a XLS, intercambiar ejes para visualizar los datos de formas diferentes si están por filas o columnas, etc.
Arrancamos el Tomcat y metemos la siguiente url http://localhost:8080/mondrian. La pantalla que nos sale tiene esta pinta.
view plain print ?
<?xml version="1.0" encoding="UTF-8"?> 01.<Schema name="UsersSalaryRange"> 02.
<Cube name="UsersSalaryRange"> 03. <Table name="usuario"/> 04.
<Dimension name="Experiencia"> 05. <Hierarchy name="Experiencia" hasAll="true" allMemberName="Todos"> 06.
<Table name="usuario"/> 07. <Level name="Experiencia" table="usuario" column="anyos_experiencia" uniqueMembers="false"/> 08.
</Hierarchy> 09. </Dimension> 10.
<Dimension name="Pais" foreignKey="paises_id"> 11. <Hierarchy name="Pais" hasAll="true" allMemberName="Todos" primaryKey="id"> 12.
<Table name="paises"/> 13. <Level name="Pais" table="paises" column="nombre" uniqueMembers="false"/> 14.
</Hierarchy> 15. </Dimension> 16.
<Dimension name="Puesto Actual" foreignKey="puesto_actual_id"> 17. <Hierarchy name="Puesto Actual" hasAll="true" allMemberName="Todos" primaryKey="id"> 18.
<Table name="puesto_actual"/> 19. <Level name="Puesto Actual" table="puesto_actual" column="puesto" uniqueMembers="false"/> 20.
</Hierarchy> 21. </Dimension> 22.
<Dimension name="Tipo de Empresa" foreignKey="tipo_empresa_id"> 23. <Hierarchy name="Tipo de Empresa" hasAll="true" allMemberName="Todos" primaryKey="id"> 24.
<Table name="tipo_empresa"/> 25. <Level name="tipo_empresa.tipo" table="tipo_empresa" column="tipo" uniqueMembers="false"/> 26.
</Hierarchy> 27. </Dimension> 28.
<Dimension name="Causa de Baja" foreignKey="causas_baja_empresa_id"> 29. <Hierarchy name="Causa de Baja" hasAll="true" allMemberName="Todos" primaryKey="id"> 30.
<Table name="causas_baja_empresa"/> 31. <Level name="Causa de Baja" table="causas_baja_empresa" column="causa" uniqueMembers="false"/> 32.
</Hierarchy> 33. </Dimension> 34.
<Dimension name="Nivel de Estudios" foreignKey="nivel_estudios_id"> 35. <Hierarchy name="Nivel de Estudios" hasAll="true" allMemberName="Todos" primaryKey="id"> 36.
<Table name="nivel_estudios"/> 37. <Level name="Nivel de Estudios" table="nivel_estudios" column="estudios" uniqueMembers="false"/> 38.
</Hierarchy> 39. </Dimension> 40.
<Dimension name="Tamano de la Empresa" foreignKey="tamano_empresa_id"> 41. <Hierarchy name="Tamano de la Empresa" hasAll="true" allMemberName="Todos" primaryKey="id"> 42.
<Table name="tamano_empresa"/> 43. <Level name="Tamano de la Empresa" table="tamano_empresa" column="tamano" uniqueMembers="false"/> 44.
</Hierarchy> 45. </Dimension> 46.
<Dimension name="Provincia" foreignKey="provincias_id"> 47. <Hierarchy name="Provincia" hasAll="true" allMemberName="Todas" primaryKey="id"> 48.
<Table name="provincias"/> 49. <Level name="Provincia" table="provincias" column="nombre" uniqueMembers="false"/> 50.
</Hierarchy> 51. </Dimension> 52.
<Dimension name="Numero anterior de Empresas" > 53. <Hierarchy name="Numero anterior de Empresas" hasAll="true" allMemberName="Todos"> 54.
<Table name="usuario"/> 55. <Level name="Numero anterior de Empresas" table="usuario" column="num_empresas" uniqueMembers="false"/> 56.
</Hierarchy> 57. </Dimension> 58.
<Dimension name="Es Ingeniero en Informatica" > 59. <Hierarchy name="Es Ingeniero en Informatica" hasAll="true" allMemberName="Todos"> 60.
<Table name="usuario"/> 61. <Level name="Es Ingeniero en Informatica" table="usuario" column="es_informatico" uniqueMembers="false"/>62.
</Hierarchy> 63. </Dimension> 64.
<Dimension name="Sexo"> 65. <Hierarchy name="Sexo" hasAll="true" allMemberName="Todos"> 66.
<Table name="usuario"/> 67. <Level name="Sexo" table="usuario" column="sexo" uniqueMembers="false"/> 68.
</Hierarchy> 69. </Dimension> 70.
<Measure name="Salario" column="salario" aggregator="sum" datatype="Integer" formatString="#,##0.00"/> 71. <Measure name="Muestras" column="id" aggregator="count" formatString="#"/> 72.
<CalculatedMember name="Sueldo" dimension="Measures" formula="[Measures].[Salario] / [Measures].[Muestras]" > 73. <CalculatedMemberProperty name="FORMAT_STRING" value="#,##0.00"/> 74.
</CalculatedMember> 75. </Cube> 76.
</Schema> 77.
view plain print ?
<jp:mondrianQuery id="query01" jdbcDriver="com.mysql.jdbc.Driver" 01.
jdbcUrl="jdbc:mysql://localhost/NOMBRE_BD?user=USUARIO&password=PASSWORD" 02. catalogUri="/WEB-INF/queries/UsersSalaryRange.xml" > 03.
04. select {[Measures].[Sueldo]} on columns, {([Puesto Actual])} on rows 05.
from UsersSalaryRange 06.</jp:mondrianQuery> 07.
Adictos al Trabajo. Formación y desarrollo | JAVA, JEE, UML, XML |... http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=JPivot
5 de 8
Como hemos utilizado el fuente mondrian.jsp accedemos a la página desde el primer enlace (JPivot pivot table).
En la imagen anterior ya se pueden ver los datos que hemos hecho en la consulta filtrando el 'Sueldo' por el 'Puesto Actual'. También se muestra la
gráfica de barras que se accede desde el menú .
Llegados a este puntolas posibilidades de consulta que permite JPivot son tantas como se nos ocurran. Vamos a sacar varias consultas jugando con losdatos para ver todo lo que nos ofrece la herramienta.
Promedio de salarios filtrado por países con el número de muestras registradas ordenado de forma ascendente
Adictos al Trabajo. Formación y desarrollo | JAVA, JEE, UML, XML |... http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=JPivot
6 de 8
En la tabla podemos observar los países donde se pagan sueldos más altos pero donde el número de muestras aún es demasiado bajo como para que laestadística sea muy fiable.
Promedio de sueldos filtrado por Puesto Actual (Analista/Programador y Programador), y Nivel de Estudios. (Ing. Superior/Licenciatura y Módulo degrado superior)
Promedio de salarios filtrado por Provincia (sacamos sólo Madrid y Barcelona), Tipo de Empresa (Consultoría y Software) y Puesto Actual(Analista/Programador y Programador
Para indicar los filtros que se quieren aplicar en la tabla, se hace mediante el botón . Esta opción nos muestra los filtros (Dimensions)queindicamos anteriormente en el cubo OLAP. Para añadirlos a la consulta bastará con seleccionar los iconos que se encuentran más a la izquierda de la
Adictos al Trabajo. Formación y desarrollo | JAVA, JEE, UML, XML |... http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=JPivot
7 de 8
descripción del filtro dependiendo de si se quiere añadir el filtro por filas o por columnas.
Conclusiones
El mundo del Business Inteligence y la plataforma Pentaho es tan amplio que da para muchos tutoriales que iremos publicando poco a poco. Demomento se puede comprobar que JPivot es una herramienta muy potente y que ofrece muchas posibilidades ya que con una única tabla puedesconsultar todos los datos que quieras montando los cubos OLAP.
Los datos relativos al negocio de una organización son una base fundamental para su buen funcionamiento por lo que debemos tomárnoslos muy enserio. Gracias a herramientas como la que hemos visto en este tutorial esto ya no es un problema.
Puedes opinar sobre este tutorial haciendo clic aquí.Puedes firmar en nuestro libro de visitas haciendo clic aquí.Puedes asociarte al grupo AdictosAlTrabajo en XING haciendo clic aquí.
Añadir a favoritos Technorati.
Esta obra está licenciada bajo licencia Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5
Adictos al Trabajo. Formación y desarrollo | JAVA, JEE, UML, XML |... http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=JPivot
8 de 8
Recuerda
Autentia te regala la mayoría del conocimiento aquí compartido (Ver todos los tutoriales). Somos expertos en: J2EE, Struts, JSF, C++, OOP, UML, UP, Patrones de diseño ... y muchas otras cosas.
¿Nos vas a tener en cuenta cuando necesites consultoría o formación en tuempresa?, ¿Vas a ser tan generoso con nosotros como lo tratamos de ser convosotros?
Somos pocos, somos buenos, estamos motivados y nos gusta lo que hacemos ...
Autentia = Soporte a Desarrollo & Formación.
info@autentia.com
Servicio de notificaciones:
Si deseas que te enviemos un correo electrónico cuando introduzcamos nuevos tutoriales.
Formulario de subcripción a novedades:
E-mail Aceptar
Nota:
Los tutoriales mostrados en este Web tienen como objetivo la difusión del conocimiento. Los contenidos y comentarios de los tutoriales sonresponsabilidad de sus respectivos autores. En algún caso se puede hacer referencia a marcas o nombres cuya propiedad y derechos es de susrespectivos dueños. Si algún afectado desea que incorporemos alguna reseña específica, no tiene más que solicitarlo. Si alguien encuentra algúnproblema con la información publicada en este Web, rogamos que informe al administrador rcanales@adictosaltrabajo.com para su
resolución.
Tutoriales recomendados
Nombre Resumen Fecha Visitas pdf
Gestión errores en JSPsOs mostramos como realizar ciertas labores intermedias en JSPs: Comentarios,gestión de errores, formateo de fechas y precompilación de ficheros
2003-07-10 19466 pdf
TagLibs y JSPsOs mostramos como crear librerias de etiquetas para vuestros JSP y así simplificar suconstrucción.
2003-07-05 24073 pdf
Manejar tablas de datos con JSFEn este tutorial os mostramos un ejemplo de utilización de la extension delcomponente DataTable, realizada por la implementación Tomahawk de MyFaces
2006-03-09 11219 pdf
Forzar diálogo Guardar Comoen JSPs
Os mostramos como afrontar tareas comunes en JSP: Forzar el diálogo Guardar Comoal generar dinámicamente un fichero desde un JSP y asegurarnos que no se cacheannuestros ficheros (probado en IExplorer 6)
2004-02-05 18996 pdf
Comunicación entre TAGs,Beans y JSPs
Os mostramos las posibilidades de comunicación entre JSPs, Bean y etiquetas deusuario.
2003-07-18 22536 pdf
Generación automática degráficas en un web
Daniel nos muestra cómo ha desarrollado las gráficas del comparador de sueldos de laweb de Adictosaltrabajo.com
2008-02-29 177 pdf
Comparador de sueldos y tablas dinámicas/pivotables
En este documento mostramos los primeros resultados del comparador de sueldos de la web y su representación en hojas de cálculo dinámicas
2008-02-05 635 pdf
Transformación de XML y XSLen JSPs
Os mostramos como poder utilizar XML y XSL en JSPS, combinado con el Patrón MVC 2003-12-06 25341 pdf
JSP 2.0, JSTL y Lenguaje de expresiones
Os mostramos las novedades de JSP 2.0: Nuevas librerías estandar de etiquetas y ellenguaje de expresiones con ejemplos de acceso a base de datos, XML y XSL en JSP
2003-10-18 45082 pdf
Tablas dinámicas onlineDaniel Hernández nos enseña a programar las tablas pivotantes en php, como las quefueron presentadas en la sección de comparadores de sueldos de la web de Adictos.
2008-03-03 79 pdf
Recommended