De lo que se trata aquí es de redirigir el log de auditoria de Pentaho a una tabla de base de datos que nos permita posteriormente analizarla con un informe cómo se hacía en la anterior entrada o con un cubo de accesos y tiempos de ejecución... :D
Para ello debemos:
- Crear la tabla en hibernate que contendrá el log...
CREATE TABLE `PRO_AUDIT` (
`JOB_ID` varchar(255) NOT NULL,
`INST_ID` varchar(128) DEFAULT NULL,
`OBJ_ID` varchar(128) DEFAULT NULL,
`OBJ_TYPE` varchar(255) DEFAULT NULL,
`ACTOR` varchar(45) DEFAULT NULL,
`MESSAGE_TYPE` varchar(255) DEFAULT NULL,
`MESSAGE_NAME` varchar(128) DEFAULT NULL,
`MESSAGE_TEXT_VALUE` varchar(128) DEFAULT NULL,
`MESSAGE_NUM_VALUE` bigint(20) unsigned DEFAULT NULL,
`DURATION` decimal(7,2) DEFAULT NULL,
`AUDIT_TIME` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8
- Redirigir el log a base de datos editando el archivo pentaho-solutions/system/pentahoObjects.spring.xml y substituyendo:
<bean id="IAuditEntry" class="org.pentaho.platform.engine.services.audit.AuditFileEntry" scope="singleton" />
por
<bean id="IAuditEntry" class="org.pentaho.platform.engine.services.audit.AuditSQLEntry" scope="singleton" />
- Finalmente, reiniciamos nuestro BI server y comprobamos que el log de auditoría se va a la tabla PRO_AUDIT de hibernate...
Una vez tenemos esto... podemos hacer un cubo para analizar los datos de uso... yo he hecho uno muy sencillo, basado en la siguiente consulta (si... con el wizard...) :
SELECT ACTOR, CASE OBJ_ID WHEN 'render' THEN FILE ELSE OBJ_ID END AS RESOURCE, DURATION
, DATE_FORMAT( AUDIT_TIME, '%Y' ) as YEAR, DATE_FORMAT( AUDIT_TIME, '%Y-%m' ) as MONTH
, DATE_FORMAT( AUDIT_TIME, '%Y-%m-%d' ) as DAY
, DATE_FORMAT( AUDIT_TIME, '%H' ) as HOUR
, DATE_FORMAT( AUDIT_TIME, '%H:%i' ) as MINUTE
FROM (
SELECT ACTOR, OBJ_ID, MESSAGE_TYPE, ( select MESSAGE_TEXT_VALUE
from PRO_AUDIT PS
where PA.ACTOR = PS.ACTOR
AND PA.INST_ID = PS.INST_ID
AND PA.MESSAGE_NAME = PS.MESSAGE_NAME
AND PS.MESSAGE_TYPE = 'instance_start'
) AS FILE, DURATION, AUDIT_TIME
FROM PRO_AUDIT PA
WHERE MESSAGE_TYPE IN ( 'instance_end' , 'session_start')
AND OBJ_ID != 'doQuery'
) as a
Esto me da un cubo de auditoría por usuario, recurso y tiempo... Suficiente para mi!
audit.mondrian.xml
Y se ve tal que así:
Nota Bene: Notese que estoy trabajando con Pentaho CE 4.8 y MySql aunque debería funcionar con cualquier versión...
Brilliant article. The information I have been searching precisely. It helped me a lot, thanks. Keep coming with more such informative article. Would love to follow them. ibm websphere training
ResponderEliminarSoy Абрам Александр, un hombre de negocios que pudo revivir su negocio agonizante a través de la ayuda de un prestamista enviado por Dios conocido como Benjamin Lee, el consultor de préstamos del Servicio de Financiación Le_Meridian. Soy residente en Yekaterinburg Екатеринбург. Bueno, ¿está tratando de iniciar un negocio, saldar su deuda, expandir la existente, necesita dinero para comprar suministros? Si ha tenido problemas para tratar de garantizar una buena línea de crédito, quiero que sepa que el servicio de financiación de Le_Meridian. Es el lugar adecuado para que resuelva todos sus problemas financieros porque soy un testimonio vivo y no puedo guardar esto para mí solo cuando otros están buscando una forma de ser financiados. Quiero que todos se comuniquen con este prestamista enviado por Dios. utilizando los detalles como se indica en otro para participar de esta gran oportunidad Correo electrónico: lfdsloans@lemeridianfds.com / lfdsloans@outlook.com O WhatsApp / Text + 1-989-394-3740.
ResponderEliminarVery nice post here thanks for it .I always like and such a super contents of these post.Excellent and very cool idea and great content of different kinds of the valuable information's.
ResponderEliminarpython Training in chennai
python Course in chennai