Design Patterns para Tuning Pentaho com Ctools

Documentos relacionados
Treinamento Pentaho Business Intelligence Open Source - Avançado

Instalação pré-configurada da plataforma Pentaho Demonstração do uso de relatórios, cubos e dashboards

JOHN MAYER - PARADISE VALLEY

Começando com o AWS IoT

PÓS-GRADUAÇÃO LATO SENSU. Curso: Banco de Dados. Disciplina: Laboratório de Data Warehouse e Business Intelligence Professor: Fernando Zaidan

Tutorial SQL Server 2014 Express

1 Hacking CTools. CDF Community Dashboard Framework CDE Community Dashboards Editor

Manual Técnico. Instalação e Configuração do Reporting Services

Instalando Apache Solr no Mac OSX

Uniao Educacional e Tecnologica Impacta- Uni Impacta

Plataforma Pentaho. Fagner Fernandes

f. Exemplo: verificar condição de aprovação de alunos

Problemas de compatibilidade de relatórios de Tabela Dinâmica. Problemas que causam perda significativa de funcionalidade

ÍNDICE SERVIÇOS DO WINDOWS MASTERSAF DFE

Treinamento em Pentaho Open Source Business Intelligence. Instrutor(a): Rafaela Raganham

Banco de Dados. Aula 03. Prof. Diemesleno Souza Carvalho

Inteligência nos Negócios (Business Inteligente)

MIRTH CRIANDO MENSAGENS HL7 A PARTIR DE UMA BASE DE DADOS

Rápida revisão do Modelo Relacional

Banco de Dados Oracle 10g: Introdução à Linguagem SQL

Em nosso exemplo, o banco de dados XE está trabalhando no modo NOARCHIVELOG, e para verificar isso, basta executar as seguintes tarefas:

Código PD0017. Este documento ter por objetivo auxiliar o usuário no entendimento e utilização do Nexus.

Sistema SGPA-IFSP. Manual de Instalação

TUTORIAL DE INSTALAÇÃO E USO DO OWL-S COMPOSER 3.0 utilizando o Eclipse Galileo Modelling Tools

Profiler. Criando uma trace para análise de performance de um servidor SQL Server

Banco de Dados. -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas

O modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de

Dados dinâmicos em um relatório de Tabela Dinâmica ou de Gráfico

Oracle Database 10g: Fundamentos de SQL e PL/SQL

Inteligência nos Negócios (Business Inteligente)

Sankhya Web Connection. Versão: 02 Criado em: 28/03/2017

Instalação Wiser Discovery Sistema Operacional Windows

Manual Versão: 2.0 Autor: Alex Luciano Msn: Instalação

Treinamento Pentaho Data Integration - Kettle - ETL Open Source - Fundamental + Avançado

INSTALAÇÃO DO LOGIX COM BANCO ORACLE

Instalação Apache Tomcat 8.5 no Debian 8

Banco de dados Northwind (sample database clique aqui para baixar) em execução ou SqlExpress. Compreensão de C # e ASP.NET

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

Introdução à linguagem SQL

Click the + sign to add new server details. Clique no sinal de "+" para adicionar novos detalhes do servidor. Enter a friendly name for your BI Server

SPYDER. um ambiente de desenvolvimento integrado (IDE*) para Python. Prof. Carlos Hitoshi Morimoto DCC IME USP Março, 2016

MySql. Introdução a MySQL. Andréa Garcia Trindade

Faça Fácil. Proficy Historian e SQL Linked Server

PgAdmin. O pgadmin é um software gráfico para administração do SGBD PostgreSQL disponível para Windows e UNIX.

Manual Apollo 3 Camadas

Treinamento PostgreSQL - Aula 03

Arquivos de configuração alternativos e da restauração

CUCM: Acesso de diretório do desabilitação em telefones

Oracle SQL Developer

Guia para criar aplicações simples em APEX/ Guide to create simple Apex applications (perte I)

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

Análise e otimização de queries no MySQL. Jeronimo Fagundes da Silva

O que não pode faltar em seus projetos de BI. Neimar Chagas

O JasperReports Studio é uma ferramenta de software que oferece um ambiente visual para criar relatórios para a plataforma Java. É open source.

Tutorial do E3 para Iniciantes Capítulo 15 Consultas

Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas

TUTORIAL DE INSTALAÇÃO E USO DO OWL-S COMPOSER utilizando o Eclipse Galileo Modelling Tools

TRABALHO FINAL 20 Pontos

Groupware Workbench Tutorial de instalação da Aplicação-Exemplo no Eclipse

Introdução a Programação Web com PHP

Proficy Historian e SQL Linked Server

TOTVS Utilização dos Aplicativos. Arquitetura e Instalação

Criando um servidor de log

Quando a máquina terminar o arranque e lhe pedir as credenciais para entrar, introduza as seguintes:

De forma simples, para a execução de comandos SQL com JDBC, precisa-se da instancia de três classes Java. São elas: Nome da classe Função

Lidando com Armazenamento de Dados

Jarley Nóbrega

Este tutorial apresenta uma análise para uso adequado e otimizado de seus parâmetros nos processos de ETL, e sua aplicação em situações distintas.

Instalação do Oracle VM Virtual Box

Microstrategy 10 tutorpro.com.br cetax.com.br

Visual Studio+SQL Server Express LocalDB ANTONIO LUIS

Tabelas. Banco de Dados I MySQL

1) Mostrando uma mensagem. 10 exemplos de macros essenciais no Excel. Este conteúdo faz parte da série: Excel VBA Ver 6 posts dessa série

Sumário. Parte I Criação e formatação de pastas de trabalho. Introdução... xiii. Defina uma pasta de trabalho... 3

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA total e disjuntiva.

Introdução ao IDE Netbeans (Programação Java)

Faça Fácil Proficy Historian e SQL Linked Server

Criando uma página de Recados com acesso restrito ( Facebook )

Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I

Laboratório 14 - Usando o SSIS Import e Export Wizard

IoT-FND: Incapaz de verificar a Conexão ao base de dados. Exceção: java.sql.sqlexception: ORA-28001: a senha expirou

Instalação e Configuração de Servidores Web Server Apache. Prof. Alex Furtunato

Transcrição:

PentahoDay2017 Design Patterns para Tuning Pentaho com Ctools Eduardo Alves de Carvalho 1

PentahoDay2017 Objetivo Em primeiro lugar, o título do curso é ambicioso, mas não tem a intenção de elencar <todas> as melhorias possíveis e/ou necessárias para uma solução Pentaho. Mas sim, em ajudar a lembrar de pontos importantes, que às vezes podem passar desapercebidos. 2

Palestrante Eduardo Alves de Carvalho Consultor Sênior na e- Setorial Business Analytics www.e-setorial.com.br 3

Warm Up Colocando o Pentaho para funcionar Para nossos estudos, vamos criar um plugin Pentaho simples, com apenas um filtro e um gráfico; Pelo menu Tools/AppBuider, crie um plugin com o nome DesignPatternsPentaho" e um Dashboard com o nome pentahoday ; Aplique um template, por exemplo o "Filter Template ; Crie um Simple Parameter com o nome anoparam" e valor All Years ; 4

Warm Up - 2 Crie dois data sources do tipo mdx over mondrianjndi Name dsfiltroano Jndi SampleData Mondrian Schema SteelWheels Output Columns 0 Query WITH SET [~COLUMNS] AS {[Product].[All Products]} SET [~ROWS] AS Hierarchize({{[Time].[All Years]}, {[Time]. [Years].Members}}) SELECT NON EMPTY [~COLUMNS] ON COLUMNS, NON EMPTY [~ROWS] ON ROWS FROM [SteelWheelsSales] 5

Warm Up - 3 Crie dois data sources do tipo mdx over mondrianjndi Name dsvendaspaislinhaano Jndi SampleData Mondrian Schema SteelWheels Query with set [~FILTER] as '{[Time].[${anoParam}]}' set [~COLUMNS] as '{[Product].[Line].Members}' set [~ROWS] as '{[Markets].[Country].Members}' select NON EMPTY Crossjoin([~COLUMNS], {[Measures]. [Sales]}) ON COLUMNS, NON EMPTY [~ROWS] ON ROWS from [SteelWheelsSales] where [~FILTER] Parameters anoparam anoparam 6

Warm Up - 4 Inclua um componente do tipo Radiobutton Component 7

Warm Up - 5 Inclua um componente do tipo CCC Sunburst Chart 8

Warm Up - 6 Dashboard 9

Dicas importantes Pentaho Design Patterns 10

Pentaho Design Patterns 1 - Ajuste a Inicialização do Pentaho Server No Linux, edite o arquivo:./pentaho-server/start-pentaho.sh; ou, no windows.\pentaho-server\start-pentaho.bat Servidor Headless Se o seu servidor não utiliza interface gráfica, adicione a opção -Djava.awt.headless = true 11

1 - Ajuste a Inicialização do Pentaho Server Memória Edite os parâmetros que limitam o uso de memória pela JVM. O primeiro parâmetro indica a quantidade de memória inicial e o segundo o máximo de memória disponível para o java. -Djava.awt.headless=true -Xms1024m Xmx16G - XX:MaxPermSize=256m Encode Adicione/Verifique -> no pentaho 7, finalmente, já vem como default -Dfile.encoding=utf8 Timezone -Duser.timezone=America/Sao_Paulo 12

1 - Ajuste a Inicialização do Pentaho Server Exemplo de configuração CATALINA_OPTS="-Djava.awt.headless = true - Xms2048m Xmx16G -XX:MaxPermSize=256m - Dsun.rmi.dgc.client.gcInterval=3600000 - Dsun.rmi.dgc.server.gcInterval=3600000 - Dfile.encoding=utf8 -Duser.timezone=America/ Sao_Paulo -DDI_HOME=\"$DI_HOME\"" 13

Pentaho Design Patterns 2 - Utilize os Logs Pentaho Os logs do BI Server são gerados por uma API Java chamada Log4J, do projeto Apache e armazena informações importantes da plataforma na pasta./pentaho-server/tomcat/logs. 14

2 - Utilize os Logs Pentaho Mude o Delimitador para tab ou para ; Para facilitar a visualização dos dados Mude o Delimitador para tab ou para ; Tab ajuda a leitura no console e editores de texto. O ponto e vírgula facilita leitura em planilhas de calculo 1. Abra o arquivo tomcat/webapps/pentaho/web-inf/classes/log4j.xml 2. Procure a linha que formata a saída das informações <param name="conversionpattern" (linha 38) 3. Troque o separador, de espaço, para tab (\t) ou para ; alterando a string %d %-5p [%c] %m%n para "%d\t%-5p\t[%c]\t %m%n" 4. Salve. Se o BI Server estiver rodando, pare-o, apague os arquivos do log e suba o serviço novamente. 15

2 - Utilize os Logs Pentaho Habilite mais logs somente para testes e debug 1. Para configurar o nível de alerta para os logs do pentaho, ajuste o valor da tag "Threshold" (linha 53) para um dos possíveis valores: ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACCE ou WARN https://logging.apache.org/ log4j/1.2/apidocs/org/apache/log4j/level.html <param name="threshold" value="debug"/> 2. Conforme a necessidade, descomente o intervalo de linhas abaixo, para habilitar os logs do Mondrian, das Consultas MDX e o das Consultas SQL. Em cada categoria pode-se ajustar o nível do log, ajustando a tag <priority value="debug"/> mondrian.log: linhas 145 e 166; mondrian_mdx.log: linhas 172 e 187; mondrian_sql.log: linhas 193 e 208. 16

2 - Utilize os Logs Pentaho Outros arquivos possuem configuração para seus logs pentaho-solutions/system/cda/log4j.xml pentaho-solutions/system/karaf/etc/ org.ops4j.pax.logging.cfg pentaho-solutions/system/osgi/log4j.xml 17

2 - Utilize os Logs Pentaho Analise os Logs de Auditoria./pentaho-server/pentaho-solutions/system/logs/ audit/pentahoauditlog.log Quem é o maior usuário em quantidade de acessos? Quem é o maior em tempo de execução? Quais comandos geraram erros durante a última semana? Quais as queries mais demoradas? 18

2 - Utilize os Logs Pentaho Como utilizar estes logs Logs do Tomcat não são afetados pelas configurações tratadas aqui catalina.aaaa-mm-dd.log catalina.out log do dia atual Log do Pentaho pentaho.log Logs do Mondrian mondrian.log mondrian_sql.log mondrian_mdx.log Logs de Auditoria pentaho-solutions/system/logs/audit/pentahoauditlog.log 19

2 - Utilize os Logs Pentaho Leia os logs e encontre as informações relevantes Leia no terminal Linux tail f pentaho.log Importe para o Excel ou LibreOffice Calc utilizando os delimitadores configuradoss Abra com um editor de Textos com realce de sintaxe. Procure por Verilog, Python ou alguma sintaxe que facilite a leitura dos diferentes tipos de dados em um log. Plugin Pentaho CE Audit, do nosso amigo Caio, se utiliza dessas informações para alimentar um cubo de estatísticas dos usuários. Vale verificar se roda no pentaho 7 e também se evoluiu e funciona com todos os bancos de dados (além do HsqlDb e PostgreSQL) https://github.com/it4biz/pentaho-ce-audit/releases/tag/2016.05.19 20

2 - Utilize os Logs Pentaho Verifique: a) Se as queries SQL são coerentes b) Se as queries estão usando o índice que você espera c) Se o seu database é coerente d) Se os metadados do cubo são coerentes e) Se as consultas MDX estão coerentes 21

2 - Utilize os Logs Pentaho Query Showplan SGBDR Exemplo de Comando Referência PostgreSQL Explain Select xpto from dual; https://www.postgresql.org/docs/9.5/static/using-explain.html SQL Server Oracle Sybase USE AdventureWorks2012; GO SET SHOWPLAN_TEXT ON; GO SELECT * FROM Production.Product WHERE ProductID = 905; GO SET SHOWPLAN TEXT OFF; EXPLAIN PLAN FOR SELECT last_name FROM employees; set showplan on go exec proc A go https://technet.microsoft.com/en-us/library/ms176005(v=sql. 105).aspx MySQL EXPLAIN {Select...} https://dev.mysql.com/doc/workbench/en/wb-tutorial-visualexplain-dbt3.html https://docs.microsoft.com/en-us/sql/t-sql/statements/setshowplan-text-transact-sql https://docs.oracle.com/cd/b10501_01/server.920/a96533/ ex_plan.htm http://infocenter.sybase.com/help/index.jsp?topic=/ com.sybase.infocenter.dc00743.1502/html/queryprocessing/ queryprocessing45.htm Vertica EXPLAIN { SELECT... INSERT... UPDATE... COPY... DELETE... MERGE... EXPORT... } https://my.vertica.com/docs/7.1.x/html/content/authoring/ SQLReferenceManual/Statements/EXPLAIN.htm 22

Pentaho Design Patterns 3 - Apague arquivos desnecessários Apague, Mova ou Grave no Banco de Dados periodicamente os arquivos de auditoria, logs e temporários São eles: /pentaho-solutions/system/logs/audit/ /tomcat/logs /tomcat/temp Plugin Pentaho Log Manager ajuda a apagar os logs http://localhost:8080/pentaho/plugin/logmanager/api 23

Pentaho Design Patterns 4 - Ajuste os Parâmetros Mondrian As configurações do Mondrian ficam no arquivo./pentaho-server/ pentaho-solutions/system/mondrian/mondrian.properties Ativar o uso de agregadas: mondrian.rolap.aggregates.use = true mondrian.rolap.aggregates.read = true Limitar o número de linhas retornadas: mondrian.result.limit = 10000 Limitar a espera pelo fim da consulta: mondrian.rolap.querytimeout = 600 (Segundos) Não altere: mondrian.trace.level = 1 24

Pentaho Design Patterns 5 - Verifique o cubo com o Pentaho Schema Workbench colunas como inteiro, sempre que possível; hierarquias em colunas com índice no banco de dados, que pode ser composto (mais de uma coluna); habilite o uso do cache em todos os cubos. 25

Pentaho Design Patterns 6 - Use o Pentaho Aggregation Designer Abra o PAD; Crie a conexão para seu DW; Selecione o arquivo XML com os metadados do Cubo a ser analisado; Se o cubo tiver restrições por roles, crie uma cópia do xml e apague todas as roles Selecione o Cubo desejado, dentre os publicados no xml escolhido; Observe a validação do seu banco e dados Caso necessário, faça os ajustes na estrutura do banco até que passe pela validação do PAD 26

6 - Use o Pentaho Aggregation Designer Indique o limite: De tempo, em segundos, para que as queries sejam executadas ou; Quantidade de tabelas agregadas a serem criadas. Analise o resultado e faça os ajustes, caso necessários Exporte: Perceba se os filtros mais utilizados pela aplicação (os dashboards) têm uma tabela agregada que os contemple O SQL para criar as tabelas agregadas; O SQL para popular as tabelas agregadas Os metadados destas tabelas para dentro do xml do cubo Ficarão indentadas dentro da tabela fato do cubo analisado 27

6 - Use o Pentaho Aggregation Designer (Re)publique o cubo no pentaho server Lembre-se de limpar os caches do Mondrian, do CDA e do Saiku (caso não utilize o mesmo mondrian que o Pentaho) No job que faz a integração dos dados, logo após popular a tabela fato, inclua dois steps Truncate table - selecione todas as tabelas agregadas; SQL Script agregadas. - inclua as queries de insert nas 28

Pentaho Design Patterns 7 -Habilite no CDE o uso do Cache em seus data-sources Em cada datasouce do seu dashboard, deixe marcada a opção de Cache. 29

Pentaho Design Patterns 8 -Gerencie o CDA com o CDA Cache Manager Permite limpar o cache somente do que for necessário oferecendo todas as urls, oq eu premite automatizar a limpeza dos caches com precisão. Tools/ CDA Cache Manager ou http://localhost:8080/pentaho/plugin/cda/api/ managecache 30

Pentaho Design Patterns 9 - Use o Utilize o CDA O Pulo do gato CDA é chamado por HTTP requests para $BASE_URL/pentaho/plugin/cda/api/. Documentação oficial disponível em: http://community.pentaho.com/ctools/cda/ #section=web-api-reference Método suportados: doquery; listqueries; getcdalist; listparameters; clearcache; listdataaccesstypes. Exemplo: http://localhost:8080/pentaho/plugin/cda/api/getcdalist 31

9 - Use o Utilize o CDA O Pulo do gato Abra o arquivo CDA Se for um dashboards normal, fora de um plugin pentaho, é só clicar no.cda e abrir. Em nosso caso, que criamos um plugin Sparkl, vamos precisar do método previewquery do CDA http://localhost:8080/pentaho/plugin/cda/api/previewquery? path=/system/designpatternspentaho/dashboards/ PentahoDay.cda Veja as informações sobre cada query; Agende execução de querys; Utilize iteradores em seus parâmetros quando for conveniente. 32

9 - Use o Utilize o CDA O Pulo do gato Easter Egg Praticamente um Easter egg, escondido no cda, no campo dos params, no mouse hover é apresentada uma interrogação, que ao ser clicada, mostra esse texto: Parameter formulas You can use formulas instead of fixed values for CDA parameters. Here are some useful examples: ${TODAY()} > Today s date ${YESTERDAY()} > Yesterday s date $FOREACH(dataAccess,colIdx,param1=val1,...,paramn=valn) 33

9 - Use o Utilize o CDA O Pulo do gato FOREACH Iterate over the values for colidx in query dataaccess with the given parameters. Queries using this construct return no values, and its main purpose is to provide parameter ranges for cache warming. Please refer to the Pentaho Reporting Engine documentation for a full description of the syntax. http://wiki.pentaho.com/display/reporting/ 9.+Report+Designer+Formula+Expressions Ex.: $FOREACH(dsFiltroAno,0) 34

Pentaho Design Patterns 10 - Debugue seu código no CDE Adicione na URL do Dashboard, os parâmetros abaixo e seja feliz com o inspector de seu navegador.?debug=true", no final da url, ele nao compacta as coisas. Nao usa cache. &debuglevel=5 ajusta o nível do log CDE http://localhost:8080/pentaho/plugin/ DesignPatternsPentaho/api/pentahoday? debug=true&debuglevel=5 35

Pentaho Design Patterns 11 - Conheça o CDC - Community Distributed Cache Ainda não disponível na versão 7 do Pentaho. Referências em: http://community.pentaho.com/ctools/cdc/ e http://pedroalves-bi.blogspot.com.br/2012/05/ cdc-community-distributed-cache.html 36

Pentaho Design Patterns 12 - Saiku share Mondrian Faz com que o Saiku CE utilize o mesmo Mondrian que o Pentaho e, assim, se beneficie de todos os caches criados Pentaho até versão 5 cd /pentaho/server/5.01/biserver-ce/pentahosolutions/system/saiku./saiku-sharemondrian.sh -w /pentaho/server/ 5.01/biserver-ce/tomcat/webapps/pentaho 37

12 - Saiku share Mondrian Pentaho 6 ou mais recente In the plugin, if you remove the mondrian jar from the plugin, it'll fall back to using the same jar as the server. You can also follow that shell script to remove the other jars even if its not quite automatic any more, to run using the bi server cache. Tom https://groups.google.com/a/saiku.meteorite.bi/ forum/#!topic/user/wfqstt5gd7o 38

Contribuição Extra Contribuiçao para a comunidade Pentaho Artigo completo sobre BI com Pentaho publicado na SQL Magazine, com dados e fontes: https://br.groups.yahoo.com/neo/groups/ pentahobr/conversations/messages/16965 39

PentahoDay2017 Obrigado 40

TÍTULO Eduardo Alves de Carvalho eduardo@e-setorial.com.br (48) 3334-2307 (48) 99953-1260 41 www.e-setorial.com.br