Cruzando Duas Hierarquias da Mesma Dimensão

Em 7/2/14, Camila Botelho postou uma curiosa pergunta:

Camila pergunta sobre análises em duas hierarquias da mesma dimensão.
Camila pergunta sobre análises em duas hierarquias da mesma dimensão.

Eu respondi com curiosidade:

Eu não sei... ainda! :-)
Eu não sei… ainda! :-)

O teste era simples: primeiro, criar a hierarquia gênero no esquema e, segundo, espetar cliente de novo no cubo. O resultado é este aqui:

Nova hierarquia no cubo Beltrano, mostrando o Cliente espetado duas vezes.
Nova hierarquia no cubo Beltrano, mostrando o Cliente espetado duas vezes.

Até agora, tudo lógico e razoável. Teste de fogo: dá para criar uma análise de Gênero do Cliente por Estado do Cliente? Resposta:

Duas hierarquias cruzadas entre si no Saiku.
Duas hierarquias cruzadas entre si no Saiku.

Sim! A visão da figura anterior está filtrada por tipo de cliente (exibe apenas PF, já que PJ não possui gênero), e em cada eixo (coluna e linha) eu tenho um atributo de cara hierarquia da dimensão Cliente. O Saiku não expôs o nome da dimensão setada com Dimension Usage (Cliente H1 e Cliente H2), mas oferece o cliente duas vezes.

A pergunta que não quer calar é “peraí! A cada hierarquia que eu queira cruzar, preciso espetar a dimensão no cubo de novo?” Bom, se você usar o Pentaho Analyzer (EE), não. Caso contrário, por enquanto, sim. Eventualmente, consultas MDX não possuem essa limitação – indicando que é um ponto a ser melhorado no cliente OLAP, e não no Mondrian:

SELECT
NON EMPTY Hierarchize(Union(CrossJoin({[Cliente H2.Genero].[F]}, {[Measures].[Quantidade]}),
                             CrossJoin({[Cliente H2.Genero].[M]}, {[Measures].[Quantidade]}))) ON COLUMNS,
NON EMPTY {Hierarchize({[Cliente H1].[Estado].Members})} ON ROWS
FROM [Pedidos]

É isso. Respondido, Camila?

Anúncios

Acesso ao Log do BI Server, Quick & Dirt Parte 2 – Usando XActions

No post anterior eu mostrei como implementar a genial idéia do Gerson Tessler para acessar os logs do BI Server via o próprio BI Server usando um relatório PRD e uma transformação. Agora vamos ver outra técnica (que eu prefiro porque tem um overhead menor): como expor o log do BI Server (ou qualquer outro) usando a mesma transformação e uma XAction.

Primeiro você precisa instalar e configurar o Pentaho Design Studio. Acesse a página de links do site companheiro do livro Pentaho na Prática e baixe o capítulo de degustação. Olhe nas páginas 3, 5 e 17 como instalar o PDS. Depois baixe este guia rápido e configure um projeto para seu BI Server 4.8. Teste e brinque um pouco com o BI Server e o PDS, até sacar a mecânica da coisa (atualizações feitas com o PDS sobre XACTIONs aparecem no BI Server depois de um refresh do repositório, a menos que você use um repositório em arquivo.)

Pronto? Vamos lá:

  1. No PDS clique com o botão da direita sobre a Beltrano e escolha a opção BI Platform e depois New Action Sequence;
  2. Na janela que aparecer deixe o campo Container como está e modifique o nome no campo File name de untiltled.xaction para log.xaction;
  3. Aba General: não mexa em nada e pule para a aba seguinte, Define Process;
  4. Na aba Define Process clique no ícone de mais azul que fica na seção Process Actions. Vai se abrir um menu: escolha Get Data From e depois Pentaho Data Integration;
  5. Usando a Figura 1 como guia, preencha:
    1. Name: não precisa mudar nada;
    2. Input Section: Transformation File deve apontar para a transformação (preencha com solution:le_log_biserver.ktr ou use o botão Browse – mas ele nunca funciona comigo…). Depois digite em Transformation Step o nome do passo que o BI Server deve drenar para receber as linhas lidas pela transformação, que é Saida;
    3. Output Section: preencha apenas o campo Output Rows Name com resultado, que é um nome da variável para receber as linhas drenadas da transformação;
  6. Para “imprimir” o que foi lido, adicione a variável resultado à seção Process Outputs (basta clicar no ícone de mais azul e selecioná-la).
Figura 1: configurando a execução de uma transformação no PDS. (Clique para tamanho natural.)
Figura 1: configurando a execução de uma transformação no PDS. (Clique para tamanho natural.)

E está pronto. Salve a XAction, mude para o BI Server, faça login, depois um refresh do repositório. A Xaction deve aparecer – execute-a com um duplo clique. Se tudo deu certo você vai ver o mesmo resultado do post anterior, feito com PRD, mas agora sem a “cara” de um relatório (Figura 2.)

Figura 2: exibindo o log do BI Server com XAction e transformação. (Clique para tamanho natural.)
Figura 2: exibindo o log do BI Server com XAction e transformação. (Clique para tamanho natural.)

Como da outra vez você pode baixar o pacote no site do Open BI Solutions: https://sourceforge.net/projects/openbisolutions/files/Logs/.

Até a próxima!

Acesso ao Log do BI Server, Quick & Dirt

Qualquer desenvolvedor de soluções com o BI Server precisa ter acesso ao(s) log(s). Na maioria das empresas os desenvolvedores simplesmente têm acesso direto ao BI Server e podem examinar os arquivos de log diretamente. Em outras empresas, porém, isso não é possível – não me pergunte porquê, mas existem empresas nas quais o desenvolvedor é proibido de acessar o ambiente de desenvolvimento. De produção, então, nem pensar!

Gerson Tessler, meu colega de trabalho e amigo, que mexe com Pentaho desde 2008, deu uma solução genial para esses desenvolvedores desafortunados: usar o próprio BI Server para examinar qualquer log. Fácil, simples, óbvio – a marca da genialidade!

Vamos fazer como um laboratório:

  1. Monte um BI Server e remova as pastas de demonstração;
  2. Crie uma pasta vazia. Como eu sempre uso a Beltrano S/A para tudo, minha pasta se chamará Beltrano;
  3. Abra o PDI e crie a transformação da Figura 1 (adicione um passo Text File Input e um Dummy, ligando o primeiro ao segundo):

    Figura 1: Layout de passos da transformação.
    Figura 1: Layout de passos da transformação. (Clique para tamanho normal.)
  4. Configure o Text File Input:
    1. Insira ${Internal.Transformation.Filename.Directory}/../../tomcat/logs/pentaho.log no campo File/Directory da seção Selected Files, aba File (Figura 2);

      Figura 2: configurando o arquivo. (Clique para tamanho normal.)
      Figura 2: Configurando o arquivo. (Clique para tamanho normal.)
    2. Aba Content (Figura 3), campo Filetype: CSV; campo Separator: §§§ (ou qualquer coisa que dificilmente aparecerá no log); desligar o checkbox Header; Format Unix (Linux e Mac) ou DOS (Windows); Encoding UTF-8;

      Figura 3: configurando a interpretação do arquivo. (Clique para tamanho normal.)
      Figura 3: Configurando a interpretação do arquivo. (Clique para tamanho normal.)
    3. Aba Fields (ignore todas as outras): registre um campo chamado log_line como Type String, deixando todos os outros parâmetros vazios.
  5. Dummy: apenas mude o nome para Saida (sem acento);
  6. Salve dentro da pasta Beltrano, em ./biserver-ce/pentaho-solutions/Beltrano.

Essa transformação vai ler o arquivo de log independentemente de onde estiver o BI Server, porque se refere ao arquivo de maneira relativa, apontando para o ./tomcat/logs a partir de dois diretórios acima do pentaho-solutions /beltrano. (Nota: talvez no Windows seja preciso reverter a barra, mas teste antes.)

Segunda parte: executando a transformação a partir do BI Server, para o qual temos duas opções. A primeira e mais trivial é usando um relatório criado com o PRD:

  1. Rode o PRD e crie um novo relatório e salve-o (já, senão pode dar erro) na mesma pasta da transformação, ou seja, na Beltrano dentro do BI Server;
  2. Clique com o botão da direita no cilindro amarelo (aba Data) e selecione Pentaho Data Integration;
  3. Na janela que se abrirá (Figura 4) clique em Browse e selecione a transformação – que deve estar no mesmo diretório;

    Selecionando uma transformação como fonte do relatório.
    Figura 4: Selecionando uma transformação como fonte do relatório.
  4. No que a janela de seleção se fechar, os passos da transformação serão listados. Clique em Saida e depois em Ok;
  5. Voltamos à lona, para construir o relatório (Figura 5). Sem estresse: arraste o campo log_field para a banda Details;

    Posicionando e configurando o campo. (Clique para tamanho natural.)
    Figura 5: Posicionando e configurando o campo. (Clique para tamanho natural.)
  6. Posicione o campo no extremo esquedo e alargue-o até ocupar a folha inteira;
  7. Com o campo selecionado, mude para a aba Structure, sub-aba Style. Localize a propriedade Dynamic Height e sete-a para TRUE;
  8. Para ficar bonito, acesse o menu File, opção Report Properties (e aba Descriptio na janela que se abrir) e preencha o título (algo como “Log”, mas sem as aspas… ;-) );
  9. Salve, faça login no BI Server, comande um refresh e execute o relatório.

Se tudo deu certo vai aparecer a Figura 6:

Examinando o log do BI Server via relatório dentro do BI Server.
Examinando o log do BI Server via relatório dentro do BI Server.

Veja que estamos acessando um dos arquivos do diretório de logs do BI Server e que podemos usar o mesmo método para qualquer arquivo. Não apenas isso, mas como estamos usando uma transformação em um relatótio, podemos combinar as capacidades dos dois e adicionar (por exemplo), filtros por data e hora, horizonte (quanto do log mostrar) etc.

A outra maneira é rodando uma XAction, que eu vou publicar em em 15/8/13. Até lá você pode obter o pacote relatório + transformação no site de projetos de BI livres: https://sourceforge.net/projects/openbisolutions/files/Logs/. Basta descompactar o arquivo dentro do seu pentaho-solutions/Beltrano (ou qualquer outra pasta) e atualizar seu BI Server. Deixe um comentário aqui se tiver algum problema.

Meet PUMA!

O legal do Software Livre é isso: quando você menos espera, seu colega de trabalho é um gênio e cria uma coisa nova, que você sempre precisou mas nunca soube!

https://github.com/dguiarj/puma/

O PUMA – Pentaho Unified Management Archiver – é um aplicativo simples e muito prático. Ele te permite se conectar a um BI Server e subir qualquer arquivo para dentro dele. Ele é totalmente baseado nas APIs da Pentaho e por isso é 100% compatível.

O projeto, como dizem, está em early alfa, mas já funciona – eu vi o David (o tal dguiarj) usando para subir KTRs no BI Server e babei. Se você quiser ajudar, vá ao GitHub e contate-o – ele com certeza precisa de toda ajuda que puder ter.

É isso! Roarh!! :-D Kkkkkk

Navegador OLAP OpenI

O jPivot é feio de doer – é o que dizem. Particularmente, eu aprendi a me virar com ele, e o acho até que bem funcional. É pouco prático para certas operações, como remover o total da coluna ou filtrar nas dimensões. Mas não é de todo ruim.

Quando saiu o Pentaho Analyser, o jogo mudou: o Pentaho passou a ter um navegador OLAP de primeira, com muito da parafernália típica das ferramentas comerciais, como o MicroStrategy. Ainda não tem tudo, e nem sei se realmente precisa, mas tem muitas coisas.

Pouco depois a comunidade se moveu, e lançou o Pentaho Analysis Tool, renomeada para Saiku mais tarde. De novo, esse cara mudou o jogo para a versão comunitária do BI Server (o Analyser é proprietário, e só vem no BI Server Enterprise Edition.) O BI Server CE passou a contar com uma interface OLAP moderna, prática, intuitiva, fácil de usar. O Saiku ainda tem a impressionante vantagem de poder usar metamodelos e esquemas Mondrian na mesma interface, sem diferenciar a – é tudo fonte para relatórios.

Mesmo assim, eu não conseguia achar nem um nem outro boas soluções. Eram bonitos e práticos, ok, mas ainda faltava alguma coisa. OLAP não é relatório. Tentar transformar uma coisa elaborada, sutil, sofisticada como OLAP em um relatório plano era descartar uma das coisas mais valiosas do OLAP – a hierarquia.

“Mano cê pirou,” dirão vocês, porque tanto o Saiku quanto o PA usam as hierarquias e permitem drill down e roll up nelas. O Kimball mesmo, na primeira edição do DW Toolkit, explica que drill down é a operação de adicionar mais colunas ao relatório, aumentando o nível de detalhe exibido, e que roll up é remover colunas, agregando mais os dados. Por isso podem me chamar de Pairulito e dizer que sou antiquado, mas dispor de um botão que, clicado, expande o nível hierárquico seguinte – ou seja, faz um drill down – é muito bacana.

Navegador OLAP OpenI, planilha.
Navegador OLAP OpenI, planilha.

E é aqui que entra o OpenI. Ele é um cruzamento do jPivot com o Saiku. Ele mantém a navegação por botões, com todas as funcionalidades do jPivot, mais toda conveniência do Saiku (e do Analyser, porque não?) Ele ainda não dispõe de coisas como a janela de seleção de membros para filtrar dimensão, nem as opções de contexto (botão direito do mouse) na célula, como o Keep only X ou Remove X. Quem sabe esse tipo de evolução esteja nos planos da OpenI.org? (Eu vou verificar, de qualquer forma.)

Navegador OLAP OpenI, aba de gráfico.
Navegador OLAP OpenI, aba de gráfico.

Então é isso: o OpenI é uma nova-velha interface OLAP, que tem a vantagem de navegaro o OLAP de maneira mais olap-ística e menos relatorial, menos feio que o jPivot e com quase tantos recursos quanto o Saiku.

Interface para o HSQLDB

Essa é fantástica! Um ex-aluno meu, e grande amigo, Rômulo Souza descobriu uma interface gráfica para o HSQLDB dentro do BI Server:

  • Abra um terminal (DOS prompt no Windows)
  • Mude para o diretório do HSQLDB: ./biserver-ce/data/lib
  • Comande:
java -cp hsqldb-1.8.0.jar org.hsqldb.util.DatabaseManagerSwing --noexit

A seguinte janela vai se abrir:

Essas janelas se abrirão ao rodar o comando.
Essas janelas se abrirão ao rodar o comando.

Preencha os campos da janela Connect com os seguintes dados:

  • Setting name: Pentaho Hibernate
  • URL: jdbc:hsqldb:hsql://localhost:9001/hibernate
  • User: hibuser
  • Senha: password

A janela de conexão deve ficar assim:

Janela de conexão com o HSQLDB.
Janela de conexão com o HSQLDB.

Clique em Ok, e a janela de exploração do banco de dados aparecerá. Você pode examinar o layout das tabelas e executar comandos SQL diretamente, como por exemplo:

Exemplo de layout de tabela e SQL.
Exemplo de layout de tabela e SQL.

É isso! Grande dica, Rômulo!

Pentaho lançou BI Server 4.8

A Pentaho acabou de lançar o BI Server 4.8. Por enquanto só a versão EE, que vai ser disponibilizada como download de teste e para os clientes. Depois as novidades vão porejar para o SourceForge, onde será colocado a CE.

Novidades

Pentaho para iPad! Chamado de Pentaho Mobile, é a uma versão da interface do BI Server, que reconhece que está sendo acessado por iPad e oferece uma gama de novos recursos. Além disso, essa extensão da plataforma a torna mais fácil de ser embebida em outros aplicativos e plataformas.

Grande dado! A parte de Big Data da suite ganhou uma funcionalidade nova: Instaview. Segundo o site da Pentaho, com ele você expõe sua “base” Big Data com muito pouco esforço. Ainda não consegui testar, mas pelo que deu para ver, é uma mistura de PDI com BI Server (não sei se web ou não – me pareceu local) no qual você importa seus dados e sai explorando. Muito parecido com o PDI + Agile plugin, mas com uma aparência dolorosamente reminiscente à Apple…

Será que o Instaview é a famosa unificação de ferramentas de desenvolvimento que a Pentaho vem buscando? Com certeza não é a união metamodelo + esquema OLAP, pois o Brian disse que ainda se vão alguns anos até lá.

Em Geral

Nenhuma grande mudança de aparência no BI Server, mas com certeza muitas melhorias internas. Acabei de baixar e vou testar. Stay tunned!

Acesse o site da Pentaho para saber mais.

EE = CE + Plugins Proprietários

Pois é isso mesmo! Eu estou assistindo uma palestra da Pentaho Corporation onde foi perguntado se o cliente tem acesso ao código-fonte do BI Server. A resposta foi exatamente isso:

O BI Server CE e EE tem exatamente a mesma base de código. O EE tem plugins para melhorar a interface e dar mais produtividade à administração. De resto, é tudo igual.

Ou seja, agora é oficial: fora os plugins proprietários, 100% do restante é igual à versão CE. Case closed!