Criando Cubos OLAP para PCI
O básico do básico é:
- Crie um XML mapeando o banco de dados em um cubo.
- Crie uma fonte de dados PCI.
- Crie um XAction para chamar esse cubo de dentro da PCI.
- Grave cada um em seu respectivo diretório.
- Restarte a PCI.
OBSERVAÇÃO: esse artigo ainda está bemn crú. Seu maior propósito é documentar um procedimento oculto na criação de fonte de dados para PCI, que eu não encontrei na wiki internacional. Com exceção disso, registrado no tópico
Criando a Fonte de Dados JNDI, quase todo resto é referência à wiki internacional e precisa ser trazida e traduzida para cá.
Mapeando o BD em um Cubo
Há dois programas que criam cubos:
- SchemaWorkbench: mais completo, mas não publica o cubo na PCI.
- CubeDesigner: prático para quem está aprendendo, pois além de criar o cubo ainda publica na PCI. Não permite editar um cubo já criado, e dá menos opções à cada item.
Se é a primeira vez que você vai mapear um cubo OLAP, use o
CubeDesigner. Depois de criado e publicado (e funcionando), use o
SchemaWorkbench para editar o XML.
Gravando na PCI
Tendo seguido o tutorial do
CubeDesigner, o cubo vai direto para a PCI. Se você optou por salvar o esquema e depois movê-lo para a PCI, faça o seguinte:
- Ache o esquema que você criou.
- Copie-o para a pasta da solução Pentaho de sua escolha (clique aqui? para ver como criar uma)
- Renomeie o arquivo de destino para terminar com mondrian.xml.
Por exemplo, se seu esquema chama-se esquema1.xml, ele deverá chamar-se esquema1.mondrian.xml na pasta de destino.
Criando a Fonte de Dados JNDI
Sem muito tempo para refinar:
link na wiki internacional mostrando onde e como criar esse arquivo.
Gravando na PCI
Veja o link acima. De maneira geral, porém, basta gravar seu arquivo JNDI no diretório /pci/server/default/deploy, e renomeá-la para
-ds.xml. Por exemplo, se seu JNDI chama-se MeuJNDI?.xml, ele deverá chamar-se MeuJNDI?-ds.xml na pasta de destino.
Acontece que eles não contam tudo: para que a fonte de dados esteja disponível, não basta existir nesse diretório e ter esse nome. É preciso haver referência à ela em mais dois arquivos XML, e ambos ficam no diretório \pci\jboss\server\default\deploy\pentaho.war\WEB-INF:
O jboss-web.xml é um arquivo pequeno, e contém referências à recursos (resource references) da aplicação. Já o web.xml contém várias definições da PCI, incluindo o IP a qual deve responder e a pasta-raiz de soluções. No final dele, porém, existe a mesma lista de referências a recursos adicionais. É nessa seção que precisa ser incluída uma descrição da fonte de dados JNDI, como um recurso adicional.
Por exemplo, para a fonte de dados MeuJNDI?.xml, você precisaria adicionar a seguinte tag XML ao final dos dois arquivos. Para o web.xml:
<resource-ref>
<description>meujndi</description>
<res-ref-name>jdbc/meujndi</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
Para o jboss-web.xml:
<resource-ref>
<res-ref-name>jdbc/meujndi</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<jndi-name>java:/meujndi</jndi-name>
</resource-ref>
Preste atenção às últimas linhas de cada arquivo, pois elas contém o fecho de uma tag global, que é aberta muito antes (em geral no início de cada documento).
Por exemplo, esse é o final do meu web.xml:
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
Que é quase idêntico ao final do meu jboss-web.xml:
<jndi-name>java:/meujndi</jndi-name>
</resource-ref>
</jboss-web>
Criando o XAction
Baixe o Pentaho Design Studio e [[http://wiki.pentaho.com/display/studio/1.+Installation][instale-o].
Abra-o clicando no .exe (quem sabe como faz em Linux?) Crie um novo projeto e associe-o à pasta raiz da PCI. Navegue até a pasta onde você gravou o esquema e clique com o botão da direita sobre a pasta. Peça um novo objeto de BI.
Sem tempo agora: siga a segunda parte de [http://wiki.pentaho.com/display/COM/Evaluating+Pentaho+Analysis].
Gravando na PCI
Se você configurou o DesignStudio? corretamente, ao salvar o XAction já o fez no lugar correto.