Outro dia um grande amigo meu me mandou um e-mail intitulado “consulta rápida Pentaho:”

Deixa eu abusar um pouco de sua boa vontade? Estou com uma necessidade interessante. Tenho meu servidor na Amazon hospedando os blogs e outros trecos. Desde setembro, tenho feito backup dos logs do Apache e pensei em começar a dar um destino útil para eles. (…) E eu comecei a pensar: seria interessante um cubo OLAP para fazer “drill down” de forma mais dinâmica. Então, eu precisava transformar os logs em uma tabela de fatos e fazer as dimensões a partir da URL, código de erro, etc.

Exatamente o tipo de desafio que eu gosto: BI, Pentaho e idéia nova! Na hora pulei dentro e começamos a trabalhar naquela mesma noite: ele setou um repositório Git, instalou um Postgres, um BI Server 4.0 e o PDI 4.2 na máquina Amazon dele. O truque todo era converter as linhas do log em colunas e tratá-las.

Na noite seguinte já tínhamos um protótipo: uma transformação que carregava uma tabelona com todos os atributos de um um modelo dimensional, além de algumas métricas. Mapeei isso num esquema Mondrian, publiquei e fiz um teste. Ele aprovou o protótipo:

Primeira versão do cubo Apache BI

Tínhamos um esquema Mondrian que permitia examinar a quantidade de bytes transferidos por tipo de conexão.

É por isso que eu acredito no Scrum: foi ai que a mágica aconteceu. Quando ele viu o que estava sendo feito e como a informação poderia ser apresentada, ele entendeu como pedir o que precisava. Ele montou um Jira, abriu uma conta para mim e eu registrei as histórias, dividindo as tarefas entre nós dois (ele aprende absurdamente rápido.) Em mais alguns dias tínhamos um projeto inteiro em andamento:

Backlog de produto, Apache BI, Sprint 1

A essa altura, o cubo monolítico evoluiu para um modelo dimensional mais completo:

Modelo Dimensional Apache BI v1.0

Com esse modelo podemos estudar os acessos por data, hora e agente do usuário. Como dá para perceber pelas colunas da fato (tabela do centro), ainda estamos evoluindo o tabelão. Claramente há uma dimensão junk (versão http com código de retorno) e talvez o cliente ainda descubra outras dimensões ou métricas.

Com esse modelo funcional, instalei o plugin do Saiku no BI Server e as visões OLAP ficaram mais bacanas:

Visão OLAP do cubo Apache BI
A visão anterior como um gráfico de barras.

Situação Atual & Próximos Passos

Ainda estamos andando com o projeto, mas já temos um futuro para ele. Assim que ficar completo, vamos macetear sua adaptação a qualquer Apache e soltá-lo com um projeto Open Source – provavelmente no SourceForge. Esse projeto vai ser a plataforma de lançamento de uma idéia que eu estou tentando tornar real já há algum tempo, que é…

Nah-nah!! Esperem e verão! :-)

Até a próxima!

02/04/12 – Atualização: o Edu colocou os arquivos em um diretório, de modo que vou passar para a próxima etapa: lê arquivos e fazer carga diferencial. Semana que vem terá post novo! Boa semana a todos!

2 comentários sobre “Apache BI

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s