4Linux Representa SpagoBI no Brasil

Semana passada estive no FISL’13 e soube que a 4Linux passou a representar o SpagoBI no Brasil. Legal! Ainda que eu seja fã do Pentaho, BI é um jogo de idéias, conceitos e ações – não de ferramentas.

Durante o evento eu fui convidado a participar desse treinamento, o que eu aceitei prontamente (e alegremente, diga-se de passagem ;-) .)

O curso está comecando: Andrea Gioia, instrutor da SpagoBI, já preparou os slides, a turma chegou…

Eu tentei instalar o SpagoBI pela primeira vez em 2007, e não consegui – eu mal havia acertado iniciar a PCI (e precisei de ajuda), que dizer de outro software do mesmo tipo! Enfim, apanhei como cachorro magro. Espero que eu não esteja além de qualquer esperança e, agora com professor, eu consegui aprender! ;-)

Vamos nessa!

Data Mining na Essência

Acabei de receber, pela empresa em que trabalho, o livro Data Mining Techniques, um catatau de 847 páginas (perdeu da apostila do Pentaho Bootcamp!) Como eu sou um cara diligente, comecei pelo prefácio onde li, logo no primeiro parágrafo, o seguinte:

(Os autores) estão convencidos que bons resultados não são determinados pelo fato de o software ser proprietário ou open source, linha de comando ou point-and-click; bons resultados vêm de pensamento criativo e metodologia sólida. (Minha tradução.)

Eu queria ter escrito isso. O mais perto que eu consigo chegar é dizer que Data Mining pode ser feito com papel e caneta, porquê não é a ferramenta, mas a técnica que gera resultados.

O subtítulo do livro é “For Marketing, Sales and Customer Relationship Management.” No capítulo dois ele revisa vários conceitos típicos dessa área, como aquisição e retenção de clientes, recuperação, relacionamentos baseados em assinatura ou em evento etc. Muito bacana!

Se você é da área, já deve conhecer esse livro. Se é, e ainda não o leu, faça de conta que ninguém percebeu, compre e leia rapidinho! ;-)

 

Data Vault Baby Steps

Comecei hoje a tentar aprender Data Vault, a metodologia que promete resolver os principais problemas de modelagem para DW corporativo (EDW.)

A coisa mais notável é que que a maioria das transformações (estou usando o PDI) são muito simples por definição: para carregar hubs eu usei cinco passos – e depois gravei a transformação com outro nome, mudando apenas dois campos (além da tabela de origem.) Para carregar uma tabela de link, usei um pouco mais, mas já posso perceber que essas transformações sempre serão maiores e mais complexas, porque elas precisam descobrir as relações entre os hubs.

A performance de tais transformações são enormes, claro, já que não passa de um processo de ler e gravar. O maior gargalo é o lookup, mas mesmo assim não é tanto, pois as tabelas buscadas (hubs) têm sempre muito poucas colunas, e as chaves são inteiros.

Eu estou carregando dois hubs e um link entre eles:

Carga do hub de serviços

Projetos

Carga do hub de projetos

Link

Carga da tabela de elo (link) entre projeto e serviço.

E o layout das tabelas é sempre o mesmo (feito com Power*Architect):

Modelo de dados do DV até agora.

O próximo passo é criar as (tabelas) satélites: uma para serviço, uma para projeto e uma para o link das duas (acho…)

(Vou traduzir esses nomes! Hub vai ser concentrador, link vai ser elo e satellite, bom, satélite.)

Depois de colocar os links, eu ainda preciso construir um modelo “consultável”, já que o DV não é feito para consulta, mas sim para armazenamento. Esse modelo de consulta pode ser qualquer coisa – de um tabelão a um na terceira forma normal. Como esse modelo é para ser consultado por seres humanos, eu vou adotar um modelo dimensional tradicional.

Muito divertido!! :-)

Please select something for undefined

Quando rodamos um prompt do BI Server 3.8 no Firefox +4 (e em vários outros browsers), ele responde com uma mensagem “please select something for undefined.” A solução para esse caso é relativamente simples:

  1. Com o BI Server parado, abra o arquivo ./biserver-ce/tomcat/webapps/pentaho/js/parameters.js
  2. Procure o trecho if( lastName != null ) {
  3. Altere o código, substituindo as linhas

    if( elements[i].name != lastName ) {
    if( lastName != null ) {
    var ckRtn = checkParams( form, element.type, lastName, gotOne );
    if( ckRtn == 0 ) {
    return null;

    por:

    if( elements[i].name != lastName ) {
    if ( (lastName != null) && (lastName != “”) ) {
    var ckRtn = checkParams( form, element.type, lastName, gotOne );
    if( ckRtn == 0 ) {
    return null;

  4. Salve a mudança e inicie o BI Server.
  5. Abra seu browser e limpe o cache.

Pronto, os prompts criados por XAction deve passar a funcionar normalmente.