BI em Java, alguém conhece?

15 respostas
E

Olá pessoal,

BI significa Business Intelligence ou Inteligência Empresarial, ou seja, é um conjunto de ferramentas e tecnologias que servem para prover informação em tempo real para os gestores de uma empresa. Esse conjunto de ferramentas e tecnologias é composto por Banco de Dados, Software e Rede.

Abri este tópico porque estou desenvolvendo um software para trabalhar com BI e queria saber se alguém já desenvolveu aplicações em Java voltadas para BI, para que possamos trocar experiências pois tenho algumas dúvidas.

Valeu galera!
:slight_smile:

15 Respostas

R

Dá uma olhada : http://en.wikipedia.org/wiki/JBI

Talvez ajude

E

raf4ever, valeu cara mas o link que vc me passou não ajudou muito.

Na verdade, JBI é Java Business “Integration”, é uma especificação com regras e padrões para comunicação e negociação entre aplicações, voltada para o uso de componentes e web services.

O BI (Business “Intelligence”) ao qual me refiro não é uma API nem especificação Java, é na verdade um conceito (ou uma idéia) que utiliza DataWarehouse. O software é para visualização das informações geradas pelo DataWarehouse.

Mesmo assim, valeu.

Se alguém já trabalhou com este conceito em Java, postem mensagens.
Valeu!

A

Cara, te aconselho a postar direto tuas dúvidas.
Tenho experiêcnia, e aí?

E

olá agodinhost, vc tem razão, devia ter abordado o problema desde o ínico.

Bem, se vc tem experiência acho que pode me ajudar…

…na verdade minha dúvida não é em relação a um código específico que eu tenha desenvolvido e sim a forma de se trabalhar com o BI para torná-lo mais rápido e eficiente.

O lance é o seguinte, como o BI prega acesso a informação de forma rápida, ou seja, acessar informações estatítsticas de meses ou até anos da empresa em questão de segundos, o SQL para a busca deve ser bem otimizado.

Mas o que fazer se o SQL de consulta já está otimizado e o processo ainda está lento. Será que é viável carregar toda a informação em memória, em alguma estrutura do Java? E se esse processo for web, qual a maneira de torna isso mais rápido através da linguagem Java?

Agodinhost, se vc já desenvolveu algo em Java voltado para este conceito do BI e puder compartilhar como fez suas buscas e quais estruturas usou seria legal.

Valeu.

K

Oi,

Já participei de um projeto utilizando BI, mas com o colega rdgc disse, também utilizamos uma ferramenta específica para toda a parte de BI, e utilizamos Java para ler as informações e apresenta-la para o cliente.

No nosso caso utilizamos a ferramenta “Microsoft BI” e o resultado do processamente era disponibilizado em Views no banco de dados e o código Java somente lia essas informações.
Era possível também disponibilizar essas informações em XML.

A

Cara, normalmente vc usa dados históricos de diversos anos - não tenho como dizer se dá pra carregar tudo em memória sem pensar em quantidade e muito menos sem ter noção do seu modelo.

Te adianto que se sua origem de dados for uma base OLAP (um cubo, datawarehouse, datamining, etc) não dá. Esse tipo de otimização que vc está falando é o maior problema em BI. Normalmente a galera modela a tralha toda e só se preocupa em performance no final. Essa abordagem é muito boa pra desenvolvimento de aplicações - não é boa pra BI. Em BI vc deve sim, se preocupar com performance desde o início mas isso fica muito amarrado ao número de versões e dimensões que vc possa vir a ter no seu modelo. De quê adianta um relatório de risco de venda que demora 3 dias pra rodar??? Seu clientes não vão querer esperar, com esse footprint é mais fácil ir pro mercado e consultar especialistas … (fora que quanto maior o tempo de processamente maior são as chances de algo dar errado em meio ao processameto).

Claro que se vc está desenvolvendo uma aplicação isso se torna mais simples, o código é seu, o modelo é seu, está tudo (teoricamente) sob seu controle.

Como otimizar??? Isso tá mais pro lado de banco do quê pra BI em SI. Sua preocupação deve ser com o modelo e ter certeza de que está trabalhando com limites aceitáveis. Só pra simplificar: Se vc está trabalhando num nível de detalhe muito baixo (operacional, no nível de uma nota fiscal - por exemplo) vc terá problemas de performance devido ao volume de informações com as quais vc está trabalhando. Não tem Cristo que resolva isso - isso é um erro comum de modelagem.

A oracle tem cursos muito boms sobre o assunto e um produto (Oracle Discover) muito bacana. Vale a pena baixar e estudar o material que o acompanha. Esse assunto é muito extenso pra um fórum e dá muito pano pra manga.

Woody

A

O BO é maneirinho tb.

Quanto à outra pergunta:
Quais modelos usei? Como fiz minhas buscas?
De novo: otimização de query e banco deve sim ser sua preocupação. Só tome cuidado pois isso, normalmente, muda de banco pra banco.

Mais um exemplo: trabalho muito com Oracle (e um pouco de DB2 e outras tralhas) e no oracle é muito fácil escrever hints pra informar ao banco "como " executar uma dada query. Isso é feito por meio de comentários especiais que são inseridos nas suas querys, esse comentários ajudam o oracle à decidir se deve usar um índice específico, uma forma de pesquisa (full), dentre outras cacas …

Dá pra perceber que, apesar de funcionar, vc pode quebrar a cara né? Isso é uma especificidade do oracle, se vc tentar o mesmo em outro banco babou …

Normalmente temos ajuda de algum dba-baca (:sunglasses:
Ainda assim há limites, não há milagres. Em BI vc sempre está lidando com muita informação e compilando em pequenas respostas. Seus gerentes não querem saber todos os detalhes de todas as vendas de cada uma das lojas (por exemplo). Quer saber qto deu de lucro, qto pagou de imposto e aí vai.

Sua preocupação deve estar então mais focada no modelo.

E

Pessoal, valeu a todos.

Abri este tópico para isso mesmo, captar idéias.

Desenvolver nossa própria aplicação para visualização das informações é uma definição da empresa onde trabalho e não tenho como fugir disto. Tanto que já desenvolvi vários módulos como geração de gráficos usando o JFreeChart, por exemplo. Mesmo assim, vou pesquisar as ferramentas que todos indicaram, algumas eu ainda não conheço e posso aproveitar algumas idéias.

Ah, valeu pelas dicas também. Vou rever todo o meu modelo antes de qualquer coisa.

Valeu galera.
Abraço.

D

Dá uma olhada no JasperIntelligence (JasperAnalysis). Nunca usei, mas ele é um BI.

Até mais!

D

Faltou os links.

Repositório completo.
JasperForge

JasperAnalisys

Até mais!

L

Olá

evandroshx:
Abri este tópico para isso mesmo, captar idéias.

Desenvolver nossa própria aplicação para visualização das informações é uma definição da empresa onde trabalho e não tenho como fugir disto.

Muito bom este tópico. Aprendi bastante com vocês. Pergunto: Vocês vão usar a mesma base de dados ou criarão uma base específica para o BI?

Na única vez que participei um projeto com dataware house, os dados do dia eram consolidados à noite em outra base para consultas do DW. As características do projeto sugeriam isto e não sei se é aplicável ao seu caso.

[]s
Luca

A

Luca:
Vocês vão usar a mesma base de dados ou criarão uma base específica para o BI?
Cuidado: as bases de BI normalmente são grandes (diria gigantes), passíveis de processamento pesado (consolidações, transformações, etc).

Normalmente não é uma boa idéia manter uma base de BI no mesmo schema, instância ou banco em que estão suas aplicações pois isso pode impactar a performance de todo mundo que estiver compartilhando esses recursos.

E

Luca,

na empresa onde trabalho estamos separando a base do BI da base de produção sim, justamente para não atrapalhar a perfomance do sistema que nossos clientes utilizam.

T+

R

Em vez de desenvolver BI em java, já pensou em alguma ferramenta específica?

Minha experiência com BI foi utilizando as ferramentas “Cognos Power Play” e depois “Business Objects”. Eu prefiro trabalhar com o BO, acessando bases em Oracle. Java só era usado no processo de ETL do DataWarehouse.

Em relação a melhora de performance, podem ocorrer várias, desde a ETL, passando pela modelagem do banco e depois o SQL final que vc vai utilizar.

Se for possível, exponha o cenário que vc trabalha.

flw!

R

agodinhost:
Luca:
Vocês vão usar a mesma base de dados ou criarão uma base específica para o BI?
Cuidado: as bases de BI normalmente são grandes (diria gigantes), passíveis de processamento pesado (consolidações, transformações, etc).

Normalmente não é uma boa idéia manter uma base de BI no mesmo schema, instância ou banco em que estão suas aplicações pois isso pode impactar a performance de todo mundo que estiver compartilhando esses recursos.

Mas a vantagem de vc ter uma base específica de BI é vc poder diminuir a quantidade de dados gerada especificando quais infomações que vc necessita pelas consolidações e transformações (ETL - Extract, Transform, Load).

E como vc mesmo disse, não é bom manter as duas bases ‘juntas’, a base de BI deve ser totalmente independente da(s) outra(s).

flw!

Criado 7 de agosto de 2007
Ultima resposta 9 de ago. de 2007
Respostas 15
Participantes 7