Melhor maneira de acelerar o acesso a dois data warehouses?

9

Estou embarcando em um projeto de inteligência de negócios que exigirá abstrair o acesso a dois data warehouses existentes. Preciso projetar uma arquitetura de aplicativo para permitir que a inteligência de negócios de autoatendimento junte os dados e forneça uma visão única dos dois armazéns existentes. Eu vim com algo assim:

insira a descrição da imagem aqui

Estou lutando com a parte de virtualização / cache e me perguntando se há algum padrão de design corporativo para resolver meu problema. Uma arquitetura como essa funcionaria para abstrair esquemas em estrela em data warehouses? Estou analisando produtos como o Red Hat JBoss Data Virtualization e o Red Hat JBoss Data Grid (entre outros).

No momento, não estamos usando o Hibernate e meu entendimento das grades de dados é que elas são armazenamentos de valores-chave ou objetos e, portanto, inadequados para armazenar em cache um modelo relacional. Devo também mencionar que estamos interessados ​​em usar produtos de fornecedores para a parte do painel de autoatendimento, mas podemos acabar fazendo uma construção personalizada nessa área se os fornecedores não puderem nos oferecer tudo o que queremos.

Mark Allison
fonte
2
Só encontrei este livro, que pode ser bom para mim amazon.com/Data-Virtualization-Business-Intelligence-Systems/dp/...
Mark Allison
2
Não sei se você forneceu informações suficientes sobre o seu projeto para aconselhar sobre arquitetura.
Vladislav Rastrusny
Por que os dados relacionais não podem ser armazenados em cache em um armazenamento de valores-chave {key: pk, value: the_rest_of_the_row}? Você provavelmente também desejará armazenar em cache os metadados das tabelas.
9000
2
Qual é o problema com a abordagem clássica?
NoChance

Respostas:

1

Não há uma quantidade enorme de detalhes sobre o que você está tentando obter aqui, mas pelo que você descreveu, parece que você poderia fazer com um data mart para abstrair os repositórios principais e expor um subconjunto mínimo de dados a atender o aplicativo.

Mesmo que você possa criar uma camada de aplicativo decente, é provável que encontre problemas de desempenho devido à carga em um (ou ambos) dos bancos de dados do repositório. O benefício da abordagem de mercado é que o banco de dados com o qual o aplicativo fala é de alto desempenho. As atualizações são realizadas nos bancos de dados do repositório nos bastidores e são enviadas através da base que você achar melhor.

Um benefício adicional que você também tem apenas um fornecedor de banco de dados a considerar em sua camada de aplicativo.

Robbie Dee
fonte