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:
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.
fonte
{key: pk, value: the_rest_of_the_row}
? Você provavelmente também desejará armazenar em cache os metadados das tabelas.Respostas:
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.
fonte