Trabalho para um grupo de concessionárias, onde rodo um ERP.
Cada concessionária tem o seu banco temos 11 concessionárias ou seja
11 BDs alimentados de forma independente. Hoje preciso desenvolver uma
solução onde eu consiga tirar informação de estoque disponível de veículos de cada
BD e faço um relatório mostrando dos os veículos disponível. Qual é melhor forma
que vcs acham que deve está implementando para resolver esse problema?
Os bases são exatamente iguais pois roda o mesmo ERP.
Hoje agente faz esse trabalho através de planilhas, onde cada concessionária
envia seu estoque em um xls para administração da holding, onde temos
uma pessoa que faz essa integração tbem em uma planilha.
Seria exatamente uma implementação de BI, estou estudando a possibilidade
de implementar um data warehouse. Mais o que vcs acham?
Perguntei sobre os servidores para saber se eles são geograficamente distribuidos, se são de fornecedores diferentes, enfim, são servidores distintos mas como não é o caso, vejo que não vai precisar de um ETL, facilitando o desenvolvimento do seu “BI”.
você irá apenas mudar a string de conexão com o banco;
ou se os BD’s estiverem no mesmo servidor usar o sistema de hierarquia, exemplo do mysql, o sql “banco1.tbX.CampoY”;
Essas foram só as primeiras coisas que me vieram a mente, o que vc usar vai pedender das estrutura que deseja montar.
HJ eu trabalho com um sistema que designa uma Session do hibernate por banco para cada BD de um cliente, e tem um legado que tinha uma Fabrica de SQL que monta as string conforme o cliente… e assim vai.
No SQL-Server você pode ter um User que tem acesso a todas essas 11 bases, o que permite a sua aplicação utilizar uma única conexão.
Falta apenas criar algum mecanismo em nível de aplicação que informa qual banco de dados você estará usando na criação de um cubo, uma dimensão ou de uma simples consulta.
select * from BANCO_CONCESSIONARIA_SP.TABELA_VEICULO SP where SP.DISPONIVEL = 'S'
union all
select * from BANCO_CONCESSIONARIA_MG.TABELA_VEICULO MG where MG.DISPONIVEL = 'S'
union all
select * from BANCO_CONCESSIONARIA_DF.TABELA_VEICULO DF where DF.DISPONIVEL = 'S'
Existe a possibilidade de fazer relacionamento entre tabelas de bancos de dados diferentes,
estou perguntando isso pois vou ter q criar uma nova base de dados para essa aplicação
ontem terá tabelas com informações que complementa as do ERP gerando a necessidade
de um relacionamento.
Não conhecia e nem havia ouvido falar desse recurso, estou pesquisando na net mais vejo
que tem pouco material aprofundando no assunto. Fiz alguns testes aqui mais sem sucesso,
tenho algumas duvidas na criação.
Na criação do linked server no meu caso entre bases propria do sql server tenho q escolher
o tipo de servidor onde vou conectar(Server type) então estou SQL Server ai vem uma duvida
no campo Linked Server eu coloco o nome do servidor que desejo conectar? Ou pode ser um
nome qualquer? Necessito de fazer alguma configuração?
Consegui fazer os relacionamento sem criar um linked server. O sql server estava reclamando que as bases
estava com colletion diferente, mas entre bases com a codificação igual o relacionamento funfo legal. Pelo que eu entendi do linked server ele é util para bases em servidores diferentes ou sgbds diferentes. Muito obrigado!