Inquiridor
Gerando um Setup para o Analysis Services e Integration Services

Pergunta
-
Pessoal,
Sou iniciante nessa área de BI. Já entendo os conceitos e teorias, mas estou em um projeto que ja existe os projeto Analysis services e o Integration services, porem esse mesmo projeto é instalado em uma penca de clientes e toda vez que tenho que instalar ou fazer uma atualizacao tenho que entrar em cada projeto e alterar manualmente a string de conexao e dar um deploy em cada cliente. Queria simplificar essa tarefa apenas gerando um setup e delegando a tarefa de instalacao para os clientes. Com Web Application é bem simples, basta gerar um wizard setup e boas. E agora com o Analysis e Integration? como eu faria isso? Tem como? Alguma sugestão de tutoriais que exemplifique a utilizacao dessas ferramentas na prática? porque até agora só exemplo besta das duas ferramentas separadas..
Abs a todos!
Wladiston Paiva - @wladiston - Microsoft MCTS, MTA
Todas as Respostas
-
Wladiston, boa tarde.
Para este caso vc poderá utilizar uma shared data source.
Vc pode incluir todos os seus DTSx desenvolvidos no SSIS em um único projeto e desta forma compartilhar uma única conexão com todos os pacotes. Desta forma, toda vez que for implementar o projeto SSIS no cliente, vc terá que alterar apenas um lugar as conexões de servidor e banco.
Uma outra alternativa seria utilizar um XML com os valores da conexão e configurar os pacotes para ler este XML, desta forma vc terá que alterar apenas o XML para configurar todos os pacotes.
Abs.
Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
- Sugerido como Resposta Junior Galvão - MVPMVP terça-feira, 14 de abril de 2020 13:47
-
Quanto ao projeto SSAS não vejo problemas, pois é feita apenas uma única alteração quando se faz necessário realizar um deploy em outro servidor. Vc precisa alterar apenaso data source para executar o deploy com sucesso.
Abs
Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
-
Então, na verdade o grande problema é ainda depender de ter que abrir os projetos para cada instalação/atualizacao.
Deixa eu explicar melhor a minha necessidade.
Hoje tenho um software que é dividido em varios módulos, cada módulo é responsável por controlar sua versão e instalar sua versao nos clientes e cada equipe é responsável pelo seu módulo. Porem na maioria das veses, pelo menos para o meu módulo de BI, a instalação é algo complexo até pra gente que vai no cliente instalar. Queria simplicar essa instalação o máximo que puder e tornar algo fácil suficiente que o próprio cliente com a área técnica dele consegue instalar sem a necessidade de ter que ir um dos desenvovledores até o cliente.
Então estava pensando em criar um setup (.msi) que instale todo o módulo na base do next->next->finish. Para isso não poderei contar em abrir os projetos e alterar algo pra cada um deles. Estou querendo saber se para o projeto SSAS existe uma forma de gerar um package de instalação e deixar as configurações de conexão em um xml ou no registro do windows.
Mas a sua sugestão é boa, só não sei como eu ainda faria pra dar um deploy do SSAS atraves de um setup.
Abs!
Wladiston Paiva - @wladiston - Microsoft MCTS, MTA
-
Achei um link aqui que parece ser o que preciso:
http://andrewdenhertog.com/analysis-services/analysis-services-projects-deploying-from-within-an-msi/
Vou testar aqui e posto aqui.
Wladiston Paiva - @wladiston - Microsoft MCTS, MTA
- Sugerido como Resposta Junior Galvão - MVPMVP terça-feira, 14 de abril de 2020 13:47
-
Se eu usar os bancos de stage e dw dettachados em uma pasta do meu sistema, e fizer a configuração para o SSIS, SSAS e SSRS conectarem a partir desse banco dettachado. Eu teria alguma desvantagem em relação aos bancos attachados? Assim eu poderia criar um setup e só copiaria os bancos já com os deploys... o que acha?
Wladiston Paiva - @wladiston - Microsoft MCTS, MTA
-
Eduardo,
Mas como um base desanexada poderia ser utilizado, pois mecanismo de acesso os dados estão desvinculado da sua instância.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
-
Eduardo,
Mas como um base desanexada poderia ser utilizado, pois mecanismo de acesso os dados estão desvinculado da sua instância.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
Imagino que você quiz dizer Wladiston...
Bem, colocando a instancia na connectionstring.
Exemplo:
Server=.\SQLExpress;AttachDbFilename=c:\asd\qwe\mydbfile.mdf;Database=dbname; Trusted_Connection=Yes;
Daria certo? é uma dúvida... para aplicações web e winform, isso funciona bem... agora para esses ferramentas malucas de SSRS SSAS e SSIS não sei... gostaria de saber!
Wladiston Paiva - @wladiston - Microsoft MCTS, MTA
-
Wladiston,
Isso me desculpe, então, foi o que eu pensei, passando na conection string o modo de arquivo de banco de dados anexado.
Sim desta forma daria certo sim.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
-
Mas não teria nenhum contra? tipo perda de desempenho e bla bla bla...
Estou querendo dar uma simplificada boa no trabalho aqui..
Só pra ter uma noção, a instalação é feita da seguinte forma:
- Cria os bancos de dados nos servidores que o cliente escolheu com os nomes que ele escolheu
- Executa os scripts de criação de banco
- Abre o VS e configura os datasources do projeto SSIS e então dá um deploy
- Abre o VS e configura os datasources do projeto SSAS e então dá um deploy
- Abre o VS e configura os datasources e target serve do projeto SSRS 1 e então dá um deploy
- Abre o VS e configura os datasources e target serve do projeto SSRS 2 e então dá um deploy
- Executa o instalador do site
- Configura o site para o endereço do SSRS publicados
Bem... Eu sou um adepto da filosofia KISS(keep it simple, stupid)... e isso tem me tirado o sono!
O que poderia fazer para simplificar esse trabalho? Uma das coisas que pensei era usar o banco como detachado e excluir a possibilidade do cliente escolher o nomesinho do banco e etc e tals... já simplificaria bastante as instalações, mas ainda sim seria complicada.
Wladiston Paiva - @wladiston - Microsoft MCTS, MTA
-
-
Wladiston, boa tarde.
Do passo 1 ao passo 6 vc pode utilizar um único pacote SSIS para processamento de todos estes items. Segue uma breve explicação do que vc deve fazer:
1 - Para criação dos bancos, tabelas e usuários, vc pode utilizar o próprio script T-SQL para criação. Desta forma, vc cria um pacote Execute SQL Task do SSIS automalizado, lendo uma varíavel global que conterá o nome da instância SQL.
2 - Para criação dos datamart´s, cubos e roles, vc pode criar um script XMLA do datamart. Para faze-lo clique com o botão direito no datamart --> Script Database As -->Create To --> New query Editor window. Salve o arquivo XMLA. Vc deverá utilizar o pacote Analysis Services Execute DDL Task para criar o datamart no servidor indicado. Para setar o nome do servidor SSAS dinamicamente, vc poderá utilizar a mesma variável global do processo anterior, caso o nome da instância SSAS seja o mesmo nome da instância SQL Engine.
3 - Para dar o deploy dos relatórios SSRS dentro do SSIS vc deverá criar um script RSS em VB que estará definido todos os relatórios que deseja dar o deploy no servidor reporting server. Após isto vc deverá criar um arquivo .BAT ou .CMD com o seguinte comando:"rs i MyRSS.rss -s http://localhost/reportserver" , onde MyRss.rss é o script VB contendo todos os relatórios que deverão ser implementados. Após isto vc adiciona no seu projeto SSIS o Execute Process Task chamando este arquivo .BAT ou .CMD. Salve o DTSx criado como "File System".
Para maiores detalhes acesse: http://www.sqlservercentral.com/articles/Administration/2967/
Vc poderá chamar este pacote de duas formas: Ou via executável, implementando uma simples programação chamando este DTSx, ou pelo Execute Package Utility se tiver instalado na máquina que executará o processo.
Desta forma vc automatizará 90% do seu processo atual, tudo dentro de um único pacote SSIS.
Quanto ao passo 7 é bem específico da plataforma do qual vc desenvolveu, mas acredito que seja possível executar este pacote a partir do SSIS. Dê uma pesquisada sobre isto.
Quanto ao passo 8, a ferramenta de desenvolvimento que vc utiliza deve ter alguma opção que passe um parâmetro para o pacote de instalação. Desta forma vc cria um arquivo .INI que no momento da instalação vc vai apenas alterar este arquivo .INI com o novo nome do servidor de relatórios. O pacote de instalação lerá este arquivo .INI no momento da instalação e o mesmo já instalará o seu projeto com as novas configurações.
Espero ter ajudado.
Abs.
Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
- Sugerido como Resposta Junior Galvão - MVPMVP terça-feira, 14 de abril de 2020 13:48
-
Eduardo G. Pereira,
Eduardo G. Pereira
Partner
2.825 Pontos830Realizações recentes.Respondedor de fóruns IIIRespondedor de código IIRespondedor de código IVou testar e posto aqui. Mas creio que é uma ótima solução para simplicicar o trabalho.
Obrigado!
Wladiston Paiva - @wladiston - Microsoft MCTS, MTA