Como desenvolvedor .NET, por quais motivos devo preferir pacotes SSIS em vez de escrever código? Temos uma tonelada de pacotes em produção onde trabalho atualmente, e eles são um pesadelo para "escrever" (talvez desenhar?) E manter. Cada pacote parece uma tigela de espaguete multicolorido com scripts C # e VB.NET misturados nos pontos onde as abstrações são interrompidas. Para descobrir o que cada "Execute SQL Task" ou "Foreach Loop" faz, tenho que clicar duas vezes na maldita coisa e navegar por uma árvore de valores literais e expressões, espalhados por várias guias.
Tenho a mente aberta, então gostaria de saber se algum outro bom desenvolvedor acha o SSIS mais produtivo do que apenas escrever algum código. Se você acha o SSIS mais produtivo, diga-me por quê.
fonte
Respostas:
Eu uso o SSIS todos os dias para manter e gerenciar um grande data warehouse e cubo. Trabalho 100% em business intelligence e data warehouse há dois anos. Antes disso, fui desenvolvedor de aplicativos .NET por 10 anos.
O valor do SSIS é como um mecanismo de fluxo de trabalho para mover dados de um local para outro, talvez com alguma transformação limitada e ramificação condicional ao longo do caminho. Se seus pacotes contiverem muitos scripts, sua equipe está usando o SSIS para as tarefas erradas, não está confortável com SQL ou aderiu ao hype. Os pacotes SSIS são muito difíceis de depurar. Os componentes de script são um pesadelo absoluto e devem ser usados apenas para formatação, loop ou como último recurso.
fonte
:)
). Boa resposta, Kevin.Tentei usar o SSIS várias vezes e desisti. IMO, é muito mais fácil fazer tudo o que preciso em C #. O SSIS é muito complexo, tem muitas pegadinhas e simplesmente não vale a pena. É muito melhor gastar mais tempo melhorando as habilidades de C # do que gastando o mesmo tempo aprendendo o SSIS - você obterá muito mais retorno em seu treinamento.
Além disso, encontrar e manter a funcionalidade em uma solução VS é muito mais fácil. O teste de unidade com VS é fácil. Tudo o que preciso fazer é verificar o código-fonte no Subversion e verificar como ele foi carregado. Os pacotes de SSIS de teste de unidade são muito complicados, para dizer o mínimo.
Além disso, havia situações em que o SSIS estava silenciosamente falhando ao preencher algumas colunas em algumas linhas, apenas ignorando-as sem levantar exceções. Passamos muito tempo solucionando problemas e descobrindo o que está acontecendo. O desenvolvimento de uma solução alternativa em C # levou menos de uma hora e funciona sem problemas por dois anos.
fonte
Na minha opinião - o SSIS é apenas para operações ETL e não deve conter nenhuma lógica fora desse escopo.
fonte
Tive a infeliz experiência de trabalhar em um projeto em que achávamos que o SSIS seria uma solução boa o suficiente para agregar e combinar dados de várias fontes. O infeliz é que funcionou muito bem no início, mas depois os requisitos mudaram e (eventualmente) percebemos que era a ferramenta errada.
talvez o estivéssemos apenas usando incorretamente, mas teríamos muita dificuldade se mudássemos nosso esquema e eventualmente reutilizássemos nossas definições ORM do front-end para escrever uma ferramenta personalizada em C # para fazer isso. Como já tínhamos o modelo de dados, isso foi surpreendentemente fácil. Obviamente, YMMV e eu não somos de forma alguma um especialista em SSIS, mas neste caso o SSIS causou muito trabalho duplicado e dores de cabeça quando apenas arregaçar as mangas e 'codificar' foi mais fácil do que o esperado.
Portanto, eu pensaria muito sobre a flexibilidade ao considerar o SSIS.
fonte
O SSIS tem seu lugar, e esse lugar não é uma programação geral ou uma substituição de procedimentos armazenados. Ele vem da escola ETL (Extrair, Transformar e Carregar) e é aí que está sua força.
O nome antigo (DTS, Data Transformation Services) e o novo nome (SSIS, Sql Server Integration Services) deixam claro que é um serviço (ou conjunto de serviços) projetado para manipular dados para integrar o banco de dados SQL Server em processos maiores.
fonte
Se você deseja mover seus dados programaticamente, você pode querer olhar para Rhino ETL.
Também estou trabalhando em meu próprio framework, Fluent ETL , pois acho o SSIS um pouco complicado para tarefas simples de dados relacionadas ao desenvolvimento, como carregar dados de teste de unidade de um arquivo CSV.
fonte
SSIS não é um programa. Muitas coisas são mais rápidas de fazer no SSIS, e você obtém um progresso muito bom e detalhado e informações de erro como administrador - o que pode ser muito bom nos cenários que o SSIS deve resolver, porque às vezes as coisas dão errado e o administrador precisa de muito em formação.
Dito isso, o SSIS não é realmente tão útil se você não tiver as coisas autoedxplanatórias - eles foram feitos para alguma coisa, colocar muito em programação geral os torna um lixo.
fonte