Estou tentando criar um processo que faria upload em massa de vários arquivos csv periodicamente para tabelas individuais no servidor SQL. O problema que estou tendo é que esses arquivos não estão localizados no mesmo servidor.
Posso usar o comando de upload em massa para fazer upload de arquivos de uma pasta na caixa do servidor SQL, mas não de nossa unidade compartilhada, localizada em um servidor diferente. Existem várias pessoas que estariam executando esse processo e, portanto, pode não ser viável, porque nem todas elas obteriam esse tipo de acesso à caixa do servidor SQL.
Existe alguma maneira de fazer isso com o mesmo nível de eficiência e rapidez?
Eu pensei em enviar cada linha nos arquivos csv, mas esses arquivos são enormes e levariam muito tempo
. Apenas procurando idéias para fazer isso funcionar.
O SSIS seria menos ou mais ou igualmente eficiente?
Se não houver transformações envolvidas, você pode escrever esse processo de maneira bastante simples no SSIS com um loop for no fluxo de controle que itera em um diretório de arquivo e, em seguida, passa cada nome de arquivo como uma variável para um fluxo de dados. O nome do arquivo para o csv seria vinculado a essa variável, e seu destino também poderia ser vinculado ao nome do arquivo. Basta usar o modo em massa em seu componente de destino e você deve obter uma eficiência muito boa. Isso funciona muito bem se a pasta estiver acessível a todos os usuários e você adicionar uma etapa para verificar e ver se os arquivos no diretório são processados ou movê-los para outro lugar quando forem processados. O processo do SSIS pode ser invocado diretamente do catálogo do SSIS no SQL Server ou agendado regularmente.
Como alternativa, você pode usar o utilitário bcp para uma experiência de CLI. Isso provavelmente é muito mais simples, pois não requer escrever um processo SSIS e o gerenciamento desse processo, mas requer mais conhecimento no final do usuário que o invoca. Essa ferramenta não exige que os arquivos estejam no servidor: você fornece um caminho para o arquivo como o usuário que está chamando, juntamente com credenciais para autenticação, e a ferramenta lidará com a movimentação de dados.