A maioria dos nossos arquivos gerados automaticamente contém números inteiros, decimais, data, hora e, às vezes, varchar. Estes são dados de instrumentação. Como faremos o upload desses arquivos diretamente para um banco de dados SQL Server, estávamos tentando decidir qual é o formato de arquivo mais eficiente para geração automática a partir de nossa instrumentação.
Qual é o formato de arquivo mais eficiente para carregar dados em um banco de dados SQL Server? Eu pensei que seria o formato de texto, mas quando fiz um experimento com CSV, o CSV tende a ocupar menos espaço e também é mais fácil para os usuários analisarem.
O tamanho do arquivo de dados varia de 50K a 250K. Apenas alguns variam em MBs.
Estou trabalhando na criação de um aplicativo que faria upload de dados para o banco de dados. Usamos LabView para nossos dados de instrumentação, então é onde queremos o formato de arquivo padronizado.
Estou inclinado para CSV. Não tenho muita experiência com XML, então posso considerar que se as vantagens superam em muito as do CSV. A legibilidade é minha preocupação apenas em termos de controle de qualidade. Pode haver casos em que o usuário queira alterar ou corrigir alguns dados antes de fazer o upload. A velocidade também é importante, mas com tamanhos de arquivo tão pequenos, não estou muito preocupado com isso.
Geralmente, os CSVs são o menor tamanho de arquivo para dados não binários (texto). XML adiciona uma grande quantidade de códigos xml que aumentam o tamanho do arquivo. Portanto, os CSVs tendem a importar mais rapidamente. Mas os importadores de XML podem lidar com casos de exceção, etc., com mais complexidade.
Em minha carreira, trabalhei com importação de instrumentos em quatro tipos diferentes de laboratórios. Onde não havia um sistema de interface direta de LIMS (Laboratory Information Management System) para instrumento, descobrimos que arquivos de texto delimitados são os mais rápidos para escrever scripts de importação de trabalho.
CSV é um arquivo de texto delimitado por vírgulas . Se os dados de entrada incluirem vírgulas, usar um delimitador diferente pode fazer mais sentido, como um caractere de barra vertical, por exemplo: | Um arquivo CSV ou arquivo delimitado por barra vertical geralmente segue a regra de que cada linha/linha de texto da coluna 1 até o retorno de carro de fim de linha representa uma linha de dados de amostra em seu banco de dados. Em seguida, dentro dessa linha, cada coluna de dados em seu banco de dados é separada de outras colunas por seus caracteres delimitadores, que podem ser vírgulas ou barras verticais ou qualquer coisa que você queira usar.
Arquivos de texto são ótimos, desde que os dados sejam consistentes ao longo do tempo.