Importação de arquivos com SQL SEVER

Bulk Insert

Olá pessoal, neste post iremos demostrar um exemplo prático de como importar um arquivo TXT grande em uma tabela no SQL Server usando o comando BULK INSERT.

Suponha que você tenha um arquivo chamado “dados.txt” que contém 36 bilhões de linhas e que você queira importar em uma tabela no SQL Server chamada “dados_importados”.

  1. Crie uma tabela no SQL Server usando o seguinte comando:


CREATE TABLE dados_importados (
coluna1 tipo_de_dado1,
coluna2 tipo_de_dado2,
...
)

Substitua “coluna1”, “tipo_de_dado1”, “coluna2”, “tipo_de_dado2”, etc. pelas colunas e tipos de dados corretos para seus dados.

Abra o SQL Server Management Studio e conecte-se ao seu servidor SQL.

Abra uma nova janela de consulta e digite o seguinte comando:


BULK INSERT dados_importados
FROM 'C:\caminho\para\dados.txt'
WITH (
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
BATCHSIZE = 1000000
)

Substitua “C:\caminho\para\dados.txt” pelo caminho completo para o seu arquivo TXT.

O parâmetro “FIELDTERMINATOR” especifica qual caractere é usado como separador de campo no arquivo TXT. Neste exemplo, estamos usando a vírgula (“,”).

O parâmetro “ROWTERMINATOR” especifica qual caractere é usado como separador de linha no arquivo TXT. Neste exemplo, estamos usando a nova linha (“\n”).

O parâmetro “BATCHSIZE” especifica quantas linhas do arquivo TXT são importadas de uma vez. Neste exemplo, estamos importando 1.000.000 de linhas por lote.

  1. Execute o comando e aguarde a importação ser concluída. Dependendo do tamanho do arquivo TXT e do hardware do servidor SQL, isso pode levar algum tempo.

Depois de concluída a importação, você deve ter todos os seus dados armazenados na tabela “dados_importados” no SQL Server. Você pode então executar consultas SQL para extrair as informações que você precisa.

Outra forma bastante interessante é a seguinte:

Aqui estão alguns exemplos adicionais de como importar dados de um arquivo TXT para o SQL Server usando outras técnicas:

  1. Use o comando OPENROWSET:


INSERT INTO dados_importados (coluna1, coluna2, ...)
SELECT coluna1, coluna2, ...
FROM OPENROWSET (
BULK 'C:\caminho\para\dados.txt',
FORMATFILE = 'C:\caminho\para\formato.xml',
MAXERRORS = 0
) AS dados_txt

Neste exemplo, estamos usando o comando OPENROWSET para ler o arquivo TXT e importá-lo diretamente na tabela “dados_importados”. O parâmetro “FORMATFILE” especifica o caminho para um arquivo XML que descreve o formato do arquivo TXT. O parâmetro “MAXERRORS” especifica quantos erros podem ocorrer durante a importação antes que ela seja interrompida.

Use o utilitário BCP (Bulk Copy Program):

bcp dados_importados in C:\caminho\para\dados.txt -S nome_do_servidor -T -c -t ,

Neste exemplo, estamos usando o utilitário BCP para copiar os dados do arquivo TXT diretamente para a tabela "dados_importados". O parâmetro "-S" especifica o nome do servidor SQL, "-T" usa autenticação integrada do Windows, "-c" especifica que os dados são copiados como caracteres ASCII e "-t" especifica que a vírgula (",") é usada como separador de campo.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *