Bruno Perroni
DBA SQL Server com mais de 6 anos de experiência!

Importar Múltiplos Arquivos .TXT para o SQL Server

Fala galera, tudo bem com vocês?

Nesse artigo estou trazendo um tutorial bem legal, sobre importação de múltiplos arquivos de texto para o SQL Server, através do SSIS (SQL Server Integration Services).

Nesse exemplo vou utilizar vários arquivos .txt contendo as músicas mais ouvidas no Spotify de 2010 até 2019.

Você pode encontrar esse mesmo DataSet através desse link https://www.kaggle.com/leonardopena/top-spotify-songs-from-20102019-by-year

Obs. Para o nosso exemplo eu quebrei o arquivo em anos, se você fizer o download do DataSet, estará tudo em um único arquivo .csv

Examinando os arquivos podemos notar que possuem um ID, Título, Artista e etc….

Bom vamos criar uma tabela no SQL Server para receber esses dados.

CREATE TABLE TopMusic
(
	id INT,
	title VARCHAR(100),
	artist VARCHAR(100),
	genre VARCHAR(100),
	year INT,
	bpm INT,
	nrgy INT,
	dnce INT,
	db INT,
	live INT,
)

Agora que já temos a nossa tabela, vamos criar um projeto no SSDT (SQL Server Data Tools).

Você pode obter o SSDT através do link https://www.microsoft.com/en-us/download/details.aspx?id=42313

Abra o SSDT e crie um novo projeto clicando em New Project

Ao clicar em novo projeto, escolha a opção Integration Services Project e de um nome para o seu projeto.

Agora que já temos o projeto criado, podemos iniciar o processo de carga.

Primeiramente, crie uma nova conexão clicando com o botão direito do mouse em Connection Manager

Selecione a opção MULTIFLATFILE

Será aberta uma tela para a configuração do connection manager, onde você pode preencher algumas informações, como Nome da Conexão, Descrição, Idioma e Etc…

Na aba General, o item mais importante a se preencher é a localização dos arquivos e colocar um * (asterisco) para que ele efetue a leitura de todos os arquivos com a extensão .txt

Na aba Columns, podemos configurar os delimitadores e visualizar um preview, nesse caso, podemos deixar o padrão, porém, caso o seu arquivo esteja separado por outro caractere que não seja a vírgula, sinta-se a vontade para mudar.

Na aba Advanced você pode alterar alguns metadados, podemos deixar o padrão e seguir.

Na aba Preview, é exibido como os dados serão importados, podemos clicar em OK.

Agora que já configuramos a origem dos dados, podemos iniciar a configuração do Destino.

Clique novamente com o botão direito do mouse em connection managers e selecione New OLE DB Connection…

Será aberta a tela de configuração da conexão, Clique em New.

Na tela de configuração do OLE DB Connection, insira o nome do Servidor SQL Server que você vai usar para importar os arquivos, o Tipo de Conexão, caso não seja Windows Authentication especifique o usuário e senha e o banco de dados que contém a tabela TopMusic que foi criada mais acima.

Ao término da configuração das duas connections, você terá algo parecido com a imagem abaixo:

Bom, já temos meio caminho andado, agora vamos adicionar os componentes no projeto para que a importação de fato aconteça.

Na aba Control Flow, arraste o Data Flow Task para a tela.

Acesse o Data Flow Task, com um duplo clique, que automaticamente irá mudar para a aba Data Flow.

Na aba Data Flow, arraste o componente Flat File Source

Dê um duplo clique no Flat File Source, para editarmos o componente.

Como podemos notar ele já trouxe o campo de Flat file connection manager preenchido, devido ao fato de já termos criado a conexão mais acima.

Agora vamos adicionar o destino.

Selecione a opção OLE DB Destination e arraste o componente.

Conecte o Flat File Source ao OLE DB Destination

E edite o OLE DB Destination, dando um duplo clique para abrir o modo de edição do componente.

Repare que ele já trouxe preenchido o campo do OLE DB connection manager, que havíamos configurado previamente.

No campo Name of the table or the view, selecione a tabela TopMusic que criamos mais acima.

Na aba Mappings, faça a ligação das colunas origem e destino conforme abaixo e clique em OK:

Agora que já efetuamos a criação do nosso processo de ETL (Extract, Transform and Load), podemos executar o projeto, para inserirmos os dados no SQL.

Pronto, já carregamos os dados, se fizermos um select na tabela podemos ver que os dados foram importados com sucesso.

select * from TopMusic