Imagina que te mandaram um arquivo CSV com informações de estudantes, tipo, de outro banco de dados ou de um app de terceiros. Copiar cada registro na mão? Nem pensar. É aí que entra a necessidade do carregamento em massa de dados.
Aqui vão alguns cenários onde o carregamento em massa salva a sua pele:
- Migração de dados: precisa transferir dados de um sistema pra outro. Por exemplo, de Excel ou outro banco de dados pro PostgreSQL.
- Inicialização do banco de dados: preenchendo seu banco com dados iniciais, tipo lista de cidades, cursos ou categorias de produtos.
- Integração com sistemas externos: adicionando novos dados regularmente, tipo atualizar dados de terceiros via arquivo.
- Atualização de grandes volumes de dados: precisa trocar dados antigos por atualizados.
Tranquilo até aqui? Se sim, bora continuar!
Principais abordagens para carregamento em massa de dados
Antes de mergulhar nos detalhes, bora falar rapidinho sobre as formas de adicionar não só uma ou duas linhas, mas um montão de uma vez. Vamos ver como fazer isso com SQL e depois um jeito mais prático e moderno — importando dados de arquivos.
SQL pra inserir dados
Você já sabe que pra adicionar dados a gente usa o comando INSERT INTO. Funciona de boa se forem poucos registros. Tipo assim:
INSERT INTO students (id, name, age, course)
VALUES (1, 'Otto Lin', 20, 'Programação');
Mas se for pra inserir dezenas, centenas ou milhares de linhas, esse jeito não rola. Dá pra automatizar no código, mas fazer isso na mão é complicado e nada prático.
Importando de arquivos
Por isso, muita gente prefere importar dados de arquivos, tipo CSV (Comma-Separated Values). É um formato de texto simples, cada linha é um registro, e os valores são separados por vírgula ou ponto e vírgula.
Exemplo de conteúdo de um arquivo CSV:
id,name,age,course
1,Otto Lin,20,Programação
2,Maria Chi,21,Design
3,Alex Ming,19,Matemática
Esse formato é fácil de ler, tanto pra gente quanto pra programas. Dá pra abrir no Excel, processar em Python ou outra linguagem, e importar pro banco sem dor de cabeça. Carregar dados em massa de um arquivo é muito mais rápido do que inserir na mão e ainda diminui as chances de erro.
Preparando pro carregamento em massa
O segredo do sucesso é a preparação. Vamos deixar o banco pronto pra receber os dados, conferir se a estrutura bate e se os dados estão certinhos.
Checando a estrutura das tabelas
Primeiro de tudo, garante que seu banco tem uma tabela que bate com a estrutura do arquivo. Tipo, se você vai importar estudantes, precisa de uma tabela com as colunas certas.
Exemplo de tabela pra importar dados de estudantes:
CREATE TABLE students (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER NOT NULL,
course TEXT
);
Pontos importantes:
- Confere se os tipos das colunas batem com os dados do arquivo. Se
ageé número, no CSV também tem que ser só número nessa coluna. - Colunas com restrições (
NOT NULL,UNIQUE) precisam de atenção extra na hora de preparar os dados.
Checando os dados
Agora rapidinho sobre os dados. Olha o que tem que conferir antes de importar:
- Nada de linhas vazias ou valores errados. Por exemplo, a linha:
12,,20,Programaçãovai dar erro, porquenameé obrigatório.
Separador certo. Se seu CSV usa vírgula (
,), garante que tá configurado assim. Se for ponto e vírgula (;), tem que avisar na hora de importar.Codificação. O PostgreSQL espera arquivos em UTF-8. Se o seu arquivo tá em outra codificação (tipo Windows-1251), precisa converter.
Piada de programador pra descontrair
Por que programador curte tanto CSV? Porque depois de horas mexendo com JSON, finalmente vê "dados simples"... até encontrar uma vírgula no meio do texto.
Aplicação prática do carregamento em massa
No mundo real, o carregamento em massa tá em todo lugar. Por exemplo:
- Quando vai atualizar o catálogo de produtos de uma loja online. Um arquivo CSV com milhares de produtos pode ser importado em segundos.
- Na migração de clientes de um CRM pra outro. Todos os dados dos clientes, endereços e pedidos vão do CSV pro PostgreSQL.
- Na análise de dados, quando precisa importar as vendas do mês pra analisar.
Agora que você já entendeu pra que serve e como se preparar, podemos partir pros comandos específicos de importação, tipo o COPY. Mas isso é papo pra próxima aula.
GO TO FULL VERSION