Os arquivos CSV simplificam o processo de armazenamento de dados. Como o formato é baseado em linhas e colunas, o CSV traduz bem para um banco de dados relacional.
É fácil importar um arquivo CSV para um banco de dados e exportar de um banco de dados para um arquivo CSV. Existem algumas técnicas diferentes que você pode usar para fazer isso com o PostgreSQL.
Criar um arquivo CSV
Aqui estão alguns dados CSV de exemplo que você pode usar para criar seu próprio arquivo CSV:
id,firstname,lastname,email
1,Riannon,Pulsifer,Riannon.Pulsifer@example.com
2,Moyna,Palocz,Moyna.Palocz@example.com
3,Roslyn,Bearnard,Roslyn.Bearnard@example.com
4,Gloria,Aldric,Gloria.Aldric@example.com
5,Felice,Greenwald,Felice.Greenwald@example.com
Antes de importar o arquivo CSV para o banco de dados PostgreSQL, você precisará criar uma tabela que corresponda ao formato do arquivo CSV. Use o código a seguir para criar uma tabela Postgres.
CREATE TABLE employees(id int NOT NULL,
firstname char(20),
lastname char(20),
email char(50));
Importar arquivos CSV para o PostgreSQL
Você pode importar arquivos CSV para uma tabela Postgres no servidor ou em uma máquina cliente.
Importar arquivos CSV no lado do servidor
Para importar um arquivo CSV para um servidor PostgreSQL, use o comando COPY do PostgreSQL e a palavra-chave FROM. Isso permite copiar dados de um arquivo CSV para uma tabela Postgres, desde que a estrutura corresponda. Use o código a seguir para copiar o arquivo CSV de amostra para a tabela de funcionários:
COPY employees(id,firstname,lastname,email)
FROM '/tmp/sample.csv'
DELIMITER ','
CSV HEADER;
O caminho no exemplo acima é absoluto. Você pode usar um caminho relativo ao diretório de dados do Postgres, se preferir.
Você pode copiar os dados com ou sem cabeçalhos, portanto, sinta-se à vontade para omitir a última linha de código se não precisar deles.
Importar arquivos CSV no lado do cliente
Em uma máquina cliente, use o psql \cópia de comando para importar o arquivo CSV. Execute o seguinte código no prompt de comando do psql para copiar o arquivo CSV de exemplo para a tabela de funcionários.
\copy employees FROM '/tmp/sample.csv' DELIMITER ',' CSV HEADER;
Exportar arquivos CSV do PostgreSQL
Assim como na importação, você também pode exportar um arquivo CSV no lado do servidor ou no lado do cliente.
Exportar arquivos CSV no lado do servidor
Use o comando COPY e a palavra-chave TO para exportar os dados para um arquivo CSV. Você precisa especificar a tabela de origem e o caminho para o arquivo de destino. Desta vez, o caminho deve ser absoluto:
COPY employees TO '/tmp/employees.csv' CSV HEADER;
Se você precisar exportar apenas algumas das linhas do banco de dados, use o comando SELECT da seguinte maneira:
COPY (SELECT * FROM employees where firstname='Moyna') TO '/tmp/employees-moyna.csv' CSV HEADER;
Exportar arquivos CSV no lado do cliente
Para exportar dados no lado do cliente, use o \cópia de comando e o PARA palavra-chave no prompt de comando do psql:
\copy employees TO 'path-to-file.csv' CSV header;
Usando um adaptador de banco de dados
Você não precisa usar o terminal para importar um arquivo CSV. Você pode importar os dados por meio de um objeto cursor usando sua linguagem de programação preferida. Por exemplo, se você trabalha com Python, você pode se conectar ao servidor PostgreSQL e executar o CÓPIA DE comando.
Para isso, você precisa conectar o Python ao Postgres por meio de um adaptador de banco de dados como o psycopg2.
pip install psycopg2
Conecte-se ao banco de dados usando o seguinte código:
import psycopg2;connection = psycopg.connect(
database="employee_db",
host="localhost"
user="postgres",
password="password",
)
Em seguida, crie um objeto cursor e use-o para executar o comando COPY:
cursor = connection.cursor()cursor.execute(
"COPY employees(id,firstname,lastname,email)
FROM '/tmp/sample.csv'
DELIMITER ','
CSV HEADER;"
)
connection.close()
Gerencie seus dados PostgreSQL com a conveniência do CSV
É um processo simples para importar e exportar dados usando arquivos PostgreSQL e CSV. Você pode usar os comandos psql no cliente ou servidor ou usar um adaptador de banco de dados programaticamente.
Se você gosta mais de GUI, considere usar a ferramenta pgAdmin. É um aplicativo GUI de código aberto que pode ajudá-lo a importar e exportar dados ainda mais facilmente.