Skip to main content

Como exportar dados do PostgreSQL para Parquet, CSV ou JSON

Isso é fácil com clickhouse-local:
  • Use a função de tabela postgresql para ler os dados
  • Use a cláusula INTO OUTFILE _filename_ FORMAT e especifique o formato de saída desejado
O formato de saída pode ser qualquer um dos formatos de saída compatíveis com o ClickHouse. Vamos ver alguns exemplos… Estes exemplos usam clickhouse-local, que faz parte do binário do ClickHouse. Baixe-o com o comando a seguir:

Exportar o PostgreSQL para Parquet

A função de tabela postgresql permite executar consultas SELECT (e INSERT) em dados armazenados em um servidor PostgreSQL remoto. Por exemplo, para visualizar todo o conteúdo de uma tabela no PostgreSQL:
Podemos redirecionar a saída desta consulta para um arquivo usando INTO OUTFILE. Use FORMAT para especificar o formato do arquivo que será criado. Vamos exportar todo o conteúdo da tabela PostgreSQL para um arquivo Parquet:
Como o nome do arquivo de saída tem a extensão .parquet, o ClickHouse presume que queremos o formato Parquet, então repare que omitimos a cláusula FORMAT Parquet.

Exportar PostgreSQL para CSV

É o mesmo processo do Parquet, exceto pelo fato de especificarmos um nome de arquivo mais apropriado para a saída:
É isso! O ClickHouse reconhece a extensão .csv no nome do arquivo de saída e exporta os dados como valores separados por vírgula. Fora isso, é exatamente o mesmo comando mostrado acima.

Exportar PostgreSQL para JSON

Para exportar do PostgreSQL para JSON, basta alterar o nome do arquivo, e o ClickHouse identificará o formato:
Você não precisa parar por aqui: é possível usar clickhouse-local para extrair dados do PostgreSQL e enviá-los para todos os formatos de saída.Se o ClickHouse não conseguir determinar o formato de saída pela extensão do nome do arquivo, ou se você quiser escolher um formato especificamente, adicione a cláusula FOMRAT:

Enviar PostgreSQL para outro processo

Em vez de usar INTO OUTFILE, você pode enviar os resultados de uma função de tabela para outro processo. Aqui está um exemplo simples para demonstrar a sintaxe: contamos o número de linhas usando o comando Linux wc -l:
No entanto, poderíamos facilmente direcionar as linhas para um script de shell, um script Python ou qualquer outro processo que você quiser.
Última modificação em 3 de julho de 2026