Exportando dados do MySQL para Parquet, CSV ou JSON com o ClickHouse
A ferramenta clickhouse-local permite ler dados do MySQL e exportá-los de forma rápida e fácil para diversos formatos, incluindo Parquet, CSV e JSON. Vamos:
- Usar a
mysqlfunção de tabela para ler os dados - Usar a cláusula
INTO OUTFILE _filename_ FORMATe especificar o formato de saída desejado
A ferramenta clickhouse-local faz parte do binário do ClickHouse. Baixe-a com o seguinte:
curl https://clickhouse.com/ | shExportar MySQL para Parquet
A função de tabela mysql cria uma tabela com base nos resultados de uma consulta enviada a uma instância do MySQL. Por exemplo:
SELECT *
FROM
mysql(
'localhost:3306',
'my_sql_database',
'my_sql_table',
'user',
'password'
);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 extrair todo o conteúdo de uma tabela do MySQL e enviá-lo para um arquivo Parquet:
./clickhouse local -q "SELECT * FROM
mysql(
'localhost:3306',
'my_sql_database',
'my_sql_table',
'user',
'password'
)
INTO OUTFILE 'my_output_file.parquet'"Exportar MySQL para CSV
É o mesmo que no caso do Parquet, exceto que, desta vez, usamos a extensão .csv no nome do arquivo. O ClickHouse entenderá que queremos uma saída separada por vírgulas e os dados serão gravados no arquivo dessa forma:
./clickhouse local -q "SELECT * FROM
mysql(
'localhost:3306',
'my_sql_database',
'my_sql_table',
'user',
'password'
)
INTO OUTFILE 'my_output_file.csv'"Exportar MySQL para JSON
Para exportar de MySQL para JSON, basta mudar a extensão do nome do arquivo para jsonl ou ndjson:
./clickhouse local -q "SELECT * FROM
mysql(
'localhost:3306',
'my_sql_database',
'my_sql_table',
'user',
'password'
)
INTO OUTFILE 'my_output_file.ndjson'"É impressionante como a ferramenta clickhouse-local é, ao mesmo tempo, simples e poderosa. Você pode facilmente ler dados de um banco de dados como o MySQL e gerá-los em todos os tipos de formatos de saída diferentes.