Exportación de datos de MySQL a Parquet, CSV o JSON con ClickHouse
La herramienta clickhouse-local permite leer datos de MySQL de forma rápida y sencilla y exportarlos en muchos formatos distintos, incluidos Parquet, CSV y JSON. Vamos a:
- Usar la función de tabla
mysqlpara leer los datos - Usar la cláusula
INTO OUTFILE _filename_ FORMATy especificar el formato de salida deseado
La herramienta clickhouse-local forma parte del binario de ClickHouse. Descárguela con lo siguiente:
curl https://clickhouse.com/ | shExportar MySQL a Parquet
La función de tabla mysql crea una tabla a partir de los resultados de una consulta enviada a una instancia de MySQL. Por ejemplo:
SELECT *
FROM
mysql(
'localhost:3306',
'my_sql_database',
'my_sql_table',
'user',
'password'
);Podemos redirigir la salida de esta consulta a un archivo usando INTO OUTFILE. Use FORMAT para especificar el formato del archivo que se va a crear. Tomemos todo el contenido de una tabla de MySQL y enviémoslo a un archivo 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 a CSV
Es igual que con Parquet, salvo que esta vez usamos la extensión .csv en el nombre del archivo. ClickHouse detectará que queremos una salida separada por comas, y así se escribirán los datos en el archivo:
./clickhouse local -q "SELECT * FROM
mysql(
'localhost:3306',
'my_sql_database',
'my_sql_table',
'user',
'password'
)
INTO OUTFILE 'my_output_file.csv'"Exportar MySQL a JSON
Para exportar de MySQL a JSON, solo tienes que cambiar la extensión del nombre de archivo a jsonl o ndjson:
./clickhouse local -q "SELECT * FROM
mysql(
'localhost:3306',
'my_sql_database',
'my_sql_table',
'user',
'password'
)
INTO OUTFILE 'my_output_file.ndjson'"Resulta impresionante lo sencilla y potente que es la herramienta clickhouse-local. Puedes leer fácilmente datos desde una base de datos como MySQL y volcarlos en todo tipo de formatos de salida.