Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Как экспортировать данные MySQL в Parquet, CSV или JSON с помощью ClickHouse

Экспорт данных из MySQL в Parquet, CSV или JSON с помощью ClickHouse

Инструмент clickhouse-local позволяет быстро и легко читать данные из MySQL и выводить их в различных форматах, включая Parquet, CSV и JSON. Мы будем:

  • Использовать табличную функцию mysql для чтения данных
  • Использовать предложение INTO OUTFILE _filename_ FORMAT и указать нужный формат вывода

Инструмент clickhouse-local входит в состав бинарного файла ClickHouse. Загрузите его следующим образом:

curl https://clickhouse.com/ | sh

Экспорт MySQL в Parquet

Табличная функция mysql создает таблицу на основе результатов запроса, отправленного в экземпляр MySQL. Например:

SELECT *
FROM
   mysql(
    'localhost:3306',
    'my_sql_database',
    'my_sql_table',
    'user',
    'password'
);

Мы можем направить результат этого запроса в файл с помощью INTO OUTFILE. Используйте FORMAT, чтобы указать формат создаваемого файла. Давайте выгрузим всё содержимое таблицы MySQL в файл Parquet:

./clickhouse local -q "SELECT * FROM
   mysql(
    'localhost:3306',
    'my_sql_database',
    'my_sql_table',
    'user',
    'password'
)
INTO OUTFILE 'my_output_file.parquet'"

Экспорт MySQL в CSV

Здесь всё так же, как и для Parquet, только в имени файла мы используем расширение .csv. ClickHouse поймёт, что нам нужен вывод в формате CSV, и именно в таком виде данные будут записаны в файл:

./clickhouse local -q "SELECT * FROM
   mysql(
    'localhost:3306',
    'my_sql_database',
    'my_sql_table',
    'user',
    'password'
)
INTO OUTFILE 'my_output_file.csv'"

Экспорт из MySQL в JSON

Чтобы экспортировать данные из MySQL в JSON, просто измените расширение файла на jsonl или ndjson:

./clickhouse local -q "SELECT * FROM
   mysql(
    'localhost:3306',
    'my_sql_database',
    'my_sql_table',
    'user',
    'password'
)
INTO OUTFILE 'my_output_file.ndjson'"

Впечатляет, насколько инструмент clickhouse-local прост и при этом действительно мощен. Вы можете легко читать данные из такой базы данных, как MySQL, и выводить их в самых разных выходных форматах.

Navigation