Перейти к основному содержимому
Перейти к основному содержимому

Экспорт JSON

Практически любой формат JSON, используемый для импорта, может быть использован и для экспорта. Самый популярный формат — это JSONEachRow:

Или мы можем использовать JSONCompactEachRow, чтобы сэкономить место на диске, пропуская имена колонок:

Переопределение типов данных как строк

ClickHouse учитывает типы данных и будет экспортировать JSON в соответствии со стандартами. Но в случаях, когда нам нужно, чтобы все значения кодировались как строки, мы можем использовать формат JSONStringsEachRow:

Теперь числовая колонка hits закодирована как строка. Экспорт в виде строк поддерживается для всех форматов JSON*, просто исследуйте форматы JSONStrings\* и JSONCompactStrings\*:

Экспорт метаданных вместе с данными

Общий JSON формат, который популярен в приложениях, будет экспортировать не только результирующие данные, но и типы колонок и статистику запросов:

Формат JSONCompact будет печатать ту же метаинформацию, но использовать компактную форму для самих данных:

Рассмотрите варианты JSONStrings или JSONCompactStrings, чтобы закодировать все значения как строки.

Компактный способ экспорта данных и структуры JSON

Более эффективный способ получить данные, а также их структуру, — использовать формат JSONCompactEachRowWithNamesAndTypes:

Этот формат использует компактный JSON, предваряемый двумя строками заголовка с именами и типами колонок. Этот формат может быть использован для приема данных в другую инстанцию ClickHouse (или в другие приложения).

Экспорт JSON в файл

Чтобы сохранить экспортируемые данные JSON в файл, мы можем использовать конструкцию INTO OUTFILE:

ClickHouse потребовалось всего 2 секунды, чтобы экспортировать почти 37 миллионов записей в файл JSON. Мы также можем экспортировать с помощью конструкции COMPRESSION, чтобы включить сжатие на лету:

На это уходит больше времени, но создается намного меньший сжатый файл: