Экспорт 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
, чтобы включить сжатие на лету:
На это уходит больше времени, но создается намного меньший сжатый файл: