Описание
Сочетает компактный построчный вывод форматаJSONCompactEachRow с потоковой передачей информации о ходе выполнения запроса. ClickHouse передаёт каждое событие в виде отдельного объекта JSON; значения столбцов сохраняют свои исходные типы JSON.
Родственный формат JSONCompactStringsEachRowWithProgress использует те же виды объектов верхнего уровня, но значения полей в нём сериализуются как строки.
Использует тот же контракт потока, что и JSONEachRowWithProgress (writesProgressConcurrently / finalizeImpl), с той лишь разницей, что полезная нагрузка row / totals / min / max представляет собой не именованные объекты, а массивы значений, упорядоченные по столбцам.
Объекты потока
Каждая строка ответа — это один объект JSON. Клиенты должны определять тип объекта по ключу верхнего уровня:
Объект
rows_before_limit_at_least выдаётся, если запрос содержит LIMIT, даже когда ограничение не отбросило ни одной строки. Это нижняя оценка числа строк, которое получилось бы без LIMIT (то же значение, что и в JSON); клиенты не должны считать его доказательством того, что строки были отброшены.
meta выдаётся один раз перед первым row, однако объект progress может прийти раньше meta. Объект верхнего уровня exception выдаётся при работе через HTTP только при http_write_exception_in_output_format=1; в противном случае ошибка передаётся на транспортном уровне. Если этот объект выдаётся, он является отдельным объектом верхнего уровня и не вкладывается в row.
Пример использования
Query
Response