Descrição
Difere deJSONEachRow/JSONStringsEachRow porque o ClickHouse transmite cada evento como um objeto JSON separado e também fornece informações de progresso.
O formato relacionado JSONStringsEachRowWithProgress usa os mesmos tipos de objeto de nível superior; os valores dos campos são serializados como strings.
As variantes compactas JSONCompactEachRowWithProgress e JSONCompactStringsEachRowWithProgress compartilham os mesmos tipos de objeto do stream e as mesmas ressalvas sobre progresso/LIMIT/exceções; suas cargas úteis row / totals / min / max são arrays de valores, e não objetos nomeados.
Objetos do stream
Cada linha da resposta é um objeto JSON. Os clientes devem fazer o encaminhamento com base na chave de nível superior:
O objeto
rows_before_limit_at_least é emitido sempre que a consulta contém LIMIT, mesmo que o limite não tenha descartado nenhuma linha. Trata-se de uma estimativa mínima do número de linhas que haveria sem LIMIT (com o mesmo significado que em JSON); os clientes não devem interpretá-lo como prova de que linhas foram descartadas.
meta é emitido uma única vez antes da primeira row, mas um objeto progress pode chegar antes de meta. O objeto exception de nível superior só é emitido no caminho HTTP quando http_write_exception_in_output_format=1; caso contrário, o erro é reportado pela camada de transporte. Quando emitido, é um objeto de nível superior independente, e não aninhado em row.
Exemplo de uso
progress ainda pode ser emitido antes de meta. Pelo caminho HTTP, com http_write_exception_in_output_format=1, uma consulta com falha termina com um objeto separado de nível superior (não aninhado em row):