Skip to main content

Descrição

Difere de JSONEachRow/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

Um objeto 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):

Configurações de formato