Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

JSON

Entrada Salida Alias

Descripción

El formato JSON lee y genera datos en formato JSON.

El formato JSON devuelve lo siguiente:

Parameter Description
meta Nombres y tipos de columnas.
data Tablas de datos.
rows El número total de filas de salida.
rows_before_limit_at_least La estimación mínima del número de filas que habría habido sin LIMIT. Solo se devuelve si la consulta contiene LIMIT. Esta estimación se calcula a partir de los bloques de datos procesados en el pipeline de consulta antes de la transformación LIMIT, pero después puede ser descartada por dicha transformación. Si los bloques ni siquiera llegaron a la transformación LIMIT en el pipeline de consulta, no participan en la estimación.
statistics Estadísticas como elapsed, rows_read, bytes_read.
totals Valores totales (cuando se usa WITH TOTALS).
extremes Valores extremos (cuando extremes se establece en 1).

El tipo JSON es compatible con JavaScript. Para garantizarlo, algunos caracteres se escapan adicionalmente:

  • la barra / se escapa como \/
  • los saltos de línea alternativos U+2028 y U+2029, que causan problemas en algunos navegadores, se escapan como \uXXXX.
  • Los caracteres de control ASCII se escapan: retroceso, salto de página, salto de línea, retorno de carro y tabulación horizontal se reemplazan por \b, \f, \n, \r, \t, así como los bytes restantes en el rango 00-1F mediante secuencias \uXXXX.
  • Las secuencias UTF-8 no válidas se sustituyen por el carácter de reemplazo � para que el texto de salida conste de secuencias UTF-8 válidas.

Para mantener la compatibilidad con JavaScript, los enteros Int64 y UInt64 se encierran entre comillas dobles de forma predeterminada. Para quitar las comillas, puede establecer el parámetro de configuración output_format_json_quote_64bit_integers en 0.

ClickHouse admite NULL, que se muestra como null en la salida JSON. Para habilitar los valores +nan, -nan, +inf, -inf en la salida, establezca output_format_json_quote_denormals en 1.

Ejemplo de uso

Ejemplo:

SELECT SearchPhrase, count() AS c FROM test.hits GROUP BY SearchPhrase WITH TOTALS ORDER BY c DESC LIMIT 5 FORMAT JSON
{
        "meta":
        [
                {
                        "name": "num",
                        "type": "Int32"
                },
                {
                        "name": "str",
                        "type": "String"
                },
                {
                        "name": "arr",
                        "type": "Array(UInt8)"
                }
        ],

        "data":
        [
                {
                        "num": 42,
                        "str": "hello",
                        "arr": [0,1]
                },
                {
                        "num": 43,
                        "str": "hello",
                        "arr": [0,1,2]
                },
                {
                        "num": 44,
                        "str": "hello",
                        "arr": [0,1,2,3]
                }
        ],

        "rows": 3,

        "rows_before_limit_at_least": 3,

        "statistics":
        {
                "elapsed": 0.001137687,
                "rows_read": 3,
                "bytes_read": 24
        }
}

Configuración de formato

Para el formato de entrada JSON, si la configuración input_format_json_validate_types_from_metadata se establece en 1, los tipos definidos en los metadatos de los datos de entrada se compararán con los tipos de las columnas correspondientes de la tabla.

Véase también

Navigation