Descripción
Template permite al usuario especificar su propia cadena de formato personalizada con marcadores de posición para los valores
y definir reglas de escape para los datos.
Utiliza los siguientes ajustes:
Configuración y reglas de escape
format_template_row
format_template_row especifica la ruta del archivo que contiene cadenas de formato para las filas, con la siguiente sintaxis:
Se admiten las siguientes reglas de escape:
Si se omite una regla de escape, se usará
None. XML es adecuado solo para la salida.SELECT) o se esperarán (si se usa INPUT) los siguientes valores,
entre los delimitadores de columna Search phrase:, , count:, , ad price: $ y ;, respectivamente:
s(con la regla de escapeQuoted)c(con la regla de escapeEscaped)p(con la regla de escapeJSON)
- Si se hace
INSERT, la línea de abajo coincide con la plantilla esperada y leería los valoresbathroom interior design,2166,$3en las columnasSearch phrase,count,ad price. - Si se hace
SELECT, la línea de abajo es la salida, suponiendo que los valoresbathroom interior design,2166,$3ya están almacenados en una tabla en las columnasSearch phrase,count,ad price.
format_template_rows_between_delimiter
format_template_rows_between_delimiter especifica el delimitador entre filas, que se imprime (o se espera) después de cada fila, excepto la última (\n de forma predeterminada)
format_template_resultset
format_template_resultset especifica la ruta del archivo que contiene una cadena de formato para el conjunto de resultados.
La cadena de formato del conjunto de resultados tiene la misma sintaxis que una cadena de formato para las filas.
Permite especificar un prefijo, un sufijo y una forma de imprimir información adicional, y contiene los siguientes marcadores de posición en lugar de nombres de columna:
datason las filas con datos en formatoformat_template_row, separadas porformat_template_rows_between_delimiter. Este marcador de posición debe ser el primero de la cadena de formato.totalses la fila con los valores totales en formatoformat_template_row(cuando se usa WITH TOTALS).mines la fila con los valores mínimos en formatoformat_template_row(cuandoextremesestá establecido en 1).maxes la fila con los valores máximos en formatoformat_template_row(cuandoextremesestá establecido en 1).rowses el número total de filas de salida.rows_before_limites el número mínimo de filas que habría habido sin LIMIT. Solo se genera salida si la consulta contiene LIMIT. Si la consulta contiene GROUP BY, rows_before_limit_at_least es el número exacto de filas que habría habido sin LIMIT.timees el tiempo de ejecución de la solicitud en segundos.rows_reades el número de filas leídas.bytes_reades el número de bytes (sin comprimir) leídos.
data, totals, min y max no deben tener una regla de escape especificada (o debe especificarse None explícitamente). Los demás marcadores de posición pueden tener cualquier regla de escape.
Si la configuración
format_template_resultset es una cadena vacía, ${data} se usa como valor predeterminado.Especificación en línea
format_template_row, format_template_resultset) para el formato Template en un directorio de todos los nodos de un clúster.
Además, el formato puede ser tan simple que no sea necesario colocarlo en un archivo.
En estos casos, format_template_row_format (para format_template_row) y format_template_resultset_format (para format_template_resultset) pueden usarse para establecer la cadena de plantilla directamente en la consulta,
en lugar de especificarla como la ruta al archivo que la contiene.
Las reglas para las cadenas de formato y las secuencias de escape son las mismas que las de:
format_template_rowal usarformat_template_row_format.format_template_resultsetal usarformat_template_resultset_format.
Ejemplo de uso
Template: primero para seleccionar datos y luego para insertarlos.
Consultar datos
Query
/some/path/resultset.format
/some/path/row.format
Response
Insertar datos
/some/path/resultset.format
/some/path/row.format
PageViews, UserID, Duration y Sign dentro de los marcadores de posición son nombres de columnas de la tabla. Se ignorarán los valores que aparezcan después de Useless field en las filas y después de \nTotal rows: en el sufijo.
Todos los delimitadores de los datos de entrada deben coincidir exactamente con los delimitadores de las cadenas de formato especificadas.
Especificación en línea
Template y la configuración de especificación en línea para realizar una tarea sencilla: hacer SELECT de los nombres de algunos formatos de ClickHouse de la tabla system.formats y darles formato como una tabla de Markdown. Esto se puede lograr fácilmente con el formato Template y la configuración format_template_row_format y format_template_resultset_format.
En ejemplos anteriores especificamos las cadenas de formato del conjunto de resultados y de las filas en archivos separados, con las rutas a esos archivos indicadas mediante la configuración format_template_resultset y format_template_row, respectivamente. Aquí lo haremos en línea porque nuestra plantilla es trivial: solo contiene unos pocos | y - para crear la tabla de Markdown. Especificaremos la cadena de plantilla del conjunto de resultados con la configuración format_template_resultset_format. Para crear el encabezado de la tabla, hemos añadido |ClickHouse Formats|\n|---|\n antes de ${data}. Usamos la configuración format_template_row_format para especificar la cadena de plantilla |`{0:XML}`| para nuestras filas. El formato Template insertará nuestras filas con el formato indicado en el marcador ${data}. En este ejemplo solo tenemos una columna, pero si quisiera añadir más, podría hacerlo agregando {1:XML}, {2:XML}… etc. a la cadena de plantilla de fila y eligiendo la regla de escape según corresponda. En este ejemplo hemos optado por la regla de escape XML.
Query
| y - para crear esa tabla en markdown:
Response