Formatos de datos de entrada y salida
Formatos de entrada
- Analizar los datos proporcionados en las sentencias
INSERT - Ejecutar consultas
SELECTsobre tablas basadas en archivos, comoFile,URLoHDFS - Leer diccionarios
- El formato Native es el formato de entrada más eficiente, ya que ofrece la mejor compresión, el menor uso de recursos y una sobrecarga mínima de procesamiento del lado del servidor.
- La compresión es esencial: LZ4 reduce el tamaño de los datos con un coste mínimo de CPU, mientras que ZSTD ofrece una compresión mayor a costa de un mayor uso de CPU.
- La preordenación tiene un impacto moderado, ya que ClickHouse ya ordena de forma eficiente.
- La agrupación en lotes mejora significativamente la eficiencia: los lotes más grandes reducen la sobrecarga de inserción y mejoran el rendimiento.
Formatos de salida
- Organizar los resultados de una consulta
SELECT - Realizar operaciones
INSERTen tablas basadas en archivos
Resumen de formatos
Esquema de formato
format_schema.
Es necesario establecer esta opción cuando se utiliza uno de los formatos Cap'n Proto o Protobuf.
El esquema de formato es una combinación de un nombre de archivo y el nombre de un tipo de mensaje dentro de ese archivo, separados por dos puntos,
por ejemplo, schemafile.proto:MessageType.
Si el archivo tiene la extensión estándar del formato (por ejemplo, .proto para Protobuf),
puede omitirse y, en ese caso, el esquema de formato tendrá el aspecto schemafile:MessageType.
Si introduce o exporta datos mediante el cliente en modo interactivo, el nombre de archivo especificado en el esquema de formato
puede contener una ruta absoluta o una ruta relativa al directorio actual del cliente.
Si utiliza el cliente en modo por lotes, la ruta al esquema debe ser relativa por motivos de seguridad.
Si introduce o exporta datos mediante la interfaz HTTP, el nombre de archivo especificado en el esquema de formato
debe estar ubicado en el directorio especificado en format_schema_path
de la configuración del servidor.
Ignorar errores
CSV, TabSeparated, TSKV, JSONEachRow, Template, CustomSeparated y Protobuf, pueden omitir una fila incorrecta si se produce un error de análisis y continuar analizando desde el comienzo de la siguiente fila. Consulte los ajustes input_format_allow_errors_num e
input_format_allow_errors_ratio.
Limitaciones:
- En caso de error de análisis,
JSONEachRowomite todos los datos hasta el salto de línea (o EOF), por lo que las filas deben estar delimitadas por\npara contar los errores correctamente. TemplateyCustomSeparatedusan el delimitador después de la última columna y el delimitador entre filas para encontrar el comienzo de la siguiente fila, por lo que la omisión de errores solo funciona si al menos uno de ellos no está vacío.