Skip to main content
Este motor permite procesar archivos de registro de aplicaciones como un flujo de registros. FileLog le permite:
  • Suscribirse a archivos de registro.
  • Procesar nuevos registros a medida que se aΓ±aden a los archivos de registro a los que se haya suscrito.

Crear una tabla

Argumentos del motor:
  • path_to_logs – Ruta de los archivos de registro a los que suscribirse. Puede ser la ruta a un directorio con archivos de registro o a un ΓΊnico archivo de registro. Tenga en cuenta que ClickHouse solo permite rutas dentro del directorio user_files.
  • format_name - Formato del registro. Tenga en cuenta que FileLog procesa cada lΓ­nea de un archivo como un registro independiente y que no todos los formatos de datos son adecuados para ello.
ParΓ‘metros opcionales:
  • poll_timeout_ms - Tiempo de espera para una sola operaciΓ³n de sondeo del archivo de registro. Predeterminado: stream_poll_timeout_ms.
  • poll_max_batch_size β€” NΓΊmero mΓ‘ximo de registros que se pueden sondear en una sola operaciΓ³n. Predeterminado: max_block_size.
  • max_block_size β€” TamaΓ±o mΓ‘ximo del lote (en registros) para el sondeo. Predeterminado: max_insert_block_size.
  • max_threads - NΓΊmero mΓ‘ximo de hilos para analizar archivos; el valor predeterminado es 0, lo que significa que el nΓΊmero serΓ‘ max(1, physical_cpu_cores / 4).
  • poll_directory_watch_events_backoff_init - Valor de espera inicial para el hilo de supervisiΓ³n del directorio. Predeterminado: 500.
  • poll_directory_watch_events_backoff_max - Valor de espera mΓ‘ximo para el hilo de supervisiΓ³n del directorio. Predeterminado: 32000.
  • poll_directory_watch_events_backoff_factor - Velocidad del backoff; de forma predeterminada, es exponencial. Predeterminado: 2.
  • handle_error_mode β€” CΓ³mo gestionar los errores del motor FileLog. Valores posibles: default (se lanzarΓ‘ una excepciΓ³n si no se puede analizar un mensaje), stream (el mensaje de excepciΓ³n y el mensaje sin procesar se guardarΓ‘n en las columnas virtuales _error y _raw_message).

DescripciΓ³n

Los registros entregados se controlan automΓ‘ticamente, de modo que cada registro de un archivo de registro solo se cuenta una vez. SELECT no resulta especialmente ΓΊtil para leer registros (excepto para depuraciΓ³n), porque cada registro solo puede leerse una vez. Es mΓ‘s prΓ‘ctico crear hilos en tiempo real mediante vistas materializadas. Para ello:
  1. Use el motor para crear una tabla FileLog y considΓ©rela un flujo de datos.
  2. Cree una tabla con la estructura deseada.
  3. Cree una vista materializada que convierta los datos del motor y los inserte en una tabla creada previamente.
Cuando la MATERIALIZED VIEW se conecta al motor, comienza a recopilar datos en segundo plano. Esto le permite recibir continuamente registros de archivos de registro y convertirlos al formato requerido mediante SELECT. Una tabla FileLog puede tener tantas vistas materializadas como desee; no leen datos de la tabla directamente, sino que reciben nuevos registros (en bloques). De este modo, puede escribir en varias tablas con distintos niveles de detalle (con agrupaciΓ³n y agregaciΓ³n, y sin ellas). Ejemplo:
Para dejar de recibir datos de los streams o cambiar la lΓ³gica de conversiΓ³n, desvincula la vista materializada:
Si desea cambiar la tabla de destino con ALTER, le recomendamos deshabilitar la vista materializada para evitar discrepancias entre la tabla de destino y los datos de la vista.

Columnas virtuales

  • _filename - Nombre del archivo de registro. Tipo de dato: LowCardinality(String).
  • _offset - Desplazamiento en el archivo de registro. Tipo de dato: UInt64.
Columnas virtuales adicionales cuando handle_error_mode='stream':
  • _raw_record - Registro sin procesar que no pudo analizarse correctamente. Tipo de dato: Nullable(String).
  • _error - Mensaje de excepciΓ³n que se produjo durante un anΓ‘lisis fallido. Tipo de dato: Nullable(String).
Nota: las columnas virtuales _raw_record y _error solo se rellenan en caso de excepciΓ³n durante el anΓ‘lisis; siempre son NULL cuando el mensaje se analiza correctamente.
Última modificación el 3 de julio de 2026