Descripción
La tabla system.iceberg_metadata_log registra eventos de acceso a metadatos y de análisis para las tablas Iceberg leídas por ClickHouse. Proporciona información detallada sobre cada archivo de metadatos o entrada procesados, lo que resulta útil para tareas de depuración, auditoría y para comprender la evolución de la estructura de las tablas Iceberg.
Esta tabla registra cada archivo de metadatos y cada entrada leídos de tablas Iceberg, incluidos los archivos de metadatos raíz, las listas de manifiestos y las entradas de manifiesto. Ayuda a los usuarios a seguir cómo ClickHouse interpreta los metadatos de las tablas Iceberg y a diagnosticar problemas relacionados con la evolución del esquema, la resolución de archivos o la planificación de consultas.
Control de la verbosidad del registro
Puede controlar qué eventos de metadatos se registran mediante la configuración iceberg_metadata_log_level.
Para registrar todos los metadatos utilizados en la consulta actual:
SELECT * FROM my_iceberg_table SETTINGS iceberg_metadata_log_level = 'manifest_file_entry';
SYSTEM FLUSH LOGS iceberg_metadata_log;
SELECT content_type, file_path, row_in_file
FROM system.iceberg_metadata_log
WHERE query_id = '{previous_query_id}';Para registrar únicamente el archivo JSON raíz de metadatos utilizado en la consulta actual:
SELECT * FROM my_iceberg_table SETTINGS iceberg_metadata_log_level = 'metadata';
SYSTEM FLUSH LOGS iceberg_metadata_log;
SELECT content_type, file_path, row_in_file
FROM system.iceberg_metadata_log
WHERE query_id = '{previous_query_id}';Consulte la descripción de la configuración iceberg_metadata_log_level para obtener más información.
Conviene saberlo
- Use
iceberg_metadata_log_levela nivel de consulta solo cuando necesite investigar su tabla Iceberg en detalle. De lo contrario, podría llenar la tabla de registro con una cantidad excesiva de metadatos y sufrir una degradación del rendimiento. - La tabla contiene entradas duplicadas, ya que está pensada principalmente para depuración y no garantiza la unicidad por entidad. Filas independientes almacenan el contenido y el estado de poda porque se recopilan en momentos distintos del programa. El contenido se recopila cuando se leen los metadatos; el estado de poda se recopila cuando se comprueban los metadatos para determinar si se pueden podar. Nunca confíe en la propia tabla para la deduplicación.
- Si usa un
content_typemás detallado queManifestListMetadata, la caché de metadatos de Iceberg se desactiva para las listas de manifiestos. - Del mismo modo, si usa un
content_typemás detallado queManifestFileMetadata, la caché de metadatos de Iceberg se desactiva para los archivos de manifiesto. - Si la consulta SELECT se canceló o falló, la tabla de registro aún puede contener entradas de metadatos procesados antes del fallo, pero no contendrá información sobre las entidades de metadatos que no se hayan procesado.
Columnas
hostname(LowCardinality(String)) — Nombre del host del servidor que ejecuta la consulta.event_date(Date) — Fecha de la entrada.event_time(DateTime) — Hora del evento.query_id(String) — ID de la consulta.content_type(Enum8('None' = 0, 'Metadata' = 1, 'ManifestListMetadata' = 2, 'ManifestListEntry' = 3, 'ManifestFileMetadata' = 4, 'ManifestFileEntry' = 5)) — Tipo de contenido.table_path(String) — Ruta de la tabla.file_path(String) — Ruta del archivo.content(String) — Contenido en formato JSON (contenido de archivo JSON, metadatos de Avro o entrada de Avro).row_in_file(Nullable(UInt64)) — Fila del archivo.pruning_status(Nullable(Enum8('NotPruned' = 0, 'PartitionPruned' = 1, 'MinMaxIndexPruned' = 2))) — Estado de la poda de particiones o de la poda del índice min-max para el archivo.
Valores de content_type
None: Sin contenido.Metadata: Archivo de metadatos raíz.ManifestListMetadata: Metadatos de la lista de manifiestos.ManifestListEntry: Entrada en la lista de manifiestos.ManifestFileMetadata: Metadatos del archivo de manifiesto.ManifestFileEntry: Entrada en el archivo de manifiesto.