Consultas en ClickHouse CloudLos datos de esta tabla del sistema se almacenan localmente en cada nodo de ClickHouse Cloud. Por lo tanto, para obtener una vista completa de todos los datos, es necesario usar la función
clusterAllReplicas. Consulta aquí para más detalles.Descripción
Contiene estadísticas de selectividad obtenidas por muestreo durante la lectura de tablasMergeTree. La tabla se rellena solo cuando predicate_statistics_sample_rate es mayor que 0.
Disponibilidad
system.predicate_statistics_log se crea únicamente cuando la configuración del servidor contiene una sección predicate_statistics_log. Después de crear el log, establezca predicate_statistics_sample_rate en un valor mayor que 0 para recopilar filas. Sin la sección del log, las consultas sobre la tabla fallan con UNKNOWN_TABLE.
Estructura de las filas
Una sola consulta puede producir dos tipos de filas ensystem.predicate_statistics_log:
- Filas de filtro, emitidas en cada paso de prewhere/filtro en
MergeTreeSelectProcessor. Completanpredicate_expression,input_rows,passed_rows,filter_selectivityy las columnas del predicado completototal_input_rows,total_passed_rows,total_selectivity. Las columnas relacionadas con índices quedan vacías. - Filas de índice, emitidas en cada paso de lectura en
ReadFromMergeTree. Completan los arraysindex_names,index_types,total_granules,granules_aftereindex_selectivities, con una entrada por cada etapa del índice (clave primaria, partición, índices de omisión). Las columnas relacionadas con predicados quedan vacías.
query_id y la misma table, por lo que se pueden unir cuando se necesiten ambas.
Muestreo y sobrecarga
El muestreo se controla conpredicate_statistics_sample_rate:
0desactiva la recopilación.1toma una muestra de cada consulta.N > 1toma muestras de aproximadamente1 / Nde las consultas, aplicando hash aquery_id.
SYSTEM FLUSH LOGS si necesitas que las filas aparezcan de inmediato.
Es seguro truncar o eliminar esta tabla en cualquier momento.
Columnas
hostname(LowCardinality(String)) — Hostname del servidor que ejecuta la consulta.clickhouse_version(LowCardinality(String)) — Versión del ClickHouse servidor que produjo la fila.system_processor(LowCardinality(String)) — Arquitectura de CPU del ClickHouse servidor que produjo la fila.event_date(Date) — Fecha del evento.event_time(DateTime) — Marca temporal en la que se escribió esta entrada de log.database(LowCardinality(String)) — Nombre de la base de datos de la tabla de destino.table(LowCardinality(String)) — Nombre de la tabla de destino.query_id(String) — ID de la consulta para vincularla de nuevo con query_log.predicate_expression(String) — Expresión de filtro completa procesada en este paso de prewhere/filtro (volcado de ActionsDAG).input_rows(UInt64) — Filas que entran en este paso de prewhere/filtro.passed_rows(UInt64) — Filas que pasan este paso de prewhere/filtro.filter_selectivity(Float64) — Selectividad de este paso: passed_rows / input_rows.total_input_rows(UInt64) — Filas que entran en el primer paso de prewhere (total de filas leídas de los gránulos).total_passed_rows(UInt64) — Filas que pasan todos los pasos de prewhere (filas entregadas a la consulta).total_selectivity(Float64) — Selectividad del predicado completo: total_passed_rows / total_input_rows.index_names(Array(LowCardinality(String))) — Nombres de los índices aplicados, por ejemplo [‘PrimaryKey’, ‘idx_bf_status’] (solo para filas de índice).index_types(Array(LowCardinality(String))) — Tipos de índices aplicados: PrimaryKey, Skip, MinMax, Partition (solo para filas de índice).total_granules(Array(UInt64)) — Gránulos que entran en cada etapa del índice (solo para filas de índice).granules_after(Array(UInt64)) — Gránulos restantes después de cada etapa del índice (solo para filas de índice).index_selectivities(Array(Float64)) — Selectividad por índice: granules_after / total_granules (solo para filas de índice).