Запросы в ClickHouse CloudДанные в этой системной таблице хранятся локально на каждом узле ClickHouse Cloud. Поэтому, чтобы получить полное представление обо всех данных, требуется функция
clusterAllReplicas. Дополнительные сведения см. здесь.Описание
Содержит статистику селективности по выборке, собранную при чтении из таблицMergeTree. Таблица заполняется только тогда, когда predicate_statistics_sample_rate больше 0.
Доступность
system.predicate_statistics_log создается только в том случае, если конфигурация сервера содержит раздел predicate_statistics_log. После создания Log задайте для predicate_statistics_sample_rate значение больше 0, чтобы начать сбор строк. Без раздела Log запросы к этой таблице завершаются ошибкой UNKNOWN_TABLE.
Виды строк
Один запрос может порождать два вида строк вsystem.predicate_statistics_log:
- Строки фильтров, создаваемые на каждом шаге prewhere/filter в
MergeTreeSelectProcessor. В них заполняютсяpredicate_expression,input_rows,passed_rows,filter_selectivity, а также столбцы, относящиеся ко всему предикату:total_input_rows,total_passed_rows,total_selectivity. Столбцы, связанные с индексами, остаются пустыми. - Строки индексов, создаваемые на каждом шаге чтения в
ReadFromMergeTree. В них заполняются массивыindex_names,index_types,total_granules,granules_afterиindex_selectivities— по одной записи на каждый этап индексации (primary key, партиция, индекс пропуска данных). Столбцы, связанные с предикатами, остаются пустыми.
query_id и table, поэтому при необходимости их можно объединить с помощью JOIN.
Сэмплирование и накладные расходы
Сэмплирование управляется параметромpredicate_statistics_sample_rate:
0отключает сбор.1включает сэмплирование каждого запроса.N > 1включает сэмплирование примерно1 / Nзапросов по хешуquery_id.
SYSTEM FLUSH LOGS, если нужно, чтобы строки появились сразу.
Эту таблицу можно безопасно очистить или удалить в любой момент.
Столбцы
hostname(LowCardinality(String)) — Имя хоста сервера, выполняющего запрос.clickhouse_version(LowCardinality(String)) — Версия сервера ClickHouse, создавшего строку.system_processor(LowCardinality(String)) — Архитектура CPU сервера ClickHouse, создавшего строку.event_date(Date) — Дата события.event_time(DateTime) — Временная метка, когда была сделана эта запись в журнале.database(LowCardinality(String)) — Имя базы данных целевой таблицы.table(LowCardinality(String)) — Имя целевой таблицы.query_id(String) — Идентификатор запроса для связи с query_log.predicate_expression(String) — Полное выражение фильтра, обрабатываемое на этом шаге prewhere/filter (дамп ActionsDAG).input_rows(UInt64) — Строки, поступающие на этот шаг prewhere/filter.passed_rows(UInt64) — Строки, прошедшие этот шаг prewhere/filter.filter_selectivity(Float64) — Селективность этого шага: passed_rows / input_rows.total_input_rows(UInt64) — Строки, поступающие на первый шаг prewhere (общее число строк, прочитанных из гранул).total_passed_rows(UInt64) — Строки, прошедшие все шаги prewhere (строки, переданные запросу).total_selectivity(Float64) — Селективность всего предиката: total_passed_rows / total_input_rows.index_names(Array(LowCardinality(String))) — Имена применённых индексов, например [‘PrimaryKey’, ‘idx_bf_status’] (только для строк индексов).index_types(Array(LowCardinality(String))) — Типы применённых индексов: PrimaryKey, Skip, MinMax, Partition (только для строк индексов).total_granules(Array(UInt64)) — Гранулы на входе каждого этапа индексации (только для строк индексов).granules_after(Array(UInt64)) — Гранулы, оставшиеся после каждого этапа индексации (только для строк индексов).index_selectivities(Array(Float64)) — Селективность каждого индекса: granules_after / total_granules (только для строк индексов).