system.iceberg_metadata_log
Данные в этой системной таблице хранятся локально на каждом узле в ClickHouse Cloud. Поэтому для получения полного обзора всех данных требуется функция clusterAllReplicas. Подробности см. здесь.
Описание
Таблица system.iceberg_metadata_log фиксирует события доступа к метаданным и их разбора для таблиц Iceberg, которые читает ClickHouse. Она содержит подробную информацию о каждом обработанном файле метаданных или записи, что полезно для отладки, аудита и понимания того, как меняется структура таблиц Iceberg.
В этой таблице регистрируются все файлы метаданных и все записи, прочитанные из таблиц Iceberg, включая корневые файлы метаданных, списки манифестов и записи манифестов. Она помогает отслеживать, как ClickHouse интерпретирует метаданные таблиц Iceberg, и диагностировать проблемы, связанные со schema, определением файлов или построением плана запроса.
Эта таблица в первую очередь предназначена для отладки.
Управление подробностью логов
Вы можете указать, какие события метаданных будут записываться в лог, с помощью настройки iceberg_metadata_log_level.
Чтобы записывать в лог все метаданные, используемые в текущем запросе:
Чтобы логировать только корневой JSON-файл метаданных, используемый в текущем запросе:
Дополнительную информацию см. в описании настройки iceberg_metadata_log_level.
Полезно знать
- Используйте
iceberg_metadata_log_levelна уровне запроса только тогда, когда нужно детально исследовать таблицу Iceberg. В противном случае таблица логов может заполниться избыточными метаданными, что приведет к снижению производительности. - Таблица содержит повторяющиеся записи, так как предназначена в первую очередь для отладки и не гарантирует уникальность для каждой сущности. Содержимое и статус отсечения хранятся в отдельных строках, поскольку собираются в разные моменты работы программы. Содержимое собирается при чтении метаданных, а статус отсечения — при проверке метаданных на отсечение. Никогда не используйте саму таблицу для дедупликации.
- Если используется
content_typeс уровнем детализации выше, чемManifestListMetadata, кэш метаданных Iceberg для списков манифестов отключается. - Аналогично, если используется
content_typeс уровнем детализации выше, чемManifestFileMetadata, кэш метаданных Iceberg для файлов манифестов отключается. - Если запрос SELECT был отменен или завершился ошибкой, таблица логов может по-прежнему содержать записи о метаданных, обработанных до сбоя, но не будет содержать информацию о сущностях метаданных, которые не были обработаны.
Столбцы
| Имя | Тип | Описание |
|---|---|---|
event_date | Date | Дата записи в журнале. |
event_time | DateTime | Метка времени события. |
query_id | String | Идентификатор запроса, который инициировал чтение метаданных. |
content_type | Enum8 | Тип содержимого метаданных (см. ниже). |
table_path | String | Путь к таблице Iceberg. |
file_path | String | Путь к корневому JSON-файлу метаданных, списку манифестов Avro или файлу манифеста. |
content | String | Содержимое в формате JSON (исходные метаданные из .json, метаданные Avro или запись Avro). |
row_in_file | Nullable(UInt64) | Номер строки в файле, если применимо. Присутствует для типов содержимого ManifestListEntry и ManifestFileEntry. |
pruning_status | Nullable(Enum8) | Статус отсечения для записи. 'NotPruned', 'PartitionPruned', 'MinMaxIndexPruned'. Обратите внимание: отсечение партиций выполняется до minmax-отсечения, поэтому 'PartitionPruned' означает, что запись была отсечена фильтром партиций, и minmax-отсечение даже не выполнялось. Присутствует для типа содержимого ManifestFileEntry. |
Значения content_type
None: Содержимое отсутствует.Metadata: Корневой файл метаданных.ManifestListMetadata: Файл метаданных списка манифестов.ManifestListEntry: Запись в списке манифестов.ManifestFileMetadata: Файл метаданных манифеста.ManifestFileEntry: Запись в файле манифеста.