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 был отменен или завершился ошибкой, таблица логов может по-прежнему содержать записи о метаданных, обработанных до сбоя, но не будет содержать информацию о сущностях метаданных, которые не были обработаны.
Столбцы
hostname(LowCardinality(String)) — Имя хоста сервера, выполняющего запрос.event_date(Date) — Дата записи.event_time(DateTime) — Время события.query_id(String) — Идентификатор запроса.content_type(Enum8('None' = 0, 'Metadata' = 1, 'ManifestListMetadata' = 2, 'ManifestListEntry' = 3, 'ManifestFileMetadata' = 4, 'ManifestFileEntry' = 5)) — Тип содержимого.table_path(String) — Путь к таблице.file_path(String) — Путь к файлу.content(String) — Содержимое в формате JSON (содержимое JSON-файла, метаданные Avro или запись Avro).row_in_file(Nullable(UInt64)) — Строка в файле.pruning_status(Nullable(Enum8('NotPruned' = 0, 'PartitionPruned' = 1, 'MinMaxIndexPruned' = 2))) — Статус отсечения по партициям или по min-max индексу для файла.
Значения content_type
None: Содержимое отсутствует.Metadata: Корневой файл метаданных.ManifestListMetadata: Файл метаданных списка манифестов.ManifestListEntry: Запись в списке манифестов.ManifestFileMetadata: Файл метаданных манифеста.ManifestFileEntry: Запись в файле манифеста.