Перейти к основному содержанию
Перейти к основному содержанию

system.iceberg_metadata_log

Таблица system.iceberg_metadata_log фиксирует события доступа к метаданным и их разбора для таблиц Iceberg, прочитанных ClickHouse. Она предоставляет подробную информацию о каждом обработанном файле или записи метаданных, что полезно для отладки, аудита и анализа эволюции структуры таблиц Iceberg.

Назначение

Эта таблица фиксирует каждый файл и каждую запись метаданных, прочитанные из таблиц Iceberg, включая корневые файлы метаданных, списки манифестов и записи манифестов. Она помогает пользователям отследить, как ClickHouse интерпретирует метаданные таблиц Iceberg, и диагностировать проблемы, связанные с эволюцией схемы, поиском и разрешением файлов или планированием выполнения запросов.

Примечание

Эта таблица в первую очередь предназначена для отладки.

Столбцы

ИмяТипОписание
event_dateDateДата записи лога.
event_timeDateTimeВременная метка события.
query_idStringИдентификатор запроса, который инициировал чтение метаданных.
content_typeEnum8Тип содержимого метаданных (см. ниже).
table_pathStringПуть к таблице Iceberg.
file_pathStringПуть к корневому файлу метаданных в формате JSON, списку манифестов Avro или файлу манифеста.
contentStringСодержимое в формате JSON (исходные метаданные из файла .json, метаданные Avro или запись Avro).
row_in_fileNullable(UInt64)Номер строки в файле, если применимо. Заполняется для типов содержимого ManifestListEntry и ManifestFileEntry.

Значения content_type

  • None: Нет содержимого.
  • Metadata: Корневой файл метаданных.
  • ManifestListMetadata: Метаданные списка манифестов.
  • ManifestListEntry: Запись в списке манифестов.
  • ManifestFileMetadata: Метаданные файла манифеста.
  • ManifestFileEntry: Запись в файле манифеста.
Выполнение запросов в ClickHouse Cloud

Данные в этой системной таблице хранятся локально на каждом узле в ClickHouse Cloud. Поэтому для получения полного обзора всех данных требуется функция clusterAllReplicas. Подробности см. здесь.

Управление подробностью журналирования

Вы можете управлять тем, какие события, связанные с метаданными, записываются в журнал, с помощью настройки iceberg_metadata_log_level.

Чтобы записывать в журнал все метаданные, используемые в текущем запросе:

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}';

Чтобы логировать только корневой JSON‑файл метаданных, используемый в текущем запросе:

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}';

См. дополнительную информацию в описании настройки iceberg_metadata_log_level.

Полезная информация

  • Используйте iceberg_metadata_log_level на уровне запроса только тогда, когда вам нужно детально исследовать таблицу Iceberg. В противном случае вы можете заполнить таблицу логов избыточными метаданными и столкнуться с ухудшением производительности.
  • Таблица может содержать дублирующиеся записи, так как она предназначена в первую очередь для отладки и не гарантирует уникальность записей для каждой сущности.
  • Если вы используете content_type, более подробный, чем ManifestListMetadata, кэш метаданных Iceberg для списков манифестов отключается.
  • Аналогично, если вы используете content_type, более подробный, чем ManifestFileMetadata, кэш метаданных Iceberg для файлов манифестов отключается.

См. также