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

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, списку манифестов или файлу манифеста.
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 отключается для файлов манифеста.

См. также