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

system.iceberg_metadata_log

Выполнение запросов в ClickHouse Cloud

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

Описание

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

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

Примечание

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

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

Вы можете указать, какие события метаданных будут записываться в лог, с помощью настройки 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 для файлов манифестов отключается.
  • Если запрос SELECT был отменен или завершился ошибкой, таблица логов может по-прежнему содержать записи о метаданных, обработанных до сбоя, но не будет содержать информацию о сущностях метаданных, которые не были обработаны.

Столбцы

ИмяТипОписание
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.
pruning_statusNullable(Enum8)Статус отсечения для записи. 'NotPruned', 'PartitionPruned', 'MinMaxIndexPruned'. Обратите внимание: отсечение партиций выполняется до minmax-отсечения, поэтому 'PartitionPruned' означает, что запись была отсечена фильтром партиций, и minmax-отсечение даже не выполнялось. Присутствует для типа содержимого ManifestFileEntry.

Значения content_type

  • None: Содержимое отсутствует.
  • Metadata: Корневой файл метаданных.
  • ManifestListMetadata: Файл метаданных списка манифестов.
  • ManifestListEntry: Запись в списке манифестов.
  • ManifestFileMetadata: Файл метаданных манифеста.
  • ManifestFileEntry: Запись в файле манифеста.

См. также