跳转到主内容
跳转到主内容

system.iceberg_metadata_log

在 ClickHouse Cloud 中进行查询

该系统表中的数据保存在 ClickHouse Cloud 中每个节点的本地。因此,如需获得所有数据的完整视图,需要使用 clusterAllReplicas 函数。更多详情请参阅此处

说明

system.iceberg_metadata_log 表会记录 ClickHouse 读取 Iceberg 表时的元数据访问和解析事件。它会提供每个已处理的元数据文件或条目的详细信息,这对于调试、审计以及了解 Iceberg 表结构的演变非常有用。

该表会记录从 Iceberg 表读取的每个元数据文件和条目,包括根元数据文件、manifest 列表和 manifest 条目。它有助于用户跟踪 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 表时,才在查询级别使用 iceberg_metadata_log_level。否则,日志表可能会写入过多元数据,并导致性能下降。
  • 该表包含重复条目,因为它主要用于调试,且不保证每个实体的唯一性。内容和剪枝状态分别存储在不同的行中,因为它们是在程序运行的不同时间点采集的。读取元数据时会采集内容,检查元数据以进行剪枝时会采集剪枝状态。切勿依赖该表本身进行去重。
  • 如果使用比 ManifestListMetadata 更详细的 content_type,则会禁用 manifest 列表的 Iceberg 元数据缓存。
  • 同样,如果使用比 ManifestFileMetadata 更详细的 content_type,则会禁用 manifest 文件的 Iceberg 元数据缓存。
  • 如果 SELECT 查询被取消或失败,日志表中仍可能包含在取消或失败前已处理的元数据条目,但不会包含尚未处理的元数据实体信息。

NameTypeDescription
event_dateDate日志条目的日期。
event_timeDateTime事件的时间戳。
query_idString触发元数据读取的查询 ID。
content_typeEnum8元数据内容类型 (见下文) 。
table_pathStringIceberg 表的路径。
file_pathString根元数据 JSON 文件、Avro manifest list 或 manifest 文件的路径。
contentStringJSON 格式的内容 (原始 .json 元数据、Avro 元数据或 Avro 条目) 。
row_in_fileNullable(UInt64)文件中的行号 (如适用) 。仅在 ManifestListEntryManifestFileEntry 内容类型中出现。
pruning_statusNullable(Enum8)条目的剪枝状态。'NotPruned'、'PartitionPruned'、'MinMaxIndexPruned'。请注意,分区剪枝会先于 minmax 剪枝执行,因此 'PartitionPruned' 表示该条目已被分区过滤器剪枝,且不会再尝试进行 minmax 剪枝。仅在 ManifestFileEntry 内容类型中出现。

content_type 取值

  • None:无内容。
  • Metadata:根元数据文件。
  • ManifestListMetadata:manifest 列表的元数据。
  • ManifestListEntry:manifest 列表中的条目。
  • ManifestFileMetadata:manifest 文件的元数据。
  • ManifestFileEntry:manifest 文件中的条目。

另请参见