system.part_log
在 ClickHouse Cloud 中进行查询
该系统表中的数据保存在 ClickHouse Cloud 中每个节点的本地。因此,如需获得所有数据的完整视图,需要使用 clusterAllReplicas 函数。更多详情请参阅此处。
只有在指定了 part_log 服务器设置时,才会创建 system.part_log 表。
此表包含关于 MergeTree 系列表中数据分片发生的事件的信息,例如数据的添加或合并。
system.part_log 表包含以下列:
hostname(LowCardinality(String)) — 执行该查询的服务器的主机名。query_id(String) — 用于创建此数据分片的INSERT查询的标识符。event_type(Enum8) — 在数据部分上发生的事件类型。可以是以下值之一:NewPart— 插入新的数据分片。MergePartsStart— 数据分片合并已开始。MergeParts— 数据分片合并已完成。DownloadPart— 下载数据分片。RemovePart— 使用 DETACH PARTITION 移除或分离数据分片。MutatePartStart— 数据分片变更操作已开始。MutatePart— 数据分片变更操作已完成。MovePart— 将数据分片从一个磁盘移动到另一个磁盘。
merge_reason(Enum8)— 类型为MERGE_PARTS的事件的原因。可以具有以下值之一:NotAMerge— 当前事件的类型不是MERGE_PARTS。RegularMerge— 一次常规合并。TTLDeleteMerge— 清理过期数据。TTLRecompressMerge— 对数据分片进行重新压缩。
merge_algorithm(Enum8) — 类型为MERGE_PARTS的事件所使用的合并算法。可以取以下值之一:未决定水平垂直
event_date(Date) — 事件日期。event_time(DateTime) — 事件时间。event_time_microseconds(DateTime64) — 具有微秒级精度的事件时间。duration_ms(UInt64) — 持续时间(毫秒)。database(String) — 数据部分所在的数据库名称。table(String) — 该数据分片所在表的名称。table_uuid(UUID) — 该数据部分所属表的 UUID。part_name(String) — 数据部分的名称。partition_id(String) — 数据部件写入到的分区 ID。如果按tuple()分区,则该列取值为all。partition(String) - 分区名称。part_type(String) - part 的类型。可能的取值有:Wide 和 Compact。disk_name(String) - 数据部件所在的磁盘名称。path_on_disk(String) — 包含数据部件文件的目录的绝对路径。rows(UInt64) — 数据部分中的行数。size_in_bytes(UInt64) — 数据部分的大小(以字节为单位)。merged_from(Array(String)) — 当前数据片(合并后)由其来源数据片名称组成的数组。bytes_uncompressed(UInt64) — 未压缩数据的字节数。read_rows(UInt64) — 在合并过程中读取的行数。read_bytes(UInt64) — 合并过程中读取的字节数。peak_memory_usage(Int64) — 在此线程上下文中,已分配内存与已释放内存之间的最大差值。error(UInt16) — 发生错误的代码号。exception(String) — 发生错误时的文本信息。ProfileEvents(Map(String, UInt64))— 用于统计不同指标的 ProfileEvents。相关说明可在表 system.events 中找到。
在首次向 MergeTree 表插入数据后,会创建 system.part_log 表。
示例