الوصف
لا يُنشأ جدول system.part_log إلا إذا تم تحديد إعداد الخادم part_log.
يحتوي هذا الجدول على معلومات عن الأحداث التي طرأت على أجزاء البيانات في جداول عائلة MergeTree، مثل إضافة البيانات أو دمجها.
يحتوي جدول system.part_log على الأعمدة التالية:
الأعمدة
hostname(LowCardinality(String)) — اسم المضيف للخادم الذي ينفّذ الاستعلام.query_id(String) — معرّف استعلام INSERT الذي أنشأ جزء البيانات هذا.event_type(Enum8('NewPart' = 1, 'MergeParts' = 2, 'DownloadPart' = 3, 'RemovePart' = 4, 'MutatePart' = 5, 'MovePart' = 6, 'MergePartsStart' = 7, 'MutatePartStart' = 8)) — نوع الحدث الذي وقع على جزء البيانات. يمكن أن يأخذ إحدى القيم التالية: NewPart — إدراج جزء بيانات جديد، MergePartsStart — بدء دمج أجزاء البيانات، MergeParts — اكتمال دمج أجزاء البيانات، DownloadPart — تنزيل جزء بيانات، RemovePart — إزالة جزء بيانات أو فصله باستخدام DETACH PARTITION.MutatePartStart — بدء تعديل جزء بيانات، MutatePart — اكتمال تعديل جزء بيانات، MovePart — نقل جزء البيانات من قرص إلى آخر.merge_reason(Enum8('NotAMerge' = 1, 'RegularMerge' = 2, 'TTLDeleteMerge' = 3, 'TTLRecompressMerge' = 4, 'TTLDropMerge' = 5)) — سبب الحدث ذي النوع MERGE_PARTS. يمكن أن يأخذ إحدى القيم التالية: NotAMerge — الحدث الحالي ليس من النوع MERGE_PARTS، RegularMerge — دمج عادي، TTLDeleteMerge, TTLDropMerge — تنظيف البيانات منتهية الصلاحية. TTLRecompressMerge — إعادة ضغط جزء البيانات باستخدام .merge_algorithm(Enum8('Undecided' = 0, 'Vertical' = 1, 'Horizontal' = 2)) — خوارزمية الدمج للحدث ذي النوع MERGE_PARTS. يمكن أن يأخذ إحدى القيم التالية: Undecided, Horizontal, Verticalevent_date(Date) — تاريخ الحدث.event_time(DateTime) — وقت الحدث.event_time_microseconds(DateTime64(6)) — وقت الحدث بدقة الميكروثانية.duration_ms(UInt64) — مدة هذه العملية.database(String) — اسم قاعدة البيانات التي يوجد فيها جزء البيانات.table(String) — اسم الجدول الذي يوجد فيه جزء البيانات.table_uuid(UUID) — UUID للجدول الذي ينتمي إليه جزء البيانات.part_name(String) — اسم جزء البيانات.partition_id(String) — معرّف القسم الذي أُدرج فيه جزء البيانات. يأخذ العمود القيمةallإذا كان التقسيم يتم بواسطةtuple().partition(String) — اسم القسم.part_type(String) — نوع الجزء. القيم الممكنة: Wide و Compact.part_storage_type(String) — نوعDataPartStorage. القيم الممكنة:Packed- تُخزَّن معظم ملفات الجزء في أرشيف واحد (تُكتب الإسقاطات وبعض ملفات الخدمة مثلtxn_version.txtبشكل منفصل)،Full- يُخزَّن كل ملف بشكل منفصل.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(UInt64) — الحد الأقصى لذاكرة RAM المستخدمة أثناء الدمجdeduplication_block_ids(Array(String)) — مصفوفة من معرّفات الكتل المستخدمة لإزالة التكرار عند إدراج هذا الجزء.error(UInt16) — رمز خطأ الاستثناء الذي حدث.exception(String) — الرسالة النصية للخطأ الذي حدث.mutation_ids(Array(String)) — مصفوفة من معرّفات عمليات التعديل المطبّقة على الجزء المصدر (merged_from) للحدث من النوع MUTATE_PART_START و MUTATE_PART.ProfileEvents(Map(LowCardinality(String), UInt64)) — جميع أحداث القياس التفصيلي التي تم التقاطها أثناء هذه العملية.projections_duration_ms(Map(LowCardinality(String), UInt64)) — مدة دمج/إعادة بناء كل إسقاط، بالميلي ثانية.
الأسماء البديلة:
ProfileEvents.Names— اسم بديل لـmapKeys(ProfileEvents).ProfileEvents.Values— اسم بديل لـmapValues(ProfileEvents).name— اسم بديل لـpart_name.
يُنشأ جدول system.part_log بعد أول عملية إدراج للبيانات في جدول MergeTree.
مثال
SELECT * FROM system.part_log LIMIT 1 FORMAT Vertical;Row 1:
──────
hostname: clickhouse.eu-central1.internal
query_id:
event_type: MergeParts
merge_reason: RegularMerge
merge_algorithm: Vertical
event_date: 2025-07-19
event_time: 2025-07-19 23:54:19
event_time_microseconds: 2025-07-19 23:54:19.710761
duration_ms: 2158
database: default
table: github_events
table_uuid: 1ad33424-f5f5-402b-ac03-ec82282634ab
part_name: all_1_7_1
partition_id: all
partition: tuple()
part_type: Wide
part_storage_type: Full
disk_name: default
path_on_disk: ./data/store/1ad/1ad33424-f5f5-402b-ac03-ec82282634ab/all_1_7_1/
rows: 3285726 -- 3.29 million
size_in_bytes: 438968542 -- 438.97 million
merged_from: ['all_1_1_0','all_2_2_0','all_3_3_0','all_4_4_0','all_5_5_0','all_6_6_0','all_7_7_0']
bytes_uncompressed: 1373137767 -- 1.37 billion
read_rows: 3285726 -- 3.29 million
read_bytes: 1429206946 -- 1.43 billion
peak_memory_usage: 303611887 -- 303.61 million
error: 0
exception:
mutation_ids:
ProfileEvents: {'FileOpen':703,'ReadBufferFromFileDescriptorRead':3824,'ReadBufferFromFileDescriptorReadBytes':439601681,'WriteBufferFromFileDescriptorWrite':592,'WriteBufferFromFileDescriptorWriteBytes':438988500,'ReadCompressedBytes':439601681,'CompressedReadBufferBlocks':6314,'CompressedReadBufferBytes':1539835748,'OpenedFileCacheHits':50,'OpenedFileCacheMisses':484,'OpenedFileCacheMicroseconds':222,'IOBufferAllocs':1914,'IOBufferAllocBytes':319810140,'ArenaAllocChunks':8,'ArenaAllocBytes':131072,'MarkCacheMisses':7,'CreatedReadBufferOrdinary':534,'DiskReadElapsedMicroseconds':139058,'DiskWriteElapsedMicroseconds':51639,'AnalyzePatchRangesMicroseconds':28,'ExternalProcessingFilesTotal':1,'RowsReadByMainReader':170857759,'WaitMarksLoadMicroseconds':988,'LoadedMarksFiles':7,'LoadedMarksCount':14,'LoadedMarksMemoryBytes':728,'Merge':2,'MergeSourceParts':14,'MergedRows':3285733,'MergedColumns':4,'GatheredColumns':51,'MergedUncompressedBytes':1429207058,'MergeTotalMilliseconds':2158,'MergeExecuteMilliseconds':2155,'MergeHorizontalStageTotalMilliseconds':145,'MergeHorizontalStageExecuteMilliseconds':145,'MergeVerticalStageTotalMilliseconds':2008,'MergeVerticalStageExecuteMilliseconds':2006,'MergeProjectionStageTotalMilliseconds':5,'MergeProjectionStageExecuteMilliseconds':4,'MergingSortedMilliseconds':7,'GatheringColumnMilliseconds':56,'ContextLock':2091,'PartsLockHoldMicroseconds':77,'PartsLockWaitMicroseconds':1,'RealTimeMicroseconds':2157475,'CannotWriteToWriteBufferDiscard':36,'LogTrace':6,'LogDebug':59,'LoggerElapsedNanoseconds':514040,'ConcurrencyControlSlotsGranted':53,'ConcurrencyControlSlotsAcquired':53}