Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

أوضاع الضغط

يدعم بروتوكول ClickHouse ضغط كتل البيانات مع قيم التحقق من السلامة. استخدم LZ4 إذا لم تكن متأكدًا من الوضع الذي ينبغي اختياره. ``

الأنماط

القيمة الاسم الوصف
0x02 None بدون ضغط، مع قيم التحقق فقط
0x82 LZ4 سريع للغاية، مع ضغط جيد
0x90 ZSTD ‏Zstandard، سريع نسبيًا، وأفضل ضغط

كلٌّ من LZ4 وZSTD من تطوير المطوّر نفسه، لكن مع مفاضلات مختلفة. من اختبارات الأداء لدى Facebook:

الاسم النسبة الترميز فك الترميز
zstd 1.4.5 -1 2.8 500 MB/s 1660 MB/s
lz4 1.9.2 2.1 740 MB/s 4530 MB/s

كتلة

الحقل النوع الوصف
قيمة التحقق uint128 تجزئة لـ (الترويسة + البيانات المضغوطة)
raw_size uint32 الحجم الخام من دون الترويسة
data_size uint32 حجم البيانات غير المضغوطة
وضع byte وضع الضغط
compressed_data binary كتلة بيانات مضغوطة
مخطط يوضح بنية كتلة الضغط في ClickHouse

الترويسة هي (raw_size + data_size + وضع)، والحجم الخام هو len(header + compressed_data).

قيمة التحقق هي hash(header + compressed_data)، باستخدام ClickHouse CityHash.

وضع None

إذا استُخدم وضع None، فإن compressed_data تكون مساوية للبيانات الأصلية. ويفيد وضع عدم الضغط في توفير درجة إضافية من سلامة البيانات باستخدام قيم التحقق، لأن الكلفة الإضافية للتجزئة لا تُذكر.

Navigation