الانتقال إلى المحتوى الرئيسي

estimateCompressionRatio

أُضيف في: v25.4.0 تُقدِّر نسبة الضغط لعمود معيّن دون ضغطه فعليًا.
في الأمثلة أدناه، ستختلف النتيجة بحسب ترميز الضغط الافتراضي للخادم. راجع ترميزات ضغط الأعمدة.
الصيغة
estimateCompressionRatio([codec, block_size_bytes])(column)
المعلمات
  • codec — قيمة String تحتوي على codec ضغط واحد أو عدة codecs مفصولة بفواصل ضمن سلسلة واحدة. String
  • block_size_bytes — حجم كتلة البيانات المضغوطة. وهذا يشبه ضبط كلٍّ من max_compress_block_size وmin_compress_block_size. القيمة الافتراضية هي 1 MiB ‏(1048576 بايت). والحد الأقصى المسموح به هو 256 MiB ‏(268435456 بايت). UInt64
الوسائط
  • column — عمود من أي نوع. Any
القيمة المرجعة تعيد قيمة تقديرية لنسبة الضغط للعمود المحدد. Float64 أمثلة الاستخدام الأساسي مع codec الافتراضي
Query
CREATE TABLE compression_estimate_example
(
    `number` UInt64
)
ENGINE = MergeTree()
ORDER BY number
SETTINGS min_bytes_for_wide_part = 0;

INSERT INTO compression_estimate_example
SELECT number FROM system.numbers LIMIT 100_000;

SELECT estimateCompressionRatio(number) AS estimate FROM compression_estimate_example
Response
┌───────────estimate─┐
│ 1.9988506608699999 │
└────────────────────┘
استخدام خوارزمية ضغط معيّنة
Query
SELECT estimateCompressionRatio('T64')(number) AS estimate FROM compression_estimate_example
Response
┌──────────estimate─┐
│ 3.762758101688538 │
└───────────────────┘
استخدام عدة خوارزميات ضغط
Query
SELECT estimateCompressionRatio('T64, ZSTD')(number) AS estimate FROM compression_estimate_example
Response
┌───────────estimate─┐
│ 143.60078980434392 │
└────────────────────┘
آخر تعديل في ٢٥ يونيو ٢٠٢٦