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

quantileGK

أُضيفت في: v23.4.0 تحسب الكمّ لتسلسل من البيانات الرقمية باستخدام خوارزمية Greenwald-Khanna. خوارزمية Greenwald-Khanna هي خوارزمية تُستخدم لحساب الكمّات على تدفق من البيانات بكفاءة عالية جدًا. وقد طرحها Michael Greenwald وSanjeev Khanna في عام 2001. وتُستخدم على نطاق واسع في قواعد البيانات وأنظمة البيانات الضخمة عندما يكون من الضروري حساب الكمّات بدقة على تدفق كبير من البيانات في الوقت الفعلي. وتتميّز الخوارزمية بكفاءة عالية جدًا، إذ لا تتطلب سوى مساحة O(log n) وزمن O(log log n) لكل عنصر (حيث إن n هو حجم المُدخلات). كما أنها عالية الدقة، إذ توفّر قيمة الكمّ تقريبية باحتمال مرتفع. تختلف quantileGK عن دوال الكمّ الأخرى في ClickHouse، لأنها تُمكّن المستخدم من التحكم في دقة نتيجة الكمّ التقريبية. الصيغة
quantileGK(accuracy, level)(expr)
الأسماء البديلة: medianGK المعلمات
  • accuracy — دقة الكمّ. عدد صحيح موجب ثابت. كلما زادت قيمة الدقة، قلّ الخطأ. على سبيل المثال، إذا ضُبطت وسيطة الدقة على 100، فسيكون للكمّ المحسوب خطأ لا يتجاوز 1% باحتمال مرتفع. توجد مفاضلة بين دقة القيم الكمية المحسوبة والتعقيد الحسابي للخوارزمية. فالدقة الأعلى تتطلب مزيدًا من الذاكرة والموارد الحسابية لحساب الكمّ بدقة، بينما تتيح وسيطة الدقة الأقل تنفيذ الحساب بشكل أسرع وبكفاءة أعلى في استخدام الذاكرة، لكن بدقة أقل قليلًا. UInt*
  • level — اختياري. مستوى الكمّ. عدد ثابت بفاصلة عائمة من 0 إلى 1. القيمة الافتراضية: 0.5. عند level=0.5 تحسب الدالة الوسيط. Float*
الوسائط
  • expr — تعبير على قيم العمود ينتج عنه أنواع بيانات رقمية أو Date أو DateTime. (U)Int* أو Float* أو Decimal* أو Date أو DateTime
القيمة المعادة تعيد الكمّ عند المستوى والدقة المحددين. Float64 أو Date أو DateTime أمثلة حساب الكمّ بمستويات دقة مختلفة
Query
SELECT quantileGK(1, 0.25)(number + 1) FROM numbers(1000);
Response
┌─quantileGK(1, 0.25)(plus(number, 1))─┐
│                                    1 │
└──────────────────────────────────────┘
كوانتايل بدقة أعلى
Query
SELECT quantileGK(100, 0.25)(number + 1) FROM numbers(1000);
Response
┌─quantileGK(100, 0.25)(plus(number, 1))─┐
│                                    251 │
└────────────────────────────────────────┘
راجع أيضًا
آخر تعديل في ٢٥ يونيو ٢٠٢٦