Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

إعدادات الجلسة group_by_*

تتوفر هذه الإعدادات في system.settings، وهي مُولَّدة تلقائيًا من المصدر.

group_by_overflow_mode

النوع
OverflowModeGroupBy
القيمة الافتراضية
throw

يحدد ما يحدث عندما يتجاوز عدد المفاتيح الفريدة للتجميع الحد المسموح به:

  • throw: طرح استثناء
  • break: إيقاف تنفيذ الاستعلام وإرجاع النتيجة الجزئية
  • any: متابعة التجميع للمفاتيح التي دخلت إلى المجموعة، ولكن من دون إضافة مفاتيح جديدة إليها.

يتيح لك استخدام القيمة 'any' تشغيل تقريب لـ GROUP BY. وتعتمد جودة هذا التقريب على الطبيعة الإحصائية للبيانات.

group_by_top_k_optimization_observation_rows

ميزة تجريبية
النوع
UInt64
القيمة الافتراضية
65536
سجل الإصدارات
الإصدارالقيمة الافتراضيةالتعليق
26.865536إعداد تجريبي جديد: عدد الصفوف التي يراقبها كل تدفق تجميع قبل اعتبار تجميد كومة top-K ممتلئة لم ترفض أي عناصر عبئًا إضافيًا محضًا.

بالنسبة إلى enable_group_by_top_k_optimization: عدد الصفوف التي يراقبها كل تدفق تجميع قبل تجميد كومة top-K ممتلئة تخطّت أقل من 10% من صفوف الإدخال وأخرجت مفاتيح أقل من سعتها. وتعني الكومة المجمّدة أن التجميع يستمر كما لو كان التحسين معطّلًا.

تبلغ النافذة الفعلية ضعفي الحجم المحجوز للكومة على الأقل، لذا تتاح للكومة دائمًا فرصة للامتلاء قبل تقييمها. تعطل القيمة 0 هذا التجميد (مع استمرار تجميد الكومة عندما تتجاوز مجموعة التعادلات عند الحد سعتها).

لا يؤثر هذا في استعلامات GROUP BY keys LIMIT K التي لا تتضمن ORDER BY، إذ يكون التجميد معطّلًا دائمًا فيها: تتضمن خطة هذا النمط ترتيبًا مُنشأً لا يحقق فائدة إلا ما دامت الكومة تحدّ من حجم جدول التجزئة، لذا فإن تجميد الكومة سيُبقي خطة أبطأ من الخطة غير المحسّنة.

group_by_two_level_threshold

النوع
UInt64
القيمة الافتراضية
100000

يبدأ التجميع ثنائي المستوى عند هذا العدد من المفاتيح. 0 - العتبة غير معيّنة.

group_by_two_level_threshold_bytes

النوع
UInt64
القيمة الافتراضية
50000000

اعتبارًا من أي حجم، بالبايت، لحالة التجميع يبدأ استخدام التجميع ثنائي المستوى. 0 - يعني أن العتبة غير معيّنة. ويُستخدم التجميع ثنائي المستوى عند تفعيل واحدة على الأقل من العتبات.

group_by_use_nulls

النوع
Bool
القيمة الافتراضية
0

يغيّر الطريقة التي يتعامل بها بند GROUP BY مع أنواع مفاتيح التجميع. عند استخدام المحددات ROLLUP أو CUBE أو GROUPING SETS، قد لا تُستخدم بعض مفاتيح التجميع في إنتاج بعض صفوف النتائج. تُملأ الأعمدة الخاصة بهذه المفاتيح إما بالقيمة الافتراضية أو بـ NULL في الصفوف المقابلة، وذلك وفقًا لهذا الإعداد.

القيم الممكنة:

  • 0 — تُستخدم القيمة الافتراضية لنوع مفتاح التجميع لتمثيل القيم المفقودة.
  • 1 — ينفّذ ClickHouse ‏GROUP BY بالطريقة نفسها التي يحددها معيار SQL. وتُحوَّل أنواع مفاتيح التجميع إلى Nullable. وتُملأ الأعمدة الخاصة بمفاتيح التجميع المقابلة بقيمة NULL في الصفوف التي لم تُستخدم فيها.

انظر أيضًا:

Navigation