الانتقال إلى المحتوى الرئيسي
الحصص في ClickHouse Cloudالحصص مدعومة في ClickHouse Cloud، لكن يجب إنشاؤها باستخدام بناء جملة DDL. أمّا نهج التكوين عبر XML الموثَّق أدناه فهو غير مدعوم.
تتيح لك الحصص تقييد استخدام الموارد خلال فترة زمنية أو تتبّع استهلاك الموارد. تُعدّ الحصص في إعدادات المستخدم، والتي تكون عادةً في الملف ‘users.xml’. يتضمن النظام أيضًا ميزة لتقييد تعقيد استعلام واحد. راجع قسم قيود على تعقيد الاستعلام. وعلى خلاف قيود تعقيد الاستعلام، فإن الحصص:
  • تفرض قيودًا على مجموعة من الاستعلامات التي يمكن تشغيلها خلال فترة زمنية، بدلًا من تقييد استعلام واحد.
  • تحتسب الموارد المستهلكة على جميع الخوادم البعيدة ضمن معالجة الاستعلامات الموزعة.
لنلقِ نظرة على القسم في ملف ‘users.xml’ الذي يعرّف الحصص.
بشكل افتراضي، تتتبّع الحصة استهلاك الموارد كل ساعة، من دون تقييد الاستخدام. ويُسجَّل استهلاك الموارد المحسوب لكل فترة زمنية في سجل الخادم بعد كل طلب.
بالنسبة إلى الحصة ‘statbox’، تُحدَّد القيود لكل ساعة ولكل 24 ساعة (86,400 ثانية). ويُحتسب الفاصل الزمني ابتداءً من نقطة زمنية ثابتة يحددها التنفيذ. وبعبارة أخرى، ليس من الضروري أن تبدأ فترة الـ24 ساعة عند منتصف الليل. عند انتهاء الفاصل الزمني، تُصفَّر جميع القيم المجمَّعة. وبالنسبة إلى الساعة التالية، يبدأ احتساب الحصة من جديد. فيما يلي المقادير التي يمكن تقييدها: queries – العدد الإجمالي للاستعلامات. query_selects – العدد الإجمالي لطلبات SELECT. query_inserts – العدد الإجمالي لطلبات insert. errors – عدد الاستعلامات التي أطلقت استثناءً. result_rows – العدد الإجمالي للصفوف المُعادة كنتيجة. result_bytes - الحجم الإجمالي للصفوف المُعادة كنتيجة. read_rows – العدد الإجمالي لصفوف المصدر المقروءة من الجداول لتشغيل الاستعلام على جميع الخوادم البعيدة. read_bytes - الحجم الإجمالي المقروء من الجداول لتشغيل الاستعلام على جميع الخوادم البعيدة. written_bytes - الحجم الإجمالي لعملية الكتابة. execution_time – إجمالي زمن تنفيذ الاستعلام، بالثواني (زمن الساعة الفعلي). failed_sequential_authentications - العدد الإجمالي لأخطاء المصادقة المتسلسلة. queries_per_normalized_hash – الحد الأقصى لعدد مرات تنفيذ أي استعلام مُطبَّع واحد. الاستعلامات المُطبَّعة هي استعلامات استُبدلت فيها القيم الحرفية بعناصر نائبة، لذا يُعَدّ SELECT 1 وSELECT 2 الاستعلام المُطبَّع نفسه. ويُتتبَّع هذا الحد بشكل مستقل لكل نمط استعلام مُطبَّع مميّز. إذا تم تجاوز الحد خلال فترة زمنية واحدة على الأقل، يُطرَح استثناء يتضمن نصًا يوضّح أي قيد تم تجاوزه، ولأي فترة زمنية، ومتى تبدأ الفترة الجديدة (أي متى يمكن إرسال الاستعلامات مرة أخرى). يمكن أن تستخدم الحصص ميزة “quota key” للإبلاغ عن الموارد لعدة مفاتيح بشكل مستقل. وفيما يلي مثال على ذلك:
يمكنك أيضًا تعيين quotas استنادًا إلى تجزئة الاستعلام المُطبَّع، بحيث يكون لكل نمط استعلام مميّز حيّز حصة مستقل خاص به. في تكوين XML، يُكتب ذلك على النحو <keyed_by_normalized_query_hash />:
يمكن التعبير عن الأمر نفسه باستخدام بناء جملة DDL:
في هذا المثال، يمكن للمستخدم تنفيذ ما يصل إلى 100 مرة من كل استعلام مُطبَّع مميّز في الساعة. يشترك SELECT number FROM numbers(1) وSELECT number FROM numbers(2) في نفس حاوية الاحتساب (لأن لهما نفس الصيغة المعيارية)، لكن SELECT number, number FROM numbers(1) يستخدم حاوية احتساب منفصلة. تُسنَد الحصة إلى المستخدمين في قسم ‘users’ من ملف config. راجع قسم “أذونات الوصول”. في معالجة الاستعلامات الموزعة، تُخزَّن القيم المتراكمة على الخادم الذي يرسل الطلب. لذلك، إذا انتقل المستخدم إلى خادم آخر، فستبدأ الحصة هناك “من جديد”. عند إعادة تشغيل الخادم، تُصفَّر الحصص.”
آخر تعديل في ٢٥ يونيو ٢٠٢٦