GraphiteMergeTree. يقلل هذا المحرك من حجم التخزين ويزيد من كفاءة استعلامات Graphite.
يرث هذا المحرك خصائصه من MergeTree.
إنشاء جدول
-
اسم المقياس (Graphite sensor). نوع البيانات:
String. -
وقت قياس المقياس. نوع البيانات:
DateTime. -
قيمة المقياس. نوع البيانات:
Float64. - إصدار المقياس. نوع البيانات: أي نوع رقمي (يحفظ ClickHouse الصفوف ذات الإصدار الأعلى، أو آخر صف كُتب إذا كانت الإصدارات متساوية. وتُحذف الصفوف الأخرى أثناء دمج أجزاء البيانات).
config_section— اسم القسم في ملف الإعدادات الذي تُضبط فيه قواعد rollup.
GraphiteMergeTree، تكون البنود نفسها مطلوبة كما هي الحال عند إنشاء جدول MergeTree.
تهيئة rollup
- الأعمدة المطلوبة
- الأنماط
الأعمدة المطلوبة
path_column_name
path_column_name — اسم العمود الذي يخزّن اسم المقياس (Graphite sensor). القيمة الافتراضية: Path.
time_column_name
time_column_name — اسم العمود الذي يخزّن وقت قياس المقياس. القيمة الافتراضية: Time.
value_column_name
value_column_name — اسم العمود الذي يخزّن قيمة المقياس عند الوقت المحدَّد في time_column_name. القيمة الافتراضية: Value.
version_column_name
version_column_name — اسم العمود الذي يخزّن إصدار المقياس. القيمة الافتراضية: Timestamp.
الأنماط
patterns:
pattern. ويمكن لكل قسم من أقسام pattern (بما في ذلك default) أن يحتوي على المعلَمة function للتجميع، أو معلَمات retention، أو كليهما. إذا طابق اسم المقياس regexp، فستُطبَّق القواعد من قسم pattern (أو الأقسام)؛ وإلا فستُستخدم القواعد من قسم default.
الحقول الخاصة بقسمي pattern وdefault:
rule_type- نوع القاعدة. لا تُطبَّق إلا على مقاييس معيّنة. يستخدمها المحرّك للفصل بين المقاييس العادية والمقاييس الموسومة. معلَمة اختيارية. القيمة الافتراضية:all. لا تكون ضرورية إذا لم يكن الأداء بالغ الأهمية، أو إذا كان يُستخدم نوع واحد فقط من المقاييس، مثل المقاييس العادية. افتراضيًا، لا تُنشأ إلا مجموعة واحدة من القواعد. بخلاف ذلك، إذا جرى تعريف أي من الأنواع الخاصة، فستُنشأ مجموعتان مختلفتان: واحدة للمقاييس العادية (root.branch.leaf) وأخرى للمقاييس الموسومة (root.branch.leaf;tag1=value1). وتُدرج القواعد الافتراضية ضمن كلتا المجموعتين. القيم الصالحة:all(الافتراضية) - قاعدة عامة تُستخدم عند حذفrule_type.plain- قاعدة للمقاييس العادية. يُعالَج الحقلregexpبوصفه تعبيرًا نمطيًا.tagged- قاعدة للمقاييس الموسومة (تُخزَّن المقاييس في DB بالتنسيقsomeName?tag1=value1&tag2=value2&tag3=value3). يجب أن يكون التعبير النمطي مرتبًا بحسب أسماء tags، ويجب أن يكون أول tag هو__name__إن وُجد. يُعالَج الحقلregexpبوصفه تعبيرًا نمطيًا.tag_list- قاعدة للمقاييس الموسومة، وهي DSL بسيطة لتسهيل وصف المقياس بتنسيق graphite مثلsomeName;tag1=value1;tag2=value2أوsomeNameأوtag1=value1;tag2=value2. يُترجم الحقلregexpإلى قاعدةtagged. لا حاجة إلى الترتيب حسب أسماء tags، إذ سيُجرى ذلك تلقائيًا. ويمكن تعيين قيمة tag (وليس الاسم) على هيئة تعبير نمطي، مثلenv=(dev|staging).
regexp– نمط لاسم المقياس (تعبير نمطي أو DSL).age– الحد الأدنى لعمر البيانات بالثواني.precision– مدى الدقة في تحديد عمر البيانات بالثواني. يجب أن يكون قاسمًا للعدد 86400 (عدد الثواني في اليوم).function– اسم دالة التجميع التي ستُطبَّق على البيانات التي يقع عمرها ضمن المجال[age, age + precision]. الدوال المقبولة: min / max / any / avg. يُحسَب المتوسط بشكل غير دقيق، مثل متوسط المتوسطات.
مثال على التهيئة من دون أنواع القواعد
مثال على التهيئة لأنواع القواعد
تُجرى عملية rollup للبيانات أثناء عمليات الدمج. وعادةً لا تبدأ عمليات الدمج للأقسام القديمة، لذلك يلزم، لتنفيذ rollup، تشغيل عملية دمج غير مجدولة باستخدام optimize. أو استخدام أدوات إضافية، مثل graphite-ch-optimizer.