الانتقال إلى المحتوى الرئيسي
يقوم المصدر YAMLRegExpTree بتحميل شجرة التعبيرات النمطية من ملف YAML على نظام الملفات المحلي. وقد صُمم حصريًا للاستخدام مع تخطيط القاموس regexp_tree ويوفّر تعيينات هرمية من التعبيرات النمطية إلى السمات لعمليات البحث المستندة إلى الأنماط، مثل تحليل user agent.
المصدر YAMLRegExpTree متاح فقط في ClickHouse Open Source. بالنسبة إلى ClickHouse Cloud، صدّر القاموس إلى CSV ثم حمّله عبر مصدر ClickHouse table بدلًا من ذلك. راجع استخدام قواميس regexp_tree في ClickHouse Cloud لمزيد من التفاصيل.

الإعداد

CREATE DICTIONARY regexp_dict
(
    regexp String,
    name String,
    version String
)
PRIMARY KEY(regexp)
SOURCE(YAMLRegExpTree(PATH '/var/lib/clickhouse/user_files/regexp_tree.yaml'))
LAYOUT(regexp_tree)
LIFETIME(0);
حقول الإعدادات:
الإعدادالوصف
PATHالمسار المطلق إلى ملف YAML الذي يحتوي على شجرة التعبيرات النمطية. وعند إنشائه عبر DDL، يجب أن يكون الملف موجودًا في الدليل user_files.

بنية ملف YAML

يحتوي ملف YAML على قائمة بعُقَد شجرة التعبيرات النمطية. ويمكن أن تتضمن كل عقدة سمات وعُقَد فرعية، بما يشكّل بنية هرمية:
- regexp: 'Linux/(\d+[\.\d]*).+tlinux'
  name: 'TencentOS'
  version: '\1'

- regexp: '\d+/tclwebkit(?:\d+[\.\d]*)'
  name: 'Android'
  versions:
    - regexp: '33/tclwebkit'
      version: '13'
    - regexp: '3[12]/tclwebkit'
      version: '12'
    - regexp: '30/tclwebkit'
      version: '11'
    - regexp: '29/tclwebkit'
      version: '10'
لكل عقدة البنية التالية:
  • regexp: التعبير النمطي لهذه العقدة.
  • attributes: سمات القاموس التي يعرّفها المستخدم (مثل name وversion). قد تحتوي قيم السمات على مراجع خلفية إلى مجموعات الالتقاط في التعبير النمطي، وتُكتب بالشكل \1 أو $1 (الأرقام من 1 إلى 9). وتُستبدل هذه المراجع بمجموعة الالتقاط المطابِقة وقت تنفيذ الاستعلام.
  • child nodes: قائمة بالعقد الفرعية، لكل منها سماتها الخاصة، وقد تحتوي أيضًا على مزيد من العقد الفرعية. اسم قائمة العقد الفرعية اختياري (مثل versions أعلاه). تجري مطابقة السلاسل النصية بأسلوب العمق أولًا: إذا طابقت سلسلة نصية عقدةً ما، فسيجري أيضًا التحقق من عقدها الفرعية. وتكون لسمات أعمق عقدة مطابِقة الأسبقية، فتتجاوز سمات العقدة الأصل ذات الاسم نفسه.
آخر تعديل في ٢٩ يونيو ٢٠٢٦