الانتقال إلى المحتوى الرئيسي
الإدخالالإخراجالاسم المستعار

الوصف

يحلّل التنسيق Regex كل سطر من البيانات المستوردة وفقًا للتعبير النمطي المُحدَّد. الاستخدام يُطبَّق التعبير النمطي من إعداد format_regexp على كل سطر من البيانات المستوردة. ويجب أن يساوي عدد الأنماط الفرعية في التعبير النمطي عدد الأعمدة في مجموعة البيانات المستوردة. يجب أن تكون أسطر البيانات المستوردة مفصولة بمحرف سطر جديد '\n' أو بمحرف سطر جديد بنمط DOS "\r\n". يُحلَّل محتوى كل نمط فرعي مطابق باستخدام طريقة التحليل الخاصة بنوع البيانات المقابل، وفقًا لإعداد format_regexp_escaping_rule. إذا لم يطابق التعبير النمطي السطر وكان format_regexp_skip_unmatched مضبوطًا على 1، فسيتم تخطي السطر بصمت. وإلا، يُطرَح استثناء.

مثال للاستخدام

لنفترض وجود الملف data.tsv:
data.tsv
id: 1 array: [1,2,3] string: str1 date: 2020-01-01
id: 2 array: [1,2,3] string: str2 date: 2020-01-02
id: 3 array: [1,2,3] string: str3 date: 2020-01-03
والجدول imp_regex_table:
Query
CREATE TABLE imp_regex_table (id UInt32, array Array(UInt32), string String, date Date) ENGINE = Memory;
سنُدرِج البيانات من الملف المذكور أعلاه في الجدول أعلاه باستخدام الاستعلام التالي:
Query
$ cat data.tsv | clickhouse-client  --query "INSERT INTO imp_regex_table SETTINGS format_regexp='id: (.+?) array: (.+?) string: (.+?) date: (.+?)', format_regexp_escaping_rule='Escaped', format_regexp_skip_unmatched=0 FORMAT Regexp;"
يمكننا الآن SELECT البيانات من الجدول لمعرفة كيف حلّل تنسيق Regex البيانات من الملف:
Query
SELECT * FROM imp_regex_table;
Response
┌─id─┬─array───┬─string─┬───────date─┐
│  1 │ [1,2,3] │ str1   │ 2020-01-01 │
│  2 │ [1,2,3] │ str2   │ 2020-01-02 │
│  3 │ [1,2,3] │ str3   │ 2020-01-03 │
└────┴─────────┴────────┴────────────┘

إعدادات التنسيق

عند العمل مع تنسيق Regexp، يمكنك استخدام الإعدادات التالية:
  • format_regexpString. يحتوي على تعبير نمطي بتنسيق re2.
  • format_regexp_escaping_ruleString. قواعد الإفلات التالية مدعومة:
    • CSV (على غرار CSV
    • JSON (على غرار JSONEachRow
    • Escaped (على غرار TSV
    • Quoted (على غرار Values
    • Raw (يستخرج الأنماط الفرعية كاملةً، من دون قواعد إفلات، على غرار TSVRaw
  • format_regexp_skip_unmatchedUInt8. يحدد ما إذا كان ينبغي إطلاق استثناء إذا لم يطابق التعبير format_regexp البيانات المستوردة. يمكن ضبطه على 0 أو 1.
آخر تعديل في ٢٩ يونيو ٢٠٢٦