| الإدخال | الإخراج | الاسم المستعار |
|---|---|---|
| ✔ | ✗ |
الوصف
يحلّل التنسيق Regex كل سطر من البيانات المستوردة وفقًا للتعبير النمطي المُحدَّد.
الاستخدام
يُطبَّق التعبير النمطي من إعداد format_regexp على كل سطر من البيانات المستوردة. ويجب أن يساوي عدد الأنماط الفرعية في التعبير النمطي عدد الأعمدة في مجموعة البيانات المستوردة.
يجب أن تكون أسطر البيانات المستوردة مفصولة بمحرف سطر جديد '\n' أو بمحرف سطر جديد بنمط DOS "\r\n".
يُحلَّل محتوى كل نمط فرعي مطابق باستخدام طريقة التحليل الخاصة بنوع البيانات المقابل، وفقًا لإعداد format_regexp_escaping_rule.
إذا لم يطابق التعبير النمطي السطر وكان format_regexp_skip_unmatched مضبوطًا على 1، فسيتم تخطي السطر بصمت. وإلا، يُطرَح استثناء.
مثال للاستخدام
لنفترض وجود الملف 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:
CREATE TABLE imp_regex_table (id UInt32, array Array(UInt32), string String, date Date) ENGINE = Memory;سنُدرِج البيانات من الملف المذكور أعلاه في الجدول أعلاه باستخدام الاستعلام التالي:
$ 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 البيانات من الملف:
SELECT * FROM imp_regex_table;┌─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_regexp_escaping_rule— String. قواعد الإفلات التالية مدعومة:- CSV (على غرار CSV
- JSON (على غرار JSONEachRow
- Escaped (على غرار TSV
- Quoted (على غرار Values
- Raw (يستخرج الأنماط الفرعية كاملةً، من دون قواعد إفلات، على غرار TSVRaw
-
format_regexp_skip_unmatched— UInt8. يحدد ما إذا كان ينبغي إطلاق استثناء إذا لم يطابق التعبيرformat_regexpالبيانات المستوردة. يمكن ضبطه على0أو1.