| Entrée | Sortie | Alias |
|---|---|---|
| ✔ | ✗ |
Description
Le format Regex analyse chaque ligne des données importées selon l’expression régulière fournie.
Utilisation
L’expression régulière définie par le paramètre format_regexp est appliquée à chaque ligne des données importées. Le nombre de sous-motifs dans l’expression régulière doit être égal au nombre de colonnes du jeu de données importé.
Les lignes des données importées doivent être séparées par le caractère de nouvelle ligne '\n' ou par un saut de ligne de style DOS "\r\n".
Le contenu de chaque sous-motif correspondant est analysé selon la méthode du type de données correspondant, conformément au paramètre format_regexp_escaping_rule.
Si l’expression régulière ne correspond pas à la ligne et que format_regexp_skip_unmatched est défini sur 1, la ligne est simplement ignorée. Sinon, une exception est levée.
Exemple d'utilisation
Prenons le fichier 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-03et la table imp_regex_table :
CREATE TABLE imp_regex_table (id UInt32, array Array(UInt32), string String, date Date) ENGINE = Memory;Nous allons insérer dans la table ci-dessus les données du fichier mentionné plus haut à l’aide de la requête suivante :
$ 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;"Nous pouvons maintenant SELECT les données de la table pour voir comment le format Regex a interprété les données du fichier :
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 │
└────┴─────────┴────────┴────────────┘Paramètres du format
Lorsque vous utilisez le format Regexp, vous pouvez utiliser les paramètres suivants :
-
format_regexp— String. Contient une expression régulière au format re2. -
format_regexp_escaping_rule— String. Les règles d’échappement suivantes sont prises en charge :- CSV (similaire à CSV
- JSON (similaire à JSONEachRow
- Escaped (similaire à TSV
- Quoted (similaire à Values
- Raw (extrait les sous-motifs dans leur intégralité, sans règle d’échappement, similaire à TSVRaw
-
format_regexp_skip_unmatched— UInt8. Définit s’il faut lever une exception lorsque l’expressionformat_regexpne correspond pas aux données importées. Peut être défini sur0ou1.