| Entrada | Salida | Alias |
|---|---|---|
| ✔ | ✗ |
Descripción
El formato Regex analiza cada línea de los datos importados según la expresión regular proporcionada.
Uso
La expresión regular definida en la configuración format_regexp se aplica a cada línea de los datos importados. El número de subpatrones de la expresión regular debe ser igual al número de columnas del conjunto de datos importado.
Las líneas de los datos importados deben estar separadas por el carácter de nueva línea '\n' o por una nueva línea de estilo DOS "\r\n".
El contenido de cada subpatrón coincidente se analiza con el método del tipo de dato correspondiente, de acuerdo con la configuración format_regexp_escaping_rule.
Si la expresión regular no coincide con la línea y format_regexp_skip_unmatched está establecido en 1, la línea se omite sin avisar. De lo contrario, se genera una excepción.
Ejemplo de uso
Considere el archivo 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-03y la tabla imp_regex_table:
CREATE TABLE imp_regex_table (id UInt32, array Array(UInt32), string String, date Date) ENGINE = Memory;Insertaremos los datos del archivo mencionado anteriormente en la tabla de arriba mediante la siguiente consulta:
$ 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;"Ahora podemos SELECT los datos de la tabla para ver cómo el formato Regex interpretó los datos del archivo:
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 │
└────┴─────────┴────────┴────────────┘Configuración del formato
Al trabajar con el formato Regexp, puede usar la siguiente configuración:
-
format_regexp— String. Contiene una expresión regular en formato re2. -
format_regexp_escaping_rule— String. Se admiten las siguientes reglas de escape:- CSV (de forma similar a CSV
- JSON (de forma similar a JSONEachRow
- Escaped (de forma similar a TSV
- Quoted (de forma similar a Values
- Raw (extrae los subpatrones completos, sin reglas de escape, de forma similar a TSVRaw
-
format_regexp_skip_unmatched— UInt8. Indica si se debe lanzar una excepción en caso de que la expresiónformat_regexpno coincida con los datos importados. Puede establecerse en0o1.