-
Notifications
You must be signed in to change notification settings - Fork 10
Description
регулярное выражение r'Txt=(?P(.|\n|\r)*?)(,[a-zA-Z]+=|$|[0-5]{1}\d:[0-5]{1}\d.\d{6})'
из строки
07:46.750133-0,CONN,0,process=rphost,OSThread=14888,Txt='Ping direction settings changed on server: directionID=118f9168-07f3-4ee0-9734-c4df1a85d509,pingTimeout=60000,pingPeriod=12000'
вытащит
txt='Ping direction settings changed on server: directionID=118f9168-07f3-4ee0-9734-c4df1a85d509
вместо
txt='Ping direction settings changed on server: directionID=118f9168-07f3-4ee0-9734-c4df1a85d509,pingTimeout=60000,pingPeriod=12000'
Так же обрезаются многострочные поля.
Регулярками парсить такой формат лога неудобно.
Удобнее использовать vector функцию parse_key_value
Я у себя уже реализовал такой вариант https://github.com/mkky/1c_parse_tech_journal/
Плюс, я не стал выделять столбцы, и разбивать данные на несколько таблиц.
а сложил почти все поля из строки лога в map(https://clickhouse.com/docs/sql-reference/data-types/map)