我有一个使用格式s3://<bucket-name>/year=<yearno>/month=<monthno>/day=<dayno>/<filename>.log
构建的s3存储桶。我拥有的.log文件中的行结构如下:
2020-01-06 09:05:14,450 INFO [Asterisk-Java DaemonPool-1-thread-3] handler.CallHandler (CallHandler.java:849) - Original name : harris changed to : haris . Exist? true
虽然我用于分类器的Grok模式是:
[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9:,]{12} INFO \[Asterisk-Java DaemonPool-1-thread-[0-9]{1,3}] handler.CallHandler \(CallHandler.java:849\) - Original name : %{WORD:original_name} changed to : %{WORD:transformed_name} . Exist\? %{WORD:exist_prior}
我使用this debugger web app检查了我的Grok模式,并确认是正确的。我期望结果表是什么:
+------+-------+-----+---------------+------------------+--------------+
| year | month | day | original_name | transformed_name | exists_prior |
+------+-------+-----+---------------+------------------+--------------+
| - | - | - | - | - | - |
+------+-------+-----+---------------+------------------+--------------+
但是,我得到的桌子是:
+------+-------+-----+------+------+------+------+
| year | month | day | col0 | col1 | col2 | col3 |
+------+-------+-----+------+------+------+------+
| - | - | - | - | - | - | - |
+------+-------+-----+------+------+------+------+
我哪里出错了?
我将捕获正则表达式从%{WORD:variable_name}
更改为%{DATA:variable_name}
。然后,它按预期工作。