我有一个使用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}
我使用此调试器 Web 应用程序检查了我的 Grok 模式,并确认它是正确的。我期望的结果表是:
+------+-------+-----+---------------+------------------+--------------+
| year | month | day | original_name | transformed_name | exists_prior |
+------+-------+-----+---------------+------------------+--------------+
| - | - | - | - | - | - |
+------+-------+-----+---------------+------------------+--------------+
但是,我得到的表格是:
+------+-------+-----+------+------+------+------+
| year | month | day | col0 | col1 | col2 | col3 |
+------+-------+-----+------+------+------+------+
| - | - | - | - | - | - | - |
+------+-------+-----+------+------+------+------+
我哪里做错了?
我将捕获正则表达式从%{WORD:variable_name}
更改为%{DATA:variable_name}
。然后它按预期工作。