regex将weblog正确导入配置单元

bihw5rsg  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(369)

我正试图想出一个正则表达式,以便我可以使用导入到Hive博客。我不是regexMaven,我在尝试用不同的元数据处理日志中的两种不同事务类型时遇到了问题。
日志包含一个请求和一个应答事务,我为请求事务准备的正则表达式在应答时失败,因为应答在数据中包含一个“心跳”。日志每天最多可以包含两万个或更多条目。
到目前为止我的正则表达式

(^[0-9]*) ([0-9]*) ([0-9]*) ([0-9]*) ([0-9]*) ([^ ]*) ([^ ]*)   ([^ ]*)   ([0-9]*) ([0-9]*) ([0-9]*) ([^ ]*)(?:[:]) ([0-9]+.[0-9]+(?:\ms)) ([^ ]*)(?:[:]) (.*)\n

预期结果:
regex必须处理应答中的心跳数据,而请求中没有数据
在数据中,我不想导入事务类型末尾和sessionkey末尾的“:”冒号。我上面实现的正则表达式似乎排除了它,但我不确定它是否正确。
在heartbeat响应中,在消息中返回一个时间戳和'ms'毫秒,最初要导入单词'ms',如上面的regex所示,但是现在我需要从导入中排除它,并且在获取要排除的正确表达式时遇到问题
博客示例:
请求事务:
样本数据

0 20140625095038864 20140625095038864 0000 006 00/0000/000 LSEMPPRD   Nestra   000 000000 00 Request: fafe805e-614e-41dd-9b0f-8ec5fbc8c882

结构:

Version = 0 
EventTime = 20140625095038864 
LogTime = 20140625095038864 
SequenceNumber = 0000 
Level = 006 
InternalArea = 00/0000/000 
MachineName = LSEMPPRD   
ApplicationName = Nestra   
DiscardedMessageCount = 000 000000 00 
TranType = Request: 
SessionKey = fafe805e-614e-41dd-9b0f-8ec5fbc8c882
Message = <GetAccountInfo xmlns="http://tempuri.org/"><accountSession     xmlns:b="http://schemas.datacontract.org/2004/07/ApplicationServices.DataContracts.Common" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><b:SessionKey>8c737876-fccb-4352-8d06-9f19ccb34fd6</b:SessionKey><b:SessionToken i:nil="true"></b:SessionToken></accountSession></GetAccountInfo>

回复交易:
样本数据

0 20140625095038615 20140625095038646 0000 006 00/0000/000 LSEMPPRD   Nestra   000 000000 00 Reply: 296.4057ms d594891a-6d9c-4b5c-913a-9dc302277534:

结构:

Version = 0 
EventTime = 20140625095038615 
LogTime = 20140625095038646 
SequenceNumber = 0000 
Level = 006 
InternalArea = 00/0000/000 
MachineName = LSEMPPRD  
ApplicationName = Nestra   
DiscardedMessageCount = 000 000000 00 
TranType = Reply: 
Heartbeat = 296.4057ms 
SessionKey = d594891a-6d9c-4b5c-913a-9dc302277534:
Message = <GetAccountInfo xmlns="http://tempuri.org/"><accountSession xmlns:b="http://schemas.datacontract.org/2004/07/ApplicationServices.DataContracts.Common" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><b:SessionKey>8c737876-fccb-4352-8d06-9f19ccb34fd6</b:SessionKey><b:SessionToken i:nil="true"></b:SessionToken></accountSession></GetAccountInfo>
w1e3prcc

w1e3prcc1#

在这里找到答案:
注意:确保使用的空间。使用前红疹试验
正则表达式:

(^[0-9]*) ([0-9]*) ([0-9]*) ([0-9]*) ([0-9]*) ([^ ]*) ([^ ]*)   ([^ ]*)   ([0-9]*) ([0-9]*) ([0-9]*) ([^ ]*)(?:[:]) ([0-9]+.[0-9]+|)(?:ms |)([^ ]*)(?:[:])

数据:2行

0 20140625095038864 20140625095038864 0000 006 00/0000/000 LSEMPPRD   Nestra   000 000000 00 Request: fafe805e-614e-41dd-9b0f-8ec5fbc8c882:
0 20140625095038615 20140625095038646 0000 006 00/0000/000 LSEMPPRD   Nestra   000 000000 00 Reply: 296.4057ms d594891a-6d9c-4b5c-913a-9dc302277534:

regex:(complete-同时处理消息部分)-只需在末尾添加:(.*$)

(^[0-9]*) ([0-9]*) ([0-9]*) ([0-9]*) ([0-9]*) ([^ ]*) ([^ ]*)   ([^ ]*)   ([0-9]*) ([0-9]*) ([0-9]*) ([^ ]*)(?:[:]) ([0-9]+.[0-9]+|)(?:ms |)([^ ]*)(?:[:]) (.*$)


验证:红疹

相关问题