我試圖想出一個正則表達式,以便我可以使用將weblogs導入到Hive中。我不是正則表達式專家,我有問題試圖處理具有不同元數據的日誌中的兩種不同的事務類型。正則表達式將weblogs導入到Hive中正確
日誌包含一個請求和一個回覆事務,我提出的正則表達式迎合了請求事務,但在回覆上失敗,因爲回覆包含數據中的「心跳」。 日誌每天最多可包含兩萬或更多條目。
我正則表達式到目前爲止
(^[0-9]*) ([0-9]*) ([0-9]*) ([0-9]*) ([0-9]*) ([^ ]*) ([^ ]*) ([^ ]*) ([0-9]*) ([0-9]*) ([0-9]*) ([^ ]*)(?:[:]) ([0-9]+.[0-9]+(?:\ms)) ([^ ]*)(?:[:]) (.*)\n
預期結果:
- 正則表達式要處理的請求
- 在數據中回覆心跳數據,沒有數據,我不想在Transaction類型的末尾和SessionKey的末尾導入':'冒號。我在上面實現的正則表達式似乎排除它,但我不確定它是否正確。
- 在Heartbeat響應中,消息中返回一個時間戳和'ms'毫秒,最初單詞'ms'將被導入,如上面的正則表達式所示,但現在我需要將它從導入中排除,而I我有問題得到正確的表達,以排除
博客的例子:
請求事務:
樣本數據
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>
? –
是的,我打算通過Create table語句將數據加載到配置單元中,我只需要爲「input.regex」獲取正確的正則表達式。 – user3065587
好了! PLZ找到答案,並接受,如果它解決您的需要 –