Компоненты подсчета Logparser

У меня есть файл ежедневного журнала, который выгружается из ПЛК, и образец текста (у него нет заголовков, только необработанные данные):

5/29/2009 3:05:33 PM: PLC Requested Hand Scan
5/29/2009 3:05:40 PM: HH Label Data Retrieved: 078797312
5/29/2009 3:05:40 PM: PLC Requested Scale Weight
5/29/2009 3:05:40 PM: Scale Data Retrieved:    56.0
5/29/2009 3:05:40 PM: ProcessMOSData Loop: 1
5/29/2009 3:05:40 PM: About to read
5/29/2009 3:05:40 PM: Read: False
5/29/2009 3:05:40 PM: ProcessMOSData Loop: 2
5/29/2009 3:05:40 PM: About to read
5/29/2009 3:05:40 PM: Read: True
5/29/2009 3:05:40 PM: Found Bin02
5/29/2009 3:05:40 PM: ProcessMOSData Loop: 3
5/29/2009 3:05:40 PM: About to read
5/29/2009 3:05:40 PM: Read: False
5/29/2009 3:05:40 PM: ProcessMOSData Loop: 4
5/29/2009 3:05:40 PM: About to read
5/29/2009 3:05:40 PM: Read: False
5/29/2009 3:05:40 PM: ProcessMOSData Loop: 5
5/29/2009 3:05:40 PM: About to read
5/29/2009 3:05:41 PM: Read: False
5/29/2009 3:05:41 PM: ProcessMOSData Loop: 6
5/29/2009 3:05:41 PM: About to read
5/29/2009 3:05:41 PM: Read: False
5/29/2009 3:05:41 PM: ProcessMOSData Loop: 7
5/29/2009 3:05:41 PM: About to read
5/29/2009 3:05:41 PM: Read: False
5/29/2009 3:05:41 PM: ProcessMOSData Loop: 8
5/29/2009 3:05:41 PM: About to read
5/29/2009 3:05:41 PM: Read: False
5/29/2009 3:05:41 PM: ProcessMOSData Loop: 9
5/29/2009 3:05:41 PM: About to read
5/29/2009 3:05:41 PM: Read: False
5/29/2009 3:05:41 PM: Got all data
5/29/2009 3:05:41 PM: Wrote good label ack

У меня есть 15 «ключевых фраз», которые я хотел бы посчитать. У меня есть 1150 текстовых файлов, которые я, вероятно, объединил бы в один большой текстовый файл, а затем после начального чтения просто прочел бы его и выгрузил бы в новую таблицу. Он может выводить в csv или sql, на самом деле это не имеет значения. В последней части будет просто отслеживание того, как улучшения в изменениях процессов повысили эффективность в этой области.

Например, одной из ключевых фраз является «PLC Requested Hand Scan», поэтому в примере это будет 29.05.2009 1 раз. Я думал, что заголовки вверху будут ключевыми фразами, а слева — разными днями. Кажется, что это может сделать logparser, но без заголовков и каждой строки, представляющей собой одну длинную строку, я не уверен, с чего начать.


person Ty.    schedule 17.04.2013    source источник


Ответы (1)


ДА, вы можете решить эту проблему с помощью LogParser. Чтобы легко получить правильный запрос, установите LogParser Lizard, это простой и бесплатный инструмент для проверки ваших запросов в Logparser перед кодированием.

Установите для входных данных Logparser входной формат TEXTLINE.

В предложении FROM вы можете объединить столько файлов, сколько хотите, например FROM 'имя файла', 'имя файла2', 'имя файла3' и т. д. (все должны иметь одинаковую структуру)

Вот запрос logparser, который поможет вам начать

SELECT extract_token(Text,0,' ') AS Date,
       strcat(extract_token(extract_token(Text,1,' '),0,'PM: '),' PM') AS Time,
       extract_token(Text,1,'PM: ') AS MSG
FROM 'F:\test.txt'

Также вы можете группировать по msg, делая это

SELECT extract_token(Text,1,'PM: ') AS MSG
FROM 'F:\test.txt'
GROUP BY MSG
person Fernando Torres    schedule 05.10.2013