Лог и его визуальное предстваление.
От: GSL  
Дата: 26.10.10 10:38
Оценка:
Имеется лог файл размером от 3-4 Гб.
Имеется программа BareTailPro ( честно купленная )



Требуется написать ее аналог в смысле визуального представления.
BareTailPro отличный анализатор, но нам требуется внести в анализ автоматизацию, котора поможет автоматически находить и связывать важные куски логов.

Я более или менее сносно знаю С#. Но практически нулевой опыт в создании более или менее сложных GUI.
Я не могу купить какие-либо коммерческие компоненты.

Буду очень признателен за советы о том, каким компонентом воспользоваться для реализации ( примеры/статьи были бы огромным плюсом ).
Версия .Net любая это не принципиально. Операционка WinXP & Win7 ( все x86, т.е. 32bits).
Мне нужно только графическое предствление, всячесие фильтры со и сортировки я вполне способен реализовать самостоятельно ( я так думаю ).

З.Ы. Очень желательно что бы компонент не был прожолив в смысле памяти, ибо логи бывают доходят и до 60-80Гб.
B автоматизацая сама по себе потребует значительное количество памяти.
Re: Лог и его визуальное предстваление.
От: adontz Грузия http://adontz.wordpress.com/
Дата: 26.10.10 11:09
Оценка:
Здравствуйте, GSL, Вы писали:

Компонент это текстовое поле для отображения 4Гб файла?
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[2]: Лог и его визуальное предстваление.
От: GSL  
Дата: 26.10.10 11:13
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, GSL, Вы писали:


A>Компонент это текстовое поле для отображения 4Гб файла?


Нет это что-то типа класического ListView. имеется 2 списка:
1. это полный лог
2. это отфильтрованные строки по рег експ

Имееющаяся прога работает с файлами любого размера, надо просто добавить специфичные функции
Re[3]: Лог и его визуальное предстваление.
От: adontz Грузия http://adontz.wordpress.com/
Дата: 26.10.10 11:14
Оценка:
Здравствуйте, GSL, Вы писали:

GSL>Нет это что-то типа класического ListView. имеется 2 списка:

GSL>1. это полный лог
GSL>2. это отфильтрованные строки по рег експ
GSL>Имееющаяся прога работает с файлами любого размера, надо просто добавить специфичные функции

Я так понимаю, там десятки миллионов строк.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[4]: Лог и его визуальное предстваление.
От: GSL  
Дата: 26.10.10 13:02
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, GSL, Вы писали:


GSL>>Нет это что-то типа класического ListView. имеется 2 списка:

GSL>>1. это полный лог
GSL>>2. это отфильтрованные строки по рег експ
GSL>>Имееющаяся прога работает с файлами любого размера, надо просто добавить специфичные функции

A>Я так понимаю, там десятки миллионов строк.


Вообщем иногда такое тоже бывает... обычно лог после стресса это около 8-10 Гб изредка это бывает до 50-80Гб...
если в среднем строка лога 120 символов то можно посчитать....

Вообщем нужен компоент которые загружает в память только то, что непосредственно отображает...
Re[5]: Лог и его визуальное предстваление.
От: adontz Грузия http://adontz.wordpress.com/
Дата: 26.10.10 13:04
Оценка:
Здравствуйте, GSL, Вы писали:

GSL>Вообщем иногда такое тоже бывает... обычно лог после стресса это около 8-10 Гб изредка это бывает до 50-80Гб...

GSL>если в среднем строка лога 120 символов то можно посчитать....

Сотни миллионов строк.

GSL>Вообщем нужен компоент которые загружает в память только то, что непосредственно отображает...


Увы, придётся писать самому.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[6]: Лог и его визуальное предстваление.
От: GSL  
Дата: 26.10.10 13:18
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, GSL, Вы писали:


GSL>>Вообщем иногда такое тоже бывает... обычно лог после стресса это около 8-10 Гб изредка это бывает до 50-80Гб...

GSL>>если в среднем строка лога 120 символов то можно посчитать....

A>Сотни миллионов строк.


GSL>>Вообщем нужен компоент которые загружает в память только то, что непосредственно отображает...


A>Увы, придётся писать самому.


т.е. нет никаких виртуальных лист вью...
адаптер я готов написать, т.е. будет по номеру строки выдавать искомое, каждый раз читая с диска...

если так то я в очень плохо ситуации, ибо писать такое я не умею и времени мне не дадут...
А продолжать в ручную анализировать это грустно...
Re[7]: Лог и его визуальное предстваление.
От: adontz Грузия http://adontz.wordpress.com/
Дата: 26.10.10 13:30
Оценка: +1
Здравствуйте, GSL, Вы писали:

A>>Увы, придётся писать самому.

GSL>т.е. нет никаких виртуальных лист вью...

Виртуальные есть. Собственно ListView как раз поддерживает виртуальный режим. Но тут проблема в объёме ОЗУ. Даже если вы заранее проиндексируете файл и найдёте начала всех строк, то вы получите ~ 700 миллионов (80Гб) 8байтовых (больше 4Гб сдвиг) чисел. Только индекс составляет 5 с небольшим гигабайт. А обычные виртуальные контролы просят у вас данные по индексу элемента. И тут логичнее не хранить индекс и использовать относительные сдвиги. С другой тсороны индекс вам всё равно понадобится, потому что через регулярные выражения надо пропустить все строки. Да и скорость регулярных выражений на таких объёмах скорее всего будет проблемой. А как хранить отфильтрованные строки? Задача не выглядит очень уж простой.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[8]: Лог и его визуальное предстваление.
От: GSL  
Дата: 26.10.10 14:13
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, GSL, Вы писали:


A>>>Увы, придётся писать самому.

GSL>>т.е. нет никаких виртуальных лист вью...

A>Виртуальные есть. Собственно ListView как раз поддерживает виртуальный режим. Но тут проблема в объёме ОЗУ. Даже если вы заранее проиндексируете файл и найдёте начала всех строк, то вы получите ~ 700 миллионов (80Гб) 8байтовых (больше 4Гб сдвиг) чисел. Только индекс составляет 5 с небольшим гигабайт. А обычные виртуальные контролы просят у вас данные по индексу элемента. И тут логичнее не хранить индекс и использовать относительные сдвиги. С другой тсороны индекс вам всё равно понадобится, потому что через регулярные выражения надо пропустить все строки. Да и скорость регулярных выражений на таких объёмах скорее всего будет проблемой. А как хранить отфильтрованные строки? Задача не выглядит очень уж простой.


да как-то я не задумывался про размер индекса...
дело видимо в том, что сегодня простейшим тулсом такой лог пилят на куски примерно по 4 гига и работают с ними, локализуя проблему в одной из частей.
Допустим я решил проблему того, что индекс не влазиет в память, буду банально пилить лог И работать теми же кусками по 4 гига. Все равно планируемый автоанализ ускорит/упростит нашу работу в 10-15 раз....
Re[9]: Лог и его визуальное предстваление.
От: adontz Грузия http://adontz.wordpress.com/
Дата: 26.10.10 14:20
Оценка: 1 (1)
Здравствуйте, GSL, Вы писали:

A>>Виртуальные есть. Собственно ListView как раз поддерживает виртуальный режим. Но тут проблема в объёме ОЗУ. Даже если вы заранее проиндексируете файл и найдёте начала всех строк, то вы получите ~ 700 миллионов (80Гб) 8байтовых (больше 4Гб сдвиг) чисел. Только индекс составляет 5 с небольшим гигабайт. А обычные виртуальные контролы просят у вас данные по индексу элемента. И тут логичнее не хранить индекс и использовать относительные сдвиги. С другой тсороны индекс вам всё равно понадобится, потому что через регулярные выражения надо пропустить все строки. Да и скорость регулярных выражений на таких объёмах скорее всего будет проблемой. А как хранить отфильтрованные строки? Задача не выглядит очень уж простой.

GSL>да как-то я не задумывался про размер индекса...
GSL>дело видимо в том, что сегодня простейшим тулсом такой лог пилят на куски примерно по 4 гига и работают с ними, локализуя проблему в одной из частей.
GSL>Допустим я решил проблему того, что индекс не влазиет в память, буду банально пилить лог И работать теми же кусками по 4 гига. Все равно планируемый автоанализ ускорит/упростит нашу работу в 10-15 раз....

Я бы посоветовал перегнать логи в БД. А ListView поддерживает виртуальный режим.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[10]: Лог и его визуальное предстваление.
От: GSL  
Дата: 26.10.10 16:06
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, GSL, Вы писали:


A>>>Виртуальные есть. Собственно ListView как раз поддерживает виртуальный режим. Но тут проблема в объёме ОЗУ. Даже если вы заранее проиндексируете файл и найдёте начала всех строк, то вы получите ~ 700 миллионов (80Гб) 8байтовых (больше 4Гб сдвиг) чисел. Только индекс составляет 5 с небольшим гигабайт. А обычные виртуальные контролы просят у вас данные по индексу элемента. И тут логичнее не хранить индекс и использовать относительные сдвиги. С другой тсороны индекс вам всё равно понадобится, потому что через регулярные выражения надо пропустить все строки. Да и скорость регулярных выражений на таких объёмах скорее всего будет проблемой. А как хранить отфильтрованные строки? Задача не выглядит очень уж простой.

GSL>>да как-то я не задумывался про размер индекса...
GSL>>дело видимо в том, что сегодня простейшим тулсом такой лог пилят на куски примерно по 4 гига и работают с ними, локализуя проблему в одной из частей.
GSL>>Допустим я решил проблему того, что индекс не влазиет в память, буду банально пилить лог И работать теми же кусками по 4 гига. Все равно планируемый автоанализ ускорит/упростит нашу работу в 10-15 раз....

A>Я бы посоветовал перегнать логи в БД. А ListView поддерживает виртуальный режим.


перегонка такого большого лога в базу займет сама по себе более суток, потому как вставка записей при наличии индексирования черезвычайно медленная штука.
Re[11]: Лог и его визуальное предстваление.
От: snake  
Дата: 27.10.10 07:37
Оценка: 1 (1)
Здравствуйте, GSL, Вы писали:

GSL>перегонка такого большого лога в базу займет сама по себе более суток


Посмотрите BULK INSERT в MSSQL
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Re[5]: Лог и его визуальное предстваление.
От: _FRED_ Черногория
Дата: 27.10.10 07:54
Оценка: 50 (3)
Здравствуйте, GSL, Вы писали:

GSL>Вообщем нужен компоент которые загружает в память только то, что непосредственно отображает...


DataGridView имеет виртуальный режим. В ListView из WinForms виртуальный режим сделан плохо
Автор: VladD2
Дата: 08.01.06
. Если хочется таки ListView можно посмотреть TreeGrid из RSDN@Home.
Help will always be given at Hogwarts to those who ask for it.
Re[6]: Лог и его визуальное предстваление.
От: GSL  
Дата: 27.10.10 17:49
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Здравствуйте, GSL, Вы писали:


GSL>>Вообщем нужен компоент которые загружает в память только то, что непосредственно отображает...


_FR>DataGridView имеет виртуальный режим. В ListView из WinForms виртуальный режим сделан плохо
Автор: VladD2
Дата: 08.01.06
. Если хочется таки ListView можно посмотреть TreeGrid из RSDN@Home.


Прочитал, большое спасибо, позновательно.
Я попробую поиграть с обоими компонентами, хотя в детайл моде вроде там в обсуждении говорят что не тормозит.
Re[12]: Лог и его визуальное предстваление.
От: GSL  
Дата: 27.10.10 17:53
Оценка: :))
Здравствуйте, snake, Вы писали:

S>Здравствуйте, GSL, Вы писали:


GSL>>перегонка такого большого лога в базу займет сама по себе более суток


S>Посмотрите BULK INSERT в MSSQL


Вы наверное не пробовали вставить несколько милионов записей. Не думаю что на сегодня есть что-то координально быстрее работающее чем два года назад MySql. тогда 10 милионов с одинм индексом заняло около суток, кажется...
Re[13]: Лог и его визуальное предстваление.
От: Andy77 Ниоткуда  
Дата: 27.10.10 18:44
Оценка:
Здравствуйте, GSL, Вы писали:

GSL>Вы наверное не пробовали вставить несколько милионов записей. Не думаю что на сегодня есть что-то координально быстрее работающее чем два года назад MySql. тогда 10 милионов с одинм индексом заняло около суток, кажется...


Несколько миллионов записей — мелочь, дело пары минут, ну разве что у тебя там тысяча колонок. CSV-файлы импортируются очень быстро.
Re[13]: Лог и его визуальное предстваление.
От: adontz Грузия http://adontz.wordpress.com/
Дата: 27.10.10 19:24
Оценка:
Здравствуйте, GSL, Вы писали:

GSL>быстрее работающее чем два года назад MySql.


Вы серьёзно сравнили MySQL и MS SQL? Бугагашенька вам.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[13]: Лог и его визуальное предстваление.
От: alex_mah Россия www.elsy.ru
Дата: 27.10.10 19:36
Оценка:
Здравствуйте, GSL, Вы писали:

GSL>Здравствуйте, snake, Вы писали:


S>>Здравствуйте, GSL, Вы писали:


GSL>>>перегонка такого большого лога в базу займет сама по себе более суток


S>>Посмотрите BULK INSERT в MSSQL


GSL>Вы наверное не пробовали вставить несколько милионов записей. Не думаю что на сегодня есть что-то координально быстрее работающее чем два года назад MySql. тогда 10 милионов с одинм индексом заняло около суток, кажется...


Вы не имели серьезного дела с MS SQL
При Bulk Insert отключается обновление всякой статистики (в т.ч. индексов). Анализ входящих данных практически не производится. Время вставки данных в таблицу зависит фактически только от скорости файловой подсистемы. А индексы сервер потом сам обновит о всему объему данных.
Ориентировочно, это будет сравнимо с поднятием бэкапа такого же размера. На моем Xeon'е с 2 Гб данных на борту займет порядка часа-полтора.
Re[14]: Лог и его визуальное предстваление.
От: alex_mah Россия www.elsy.ru
Дата: 27.10.10 19:39
Оценка:
Здравствуйте, alex_mah, Вы писали:

>Ориентировочно, это будет сравнимо с поднятием бэкапа такого же размера. На моем Xeon'е с 2 Гб данных на борту займет порядка часа-полтора.

Это я про лог 80 Гб, есличо.
Re[15]: Лог и его визуальное предстваление.
От: GSL  
Дата: 27.10.10 22:38
Оценка:
Здравствуйте, alex_mah, Вы писали:

_>Здравствуйте, alex_mah, Вы писали:


>>Ориентировочно, это будет сравнимо с поднятием бэкапа такого же размера. На моем Xeon'е с 2 Гб данных на борту займет порядка часа-полтора.

_>Это я про лог 80 Гб, есличо.

Дело в том, что такой анализ это рутинная работа, под нее не выделят серверов. 90% машинок в отделе это либо DualCore либо Core2Duo. Диски это обычно 250 гигов. Свободно обычно от 30-120 гигов. Еще пол года новинок не предвидется, как только исполнится 3 года компам тогда их сменят на i5 или i3.

Если честно то более 30 минут на 40 гига, уже считается неприемлемым, регексы на 40 гигах работают порядка 20 минут, после чего лог рубится на 1-2 нужных кусков по 2-5 гигов еще порядка 10 минут. Дальше анализируется.
Если неиндексированная вставка займет час, то дальше мне не помогут никакие поиски если нет индексов, кроме того формат лога текстовый, и 1 на 1000 записей битая, т.е. вообще не поддается парсингу, а в CVS лог еще перегнать надо.

Полей примерно 6, минимум 3 желательно индексировать надо индексировать ( модуль, группа, уровень ) иначе все это не будет иметь никакого смысла. Поэтому БД не рассматривается. Кроме того если я только не ошибаюсь то у MySQl, если это не настояший сервер а версия для девелопера есть ограничение на размер базы.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.