Re: awk vs sql vs sort: промежуточные результаты

From
Nicolay Varinov (2:5020/400)
To
Valentin Davydov
Date
2006-12-01T20:42Z
Area
RU.UNIX.BSD
From: Nicolay Varinov <nic@sotcom.ru>

Keywords:
Valentin Davydov пишет:
VD>>   From: Slawa Olhovchenkov 
<Slawa.Olhovchenkov@f500.n5030.z2.fidonet.org>
VD>>   Date: Thu, 30 Nov 2006 17:19:52 +0300
VD>>
VD>> >> VD> Когда (и если - мало ли на какие ограничения он может 
наткнуться) awk
VD>> >> VD> закончит свою работу, я, надеюсь, опубликую более подробные 
данные.
VD>> >>
VD>> >> А программу на awk оптимизировать пробовал? Написать на нем 
сначала
VD>> >> внешнюю ленточную сортировку, потом результать в один проход 
агрегировать.
VD>>
VD>> VD> Я, пока писал вышеотквоченное, ещё решил sort | awk 
попробовать. Только
VD>> VD> ведь сортируй - не сортируй, всё равно промежуточные данные на 
диск должны
VD>> VD> лезть. Правда, с sortом всё не так чисто: при том количестве 
промежуточных
VD>> VD> файлов в $TMPDIR, которые он создаёт, ещё нормально работает 
dirhash. Но
VD>> VD> чтобы и это проверить, надо не просто много данных, а 
экспоненциально
VD>> VD> много, а у меня такого количества дисков и времени нету.
VD>>
VD>>Т.е. sort|awk всех порвал?

VD> Вот, ночью сосчиталось. Да, порвал в хлам. sort отработал как раз 
во столько
VD> раз быстрее sql-селекта, во сколько раз доступ к диску большими 
кусками
VD> эффективнее случайного. То есть часы вместо суток. В общем, sort 
очень
VD> хорошо заточен под аппаратно-программные особенности реализации 
файловых
VD> систем, и слава Богу, что у него нету доступных юзру для кручения 
ручек
VD> на тему того, что и как делать в $TMPDIR.

Что интересно, так это то что на некоторых задачах системные средства 
дают результат сопоставимый с 

Что интересно, так это то, что на некоторых задачах системные средства 
дают результат сопоставимый с всякими awk, perl, sql и тд. 
Была лет  наверно 5-6 лет назад у меня одна программка на perlе, 
оставшаяся в наследство он предыдущего товарища. Хорошая программка, 
нормально работающая. Парсила лог tacacsа на месяц и высчитывала 
деньги, время, трафик по пользователям. Но основана была на поиска по 
regexpам perlа по строкам, сколько пользователей было уже не помню, но 
не много около тысячи, а то и меньше, лог занимал не очень и много 
вроде даже меньше 100 Мб за месяц . Работало она в то время на чем-то 
довольно современном, для тех лет, часов примерно 12-16, по данным 
одного месяца. В какой-то момент была переписана без изменения 
алгоритма, по большому счету, на использованием системного sortа и 
grepа результат уменьшение времени ее работы до 15-20 мин и это с 
полутора десятков часов. Правда поиск был по пользователям каждый раз с 
начала файла в обеих вариантах. После переноса всего этого дела в sql и 
при обработке отсортированных по времени данных в один проход sql по 
сравнению с проходом по тем же данным, но в файле, давал, конечно, 
выигрыш, но не больше чем в 1.5-2 раза при обработке текстового файла 
за 2-3 минуты. Правда и размер файла к тому времени вырос в 1ю5-2 раза.
Хотя в общем случае это все лирика.


VD> Вал. Дав.

-- 
Nicolay Varinov
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5.3
 * Origin: Talk.ru (2:5020/400)
SEEN-BY: 50/12 400/814 450/159 1024 461/43 132 640 469/999 4616/3 4625/8
SEEN-BY: 4641/444 5000/76 5000 5006/1 5007/1 5010/70 5011/13 5012/46 5015/28
SEEN-BY: 5019/26 5020/18 175 194 400 545 982 1057 1909 1922 2238 2395 2871
SEEN-BY: 5020/4441 5021/29 5025/3 5026/14 45 5027/12 5030/1080 1957 5034/10 13
SEEN-BY: 5035/3 38 5036/1 5045/7 5049/1 5051/15 5054/1 4 8 9 11 28 35 36 37 45
SEEN-BY: 5054/66 67 70 75 84 85 5059/9 5060/88 5061/15 5062/10 5063/3 5064/7
SEEN-BY: 5066/18 5075/5 5076/1 5077/70 5080/1003 5084/9 5085/13 5095/20
SEEN-BY: 5096/18 6001/10
PATH: 5020/400 545 5054/1 37