Реклама на сайте Advertise with us

Грамотная организация хранения большого обьема данных.

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

kernel-video-sharing.com

С нами с 02.11.03
Сообщения: 824
Рейтинг: 558

Ссылка на сообщениеДобавлено: 23/04/05 в 19:20       Ответить с цитатойцитата 

Может кто уже сталкивался с таким вопросом:
Нужно грамотно организовать и работу со следующей структурой данных:

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

Я вижу только возможностью хранения в файлах со следующей структурой:
На каждый день создавать файлы вида:
T 01 02 03 04 ...
Query1_amount amount,a_amount,xdate
Qeury2_amount
....
Где строки - это запросы, а столбцы время. И первый столбец - итоговое значение за день данного кейводра (по сути сумма остальных столбцов). Таким образом при запросе за конкретный день - статсы сразу будут найдены. Но проиводительность будет существенно падать с увеличением диапозона.

Придется с каждого файла считывать запрос и итоговое значение и затем суммировать все эти массивы за каждй день. А если к примеру 100.000 запросов в день и нужны статсы за год - придется совместить 360 массивов с десятком тысяч строк в каждом! Хранить данные в одном месте (в мускуле к примеру) - еще хуже - будет таблица в 3.600.000 за год к примеру, а если нужны данные за месяц, да и вообще такую таблицу обработать как-то напряжно будет... ;) ? Тож получается плохо... я лучшего варианта чем хранение данные в файле
с вышеприведенно структурой не вижу... но ведь способ то должен быть icon_smile.gif Мож кто подкинет идейку?

0
 



С нами с 14.02.05
Сообщения: 57
Рейтинг: 84

Ссылка на сообщениеДобавлено: 23/04/05 в 19:27       Ответить с цитатойцитата 

А почему MySQL не хочешь использовать?

1
 

kernel-video-sharing.com

С нами с 02.11.03
Сообщения: 824
Рейтинг: 558

Ссылка на сообщениеДобавлено: 23/04/05 в 19:34       Ответить с цитатойцитата 

Ну... во первых это я в качестве примера привел. На самом деле таких файлов очень много, и инфы в них тоже очень много... Сдается мне мускуль такого нахальства не выдержит...

Да и не хочется этого делать, в базе - те параметры которые нужны для постоянной работы, а это - нужно будет время от времени, т.е. держать такие обьемы редко используемой инфы в базе бессмысленно. Да и файлы хоть зипнуть можно icon_smile.gif И обработать с удаленных компов легче... в общем причин достаточно icon_smile.gif

0
 



С нами с 14.02.05
Сообщения: 57
Рейтинг: 84

Ссылка на сообщениеДобавлено: 23/04/05 в 19:59       Ответить с цитатойцитата 

MySQL хранит таблицы в виде файлов, так что если создавать по таблице на каждый день (неделю или месяц) то получим то же самое, что тебе нужно + оптимизация запросов, таблиц, бэкап, архивация и др. возможности мускуля.

Цитата:
01 02 03 04

еще один очевидный плюс: в мускуле эта строка (столбец) займет 4 байта (по байту на час), а в файле 12 (2 цифры+пробел на час)

но если хочешь свою СУБД написать - попробуй :-)

1
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 23/04/05 в 20:27       Ответить с цитатойцитата 

Цитата:
Хранить данные в одном месте (в мускуле к примеру) - еще хуже - будет таблица в 3.600.000 за год к примеру, а если нужны данные за месяц, да и вообще такую таблицу обработать как-то напряжно будет

У меня база icq номеров (номер - примари мыло) занимала свыше 10 миллионов записей. Найти нужный номерок составляло около секунды. Никаких притензий к такому колличеству записей мускуль не имел icon_smile.gif
Имхо для обработки большого колличества записей лучше базы ничего нет.

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

2
 

kernel-video-sharing.com

С нами с 02.11.03
Сообщения: 824
Рейтинг: 558

Ссылка на сообщениеДобавлено: 23/04/05 в 20:27       Ответить с цитатойцитата 

Foxtrot писал:
MySQL хранит таблицы в виде файлов, так что если создавать по таблице на каждый день (неделю или месяц) то получим то же самое, что тебе нужно + оптимизация запросов, таблиц, бэкап, архивация и др. возможности мускуля.

еще один очевидный плюс: в мускуле эта строка (столбец) займет 4 байта (по байту на час), а в файле 12 (2 цифры+пробел на час)
но если хочешь свою СУБД написать - попробуй :-)


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

Да и вопрос кстати не в этом же был icon_smile.gif Пускай даже и мускуль использовать, это не настолько важно, - но как так данные в приведенном примере сгруппировать, что бы не положить сервак при хитро-мудром запросе?

0
 

kernel-video-sharing.com

С нами с 02.11.03
Сообщения: 824
Рейтинг: 558

Ссылка на сообщениеДобавлено: 23/04/05 в 20:35       Ответить с цитатойцитата 

[DEL]

Последний раз редактировалось: KVS Support (01/07/17 в 10:33), всего редактировалось 1 раз

0
 

Криптопохуист

С нами с 05.04.03
Сообщения: 17156
Рейтинг: 6019

Ссылка на сообщениеДобавлено: 23/04/05 в 20:36       Ответить с цитатойцитата 

Ну коли MySQL не хочешь (а следовало бы, только использовать таблицы InnoDB вместо MyISAM), то можешь попробовать SleepyCat Berkeley DB 4 (dba_open). Это сверхбыстрый бинарный формат файлов типа ключ->значение (в твоем случае киворд -> количество).

2
 

Криптопохуист

С нами с 05.04.03
Сообщения: 17156
Рейтинг: 6019

Ссылка на сообщениеДобавлено: 23/04/05 в 20:37       Ответить с цитатойцитата 

правда делать выборку напряжнее конечно. да юзай InnoDB-таблицы.

1
 

kernel-video-sharing.com

С нами с 02.11.03
Сообщения: 824
Рейтинг: 558

Ссылка на сообщениеДобавлено: 23/04/05 в 20:56       Ответить с цитатойцитата 

Pentarh писал:
да юзай InnoDB-таблицы.


А чем они в двух словах лучше MyISAM?
И не ляжет ли MySQL при добавлении скажем ~20 таблиц в день с ~3 млн. записей (суммарно в них всех) в день? Т.е. к примеру через год будет уже 7200 таблиц и 1 млрд. записей в них...

Сколько вообще мускуль способен выдержать?
Может у кого есть какие либо реальные данные по скорости работы, обработки инфы на мускуле?

Какие минусы использования большого числа таблиц в мускуле? (помимо того что через webadmin не посмотришь ;) )

P.S. Многие партнерки предоставлют подобную статистику - не уж то у них все в мускуле храниться?

Спасибо за ответы.

0
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 23/04/05 в 21:07       Ответить с цитатойцитата 

Цитата:
А если база в 1 млрд строк? И выборка более сложная?

А ты думаешь хранить такие данные в файлах и делать по ним сложные выборки тебе будет проще ? icon_smile.gif Здгавствуйте изобретатели велосипедов icon_smile.gif

Если вас смущает мускуль, ставьте оракл, на соответствующем железе он столько потянет без проблем.
Нет денег - вперед на изучение и тесты мускуля с merge таблицами.

P.S. сначала 3,5 миллиона записей в год, потом уже миллиард icon_smile.gif Стоит все таки определится .

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

1
 

kernel-video-sharing.com

С нами с 02.11.03
Сообщения: 824
Рейтинг: 558

Ссылка на сообщениеДобавлено: 23/04/05 в 21:42       Ответить с цитатойцитата 

Stek писал:
А ты думаешь хранить такие данные в файлах и делать по ним сложные выборки тебе будет проще ? icon_smile.gif Здгавствуйте изобретатели велосипедов icon_smile.gif

На файлах мне проше организовать эту структуру и проще ею управлять, время запросов меня волновало только в одном случае - приведенном выше.

Stek писал:
Если вас смущает мускуль, ставьте оракл, на соответствующем железе он столько потянет без проблем.

Ну... оракт - это уже несколько другой уровень во всех отношениях.

Stek писал:
P.S. сначала 3,5 миллиона записей в год, потом уже миллиард icon_smile.gif Стоит все таки определится .

Вначале я привел пример а затем уже более реальные данные.

А как с надежностью в мускуле при работе с такими обьемами?

Не проще ли огромные обьемы данных которые нужны очень редко выкинуть из базы в файл и заархивировать его? Или то, что эта куча огромных таблиц будет просто висить в мускуле никак не повлияет на работу базы в целом?

0
 

пенсионер

С нами с 07.11.02
Сообщения: 2612
Рейтинг: 1166

Ссылка на сообщениеДобавлено: 23/04/05 в 22:59       Ответить с цитатойцитата 

для данной задачи майСКЛ действительно лучше чем флатфайлы.
1. быстрее обрабатыватся данные будут.
2. меньше ресурсов жрется в итоге.

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

еще мануал по AWK рекомендую глянуть, для работы с файловыми базами полезная штука.

Здесь ищу и даю работу^так делаю деньги
тут читаю инфу^веду блог, а вы?

2
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 23/04/05 в 23:12       Ответить с цитатойцитата 

Цитата:
А как с надежностью в мускуле при работе с такими обьемами?

Не проще ли огромные обьемы данных которые нужны очень редко выкинуть из базы в файл и заархивировать его? Или то, что эта куча огромных таблиц будет просто висить в мускуле никак не повлияет на работу базы в целом?


Сэр, решение вашей задачи вам вряд ли тут будут разжевывать. Сказанно было уже предостаточно. Есть база, есть документация, тестовый скрипт пишется за 5 минут, миллиард данных в таблицу загоняется за пару часов.

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

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

1
 



С нами с 18.11.99
Сообщения: 14226

Ссылка на сообщениеДобавлено: 24/04/05 в 01:07       Ответить с цитатойцитата 

Kernel Team, а зачем вообще такая статистика тебе? В ней обязательная необходимость?

PS. У мускля ограничение на объём индексов 4Гб.

Участник!
Покупаем CJ-tube и галлерный трафик + 100$ за регистрацию

1
 

Cкриптоманьяк

С нами с 14.09.00
Сообщения: 1181
Рейтинг: 245

Ссылка на сообщениеДобавлено: 24/04/05 в 03:28       Ответить с цитатойцитата 

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

Ну и иметь представление, на каком железе это будет исполняться (главным образом - объем доступной оперативки)

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

Про файлы забудь как страшный сон. Дружеский совет. icon_smile.gif
Мускль можешь попробовать, если 100% представляешь себе как он внутрях работает и сможешь диагностировать и скорректировать затык в случае чего, а не просто констатировать "епть, вот и мускль лег". Я когда аналогичную задачу решал, не был в себе настолько уверен, и пробовать мускль не стал, потому что при неправильном подходе это будет жопа.
Можно беркли попробовать, но он не всегда отвечает задачам, хотя если отвечает - то работает шустро.

В общем, большие объемы данных - это отдельная песня, ее с кондачка не решишь.

Ну либо действительно ораклы всякие, если денег дохуя icon_smile.gif

3
 

Криптопохуист

С нами с 05.04.03
Сообщения: 17156
Рейтинг: 6019

Ссылка на сообщениеДобавлено: 24/04/05 в 07:53       Ответить с цитатойцитата 

Кстати беркли довольно гибкая и шустрая штука, но пхпшный интерфейс (Database dbm-style Abstraction Layer Functions) не оставил от фич BerkeleyDB и четвертой части. На берклях работают спутниковые, навигационные, коммуникационные и прочие объемные и ответственные программные решения. И объем баз зачастую исчисляется терабайтами.

Более мощный интерфейс к BerkeleyDB имхо в перле

2
 

kernel-video-sharing.com

С нами с 02.11.03
Сообщения: 824
Рейтинг: 558

Ссылка на сообщениеДобавлено: 24/04/05 в 10:48       Ответить с цитатойцитата 

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

Будем считать топик закрытым.

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »