LINUX.ORG.RU

Быстрая БД для агрегаций и работы с простейшими данными

 , , ,


0

2

Данные представлены в виде столбцов 5, по сути: несколько строк и чисел с плавающей точкой.

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

Мне в голову пришло использовать mongodb, так как полнотекстовый поиск там как-раз нестрогий и, кажется, шустрый. Но смущает объём данных и скорость фреймворка агрегаций.

Я в монге хранил до 20млн живых записей, одноуровневых, обычные запросы работали шустро, достаточно. Но сейчас разговор идёт о сотнях миллионов.

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

Может у кого будут советы какую БД использовать? Какие могут быть проблемы с монгой? Чем же хороша Oracle или привыкли?


Мое мнение можно смело игнорировать, но таки я тоже посоветую oracle причем на серверах sun.

Аргументирую это тем, что оно является стандартом дефакто в серьезных местах. + на родных серверах оптимизация.

unt1tled ★★★★
()
Последнее исправление: unt1tled (всего исправлений: 1)

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

menangen ★★★★★
()
Последнее исправление: menangen (всего исправлений: 1)
Ответ на: комментарий от unt1tled

Да это правда, конечно, но пока нет необходимости для такого. Но почему оракл? Только ли из-за объёма данных и скорость агрегаций/выборок? Что же по полнотекстовому поиску?

tia
() автор топика
Ответ на: комментарий от anonymous

Увы, постгре слишком слаба на больших, даже простых данных. Там, где он тянет простейшие выборки с 1млн записей, монга тянет раз в 20 больше. Это примерные цифры, запросы строились очень давно. Но разница реально большая.
Если юзать отдельный поисковик, то может стоит задуматься о более оптимальном хранилище, вроде HBase? Но в любом случае в отдельном поисковике будет большая база и трудно будет справляться.

tia
() автор топика
Ответ на: комментарий от menangen

Поиск по тексту(до 255 символов), но и постгре с такими объёмами не справится(справится, но ресурсов нужно дофига), и сфинкс не сможет справляться, чую я.

tia
() автор топика
Ответ на: комментарий от vertexua

Я откуда знаю какая? Они сами говорят (сан говорил), что под свои продукты оптимизируют свои сервера. В тч и под солярку.

unt1tled ★★★★
()

Я бы выбрал MongoDB с шардами. Больше данных - больше шардов. Если нужны будут сложные аггрегации, думаю, можно подключить hadoop.

PostgreSQL тоже хорош на самом деле, но по сравнению с монгой его слишком больно скейлить. WEB SCALE YEAAAH

kdask
()
Ответ на: комментарий от EvgGad_303

Вот такой ответ уже лучше, конкретные вещи

vertexua ★★★★★
()
Ответ на: комментарий от outtaspace

Примеры привести сейчас не смогу уже, года 1.5 прошло с того момента, когда перевели на монгу.
Там не в поиске по тексту были проблемы, а в селектах. Монга выиграла и до сих пор выдерживает(данных там миллионов 60 уже). Может быть тонко настроив постргре, мы бы смогли заставить его работать так же шустро(я почти уверен что могли бы сильно ускорить), но не хотелось с этим возиться сильно, ведь была монга - хорошая бд, которая очень хорошо подходила под наши нужды.

А за ссылку спасибо огромное! Интересный подход, но вот только я не нашёл как там создаются н-граммы, как пополняется сам индекс. Он сам как-то умеет?

tia
() автор топика
Ответ на: комментарий от tia

Шустрая и не проблема хранить большой объем данных.

Siado ★★★★★
()

Tokumx sharded cluster, исходя из постановки задачи.

Ip0 ★★★★
()

Монга норм. В крайнем случае пошардшиь.

dizza ★★★★★
()

KDB+ уже предлагали?

anonymous
()
Ответ на: комментарий от erzent

Ну мало ли какая там ситуация, может человек ТС лучше знает монго, а оракл незнает вообще. И если выберет оракл, его ждет много граблей.

kukara4 ★★
()
Ответ на: комментарий от kukara4

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

erzent ☆☆
()
Ответ на: комментарий от unt1tled

А зачем ты, дебил, свое убогое мнение вообще высказывал? Промолчал бы, сука, за умного сошел бы.

anonymous
()
Ответ на: комментарий от anonymous

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

erzent ☆☆
()
Последнее исправление: erzent (всего исправлений: 1)
Ответ на: комментарий от erzent

Перечитал его сообщение, зато с монго уже есть опыт.

А для ТС'а. Если есть деньги - тогда оракл. Про такое говно как XE забудь сразу, только EE. ИМХО, конечно, но ставить 1 базу стенделоном как-то хреновенько. Нужно настраивать датагард, нужно рманом правильно делать бекапы, с очисткой архивлогов. При установке еще нужно будет много чего настроить под себя, начиная с тейблспейсов. Но сама жара пойдет, когда у тебя начнут валить ошибки типа ORA-06553, тогда вешайся. И это вообще, самый минимум, долго описывать даже как ее просто поставить и более-менее настроить, а за возможности поднастройки я вообще молчу.

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

В общем, опять ИМХО, но выбирай оракл, если есть бабки. На официальную поддержку, которая стоит дофига в год, можно забить. За последние 2 года еще ни разу не писали в нее, все решали своими силами. Лучше брать саппорт у аутсорсеров, желательно со статусом платинового партнера, так будет дешевле. Просто если бы вдруг у тебя что-то сломается, выдерут не по-детски.

kukara4 ★★
()
Последнее исправление: kukara4 (всего исправлений: 2)
Ответ на: комментарий от EvgGad_303

Фу, грязный ентерпрайз, латентные гомосеки и унылая проприетарщина. Надеюсь мы наставили ТС'а на путь только хардкорного опенсорса :)

kukara4 ★★
()
Ответ на: комментарий от kukara4

Пока нет, но и объёмы не сразу будут такие большие. Точнее, будут, но в будущем можно перейти на что-то другое. Сейчас всё в виде стартапа и в распоряжении есть разве что впски digitalocean.

tia
() автор топика
Ответ на: комментарий от kukara4

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

tia
() автор топика
Ответ на: комментарий от erzent

Я знаю много баз данных, но именно работал и правда не со многими: кассандра, мускуль, постгре, мариа, редис, мемкешед, монго. Монго я знаю хорошо, хотя шардонг и репикацию я и правда не использовал - а сейчас придётся. Вопросы я обычно задаю не от незнания, а от желания узнать мнение третьей стороны :) Да и по сути основным вопросом было «а будет ли толк сейчас думать о оракл?»

tia
() автор топика
Ответ на: комментарий от kukara4

О, спасибо большое! Сейчас понимаю что объёмы и нагрузки будут не такие, так что пока хватит монги. Но про оракл надо будет всё изучить, тему эту я и правда совсем не знаю.

tia
() автор топика
Ответ на: комментарий от erzent

Примерно такой вывод я и сделал. Изучу ещё на досуге, может и решимся, но, увы, не сейчас. Спасибо!

tia
() автор топика
Ответ на: комментарий от tia

ты лучше смотри на будущее, разрабатывать сразу под оракл дешевле получится, чем переводить потом, большие объёмы данных.

erzent ☆☆
()

Плюс Оракла в нормальном, рабочем и многофункциональном PLSQL. У монги ее js-api это ахтунг. Прежде чем выбирать БД, подумай где и как будет реализована логика, какие функции будешь использовать и т.п. А то было у меня в монге: 90% логических функций не запилили, был только И (&) и то, если память не изменяет он был бажным.

И сюда же про монгу. Если ты ее начнешь патчить, патчить js-движек (v8/gecko), то ни саппорта, ничего не жди. Если в компании нужно завязать все на себя это твой шанс. Без тебя потом фиг что кто сделает :D

gh0stwizard ★★★★★
()
Последнее исправление: gh0stwizard (всего исправлений: 2)
Ответ на: комментарий от tia

Для оракла ресов нужно по-больше, хотя бы от 4 гб оперативы.

kukara4 ★★
()
Ответ на: комментарий от tia

Без проблем, я с ораклом не по-наслышке дело имею, так что если что, обращайся, помогу чем смогу. Тут еще есть дбашники хорошие, своих не бросаем :)

kukara4 ★★
()
Последнее исправление: kukara4 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.