Альтернативы для быстрого объединения большого количества данных

Я использую InfiniDB для агрегирования большого количества строк (около 100-500 миллионов) до менее чем 5000 групп. (в большинстве запросов фильтруется 100-500 миллионов строк, поэтому агрегация будет работать с меньшим количеством строк)

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

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

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

Какие есть альтернативы? я думаю, что каждый механизм карты / сокращения (mongodb, hadoop) будет намного медленнее, или я что-то упускаю из этого?

это не должно требовать больше чем 2-5 серверов.

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

Спасибо за мысли!

1 ответ

Я использовал infinidb 3, масштабированный на 9 машинах с таблицами, имеющими> 30 миллиардов строк, без каких-либо проблем, даже с самостоятельными соединениями.

Дайте мне пример ddl + dql. Может быть, я могу помочь вам улучшить запрос.

До Infinidb мы пробовали hbase / cassandra / mongodb и технологию, и нам это не понравилось. Для 500 миллионов строк вы можете использовать простой Mysql, если вам нужно делать это не чаще, чем 2-3 раза в день.

Другие вопросы по тегам