Альтернативы для быстрого объединения большого количества данных
Я использую 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 раза в день.