В проекте, над которым я работаю, клиент имеет старую и массивную (терабайтный) СУБД. Запросы всех видов являются медленными, и нет времени, чтобы исправить / реорганизовать схему. Я определил наборы общих запросов, которые необходимо оптимизировать. Этот набор разделен на два: полнотекстовые запросы и запросы метаданных.
Мой план состоит в том, чтобы извлечь данные из их базы данных и распределить их по двум различным системам хранения, каждая из которых оптимизирована для определенного набора запросов.
Для полнотекстового поиска Solr - это движок, который имеет больше смысла. Благодаря функциям шардинга и репликации он отлично подходит для половины проблемы.
Для запросов метаданных я не уверен, какой маршрут выбрать. В настоящее время я думаю об использовании СУБД с крайне ненормализованной схемой, которая представляет собой определенное подмножество данных из «авторитетной» СУБД. Однако мой клиент обеспокоен отсутствием шардинга и репликации такой подсистемы, а также трудностями / сложностями настройки таких функций по сравнению с Solr, который уже включает их. Метаданные в этом случае принимают форму целых чисел, дат, значений типа bool, битов и строк (с максимальным размером 10 символов).
Существует ли система хранения базы данных, которая имеет встроенный разделение и репликацию, которая может быть особенно полезна для запроса указанных метаданных? Может быть, нет решения sql, которое обеспечивает хороший механизм запросов?
Подсветите пожалуйста.
Дополнения / Ответы:
Solr можно использовать для метаданных, однако метаданные изменчивы. Поэтому мне пришлось бы часто фиксировать индексы. Это может привести к довольно быстрому поиску.