Как искать в огромных наборах нетекстовых данных?

В проекте, над которым я работаю, у клиента есть старая и массивная (диапазон терабайт) СУБД. Запросы любого типа выполняются медленно, и нет времени на исправление / рефакторинг схемы. Я определил наборы общих запросов, которые необходимо оптимизировать. Этот набор разделен на две части: полнотекстовые запросы и запросы метаданных.

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

Для полнотекстовых запросов. search, Solr - наиболее разумный движок. Это' Функции сегментирования и репликации позволяют решить половину проблемы.

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

Существует ли система хранения базы данных со встроенным сегментированием и репликацией, которая может быть особенно полезна для запроса указанных метаданных? Может быть, есть решение без sql, которое обеспечивает хороший механизм запросов?

Просветите, пожалуйста.

Дополнения / ответы:

Solr можно использовать для метаданных, однако метаданные непостоянны. Поэтому мне приходилось часто использовать индексы. Это приведет к быстрому ухудшению результатов поиска.

35
задан Newbie 16 May 2011 в 20:27
поделиться