Выполнить поиск по нескольким базам данных
Наше требование состоит в том, чтобы выполнять возможности поиска MarkLogic в нескольких базах данных MarkLogic. У нас есть две версии Marklogic 7 и 8. Есть два сценария для этого требования:
Базы данных доступны на одном сервере MarkLogic.
В этом случае мы хотим реализовать xdmp:eval(), xdmp:spawn() и концепцию супер-базы данных и суб-базы данных MarkLogic. Но мы не уверены, какой из них является префектом.
Базы данных доступны на разных серверах MarkLogic.
Мы не уверены в этом сценарии, что реализовать. Но мы изучаем Hadoop и гибкую репликацию MarkLogic.
Пожалуйста, посмотрите на этот сценарий и поделитесь вашими лучшими идеями, чтобы мы могли двигаться в правильном направлении.
1 ответ
Как отмечалось выше, возможно, стоит сделать шаг назад и обсудить, необходимо ли это. MarkLogic может очень хорошо обрабатывать смеси содержимого. Наличие нескольких баз данных, скорее всего, просто усложнит архитектуру.
Тем не менее, в верхней части моей головы некоторые соображения по поводу ваших вопросов:
- Базы данных MarkLogic ограничиваются не отдельными серверами, а кластерами.
- Вы можете использовать репликацию БД или Flex-Rep для синхронизации баз данных между кластерами.
- xdmp: eval / spawn берет на себя издержки и является потенциальной дырой в безопасности (например, использование усилителей).
- Для базы данных super / sub требуется меньше затрат, но имейте в виду, что запрос диапазона в базе данных super потребует определения соответствующих индексов диапазона во всех включенных базах данных.
- Обеспечение уникальности базы данных в супер-базе данных требует дополнительных усилий.
НТН!