Выполните команду загрузки содержимого MLCP как задачу расписания в Marklogic
Есть ли какой-нибудь возможный способ массовой загрузки данных с использованием MLCP в качестве запланированной задачи в Marklogic
2 ответа
Вы не можете вызвать mlcp через запланированное задание; Я рекомендую попробовать что-то вроде Apache Camel для этого.
Верблюд имеет компонент Timer и компонент Quartz, любой из которых можно использовать для планирования.
А вот пример файла Camel с маршрутом (закомментированным, но все еще работоспособным), который инициируется таймером, который затем записывает файл на диск и загружает его через mlcp - https://github.com/rjrudin/ml-camel-client/blob/master/src/main/resources/META-INF/camel-routes.xml.
Я добился больших успехов, выполняя все виды обработки / планирования в Camel, а затем в конечном итоге принимал контент через mlcp. Я думаю, что это хорошо подходит для вашего случая использования, так что вы можете использовать то, что mlcp делает лучше всего - загружать контент в MarkLogic как можно быстрее.
Запланированные задачи внутри MarkLogic
можно вызывать внешние сервисы (используя HTTP
), но у них нет способа запустить внешнюю команду. У вас есть несколько вариантов:
- запланировать
MLCP
работать снаружи, используя cron в Linux или что-то в этом роде; - реструктурировать свою нагрузку, используя
JavaScript
или жеXQuery
; Вы можете извлекать данные из файловой системы, выполнять их через некоторые преобразования и вставлять их в базу данных, используя модули, запущенные вMarkLogic
; - настроить сервер приложений Java, сделать запланированное задание
HTTP
запрос к этому серверу и вызов сервера приложений JavaMLCP
Я думаю, что я бы начал с первого варианта, но какой из них лучше, зависит от вашего варианта использования.