有没有办法在 Marklogic 中使用 MLCP 作为计划任务批量加载数据
您无法通过计划任务调用 mlcp;我建议尝试像Apache Camel这样的东西。
Camel有一个计时器组件和一个石英组件,其中任何一个都可用于调度。
这是一个示例 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
作业,在 Linux 上使用 cron 或类似的东西; - 使用
JavaScript
或XQuery
重构负载; 您可以从文件系统中检索数据,通过一些转换运行它,并使用MarkLogic
中运行的模块将其插入数据库;
设置 Java 应用服务器, - 让计划任务向该服务器发出
HTTP
请求,并让 Java 应用服务器调用MLCP
我想我会从第一个选项开始,但哪一个最好取决于您的用例。