在 Marklogic 中执行 MLCP 内容加载命令作为计划任务



有没有办法在 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 或类似的东西;
  • 使用 JavaScriptXQuery 重构负载; 您可以从文件系统中检索数据,通过一些转换运行它,并使用MarkLogic中运行的模块将其插入数据库;
  • 设置 Java 应用服务器,
  • 让计划任务向该服务器发出HTTP请求,并让 Java 应用服务器调用MLCP

我想我会从第一个选项开始,但哪一个最好取决于您的用例。

最新更新