marklogic 8 : 调度 Xquery 提取
marklogic 8 :Schedule Xquery extraction
我目前正在使用 Xquery 查询(通过 API 启动)从 Marklogic 8.0.6/
中提取
在我的文件中查询extract_data.xqy:
xdmp:save("toto.csv",let $nl := " "
return
document {
for $data in collection("http://book/polar")
return ($data)
})
API 调用:
$curl --anyauth --user ${MARKLOGIC_USERNAME}:${MARKLOGIC_PASSWORD} -X POST -i -d @extract_data.xqy \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Accept: multipart/mixed; boundary=BOUNDARY" \
$node:$port/v1/eval?database=$db_name
它工作正常,但我想直接在 marklogic 中安排此提取并将其 运行 放在后台,以避免在请求执行时间过长时超时。
是否有类似的功能可以做到这一点?
此致,
罗曼.
您可以使用 task scheduler 设置循环执行脚本。
可以在脚本中使用 xdmp:set-request-time-limit
调整超时
我建议你也看看 MLCP。
根据 Mads 的建议,像 CORB 这样的工具可以帮助从 MarkLogic 中提取 csv 数据。
迈克尔建议的时间表可以触发定期导出,并将输出保存到磁盘,或通过 HTTP 将其推送到其他地方。不过,在这种情况下,我会研究 运行ning 增量导出,并且我还建议将事情分批处理。在大型集群中,我什至建议将导出分块为每个林或每个连接内容林的主机。计划任务允许针对特定主机,它们应该 运行.
您还可以 运行 临时导出,尤其是当您使用 taskbot 等工具批量处理工作时。如果将它与其 OPTIONS-SYNC-UPDATE
模式结合使用,则可以在发出结果文件之前将多个批次合并回一个结果文件,与 运行 单线程相比,它可以获得更好的性能。合并结果不会无限扩展,但如果你有一个相对较小的数据集(可能只有几百万条小记录),这可能就足够了。
HTH!
我目前正在使用 Xquery 查询(通过 API 启动)从 Marklogic 8.0.6/
中提取在我的文件中查询extract_data.xqy:
xdmp:save("toto.csv",let $nl := " "
return
document {
for $data in collection("http://book/polar")
return ($data)
})
API 调用:
$curl --anyauth --user ${MARKLOGIC_USERNAME}:${MARKLOGIC_PASSWORD} -X POST -i -d @extract_data.xqy \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Accept: multipart/mixed; boundary=BOUNDARY" \
$node:$port/v1/eval?database=$db_name
它工作正常,但我想直接在 marklogic 中安排此提取并将其 运行 放在后台,以避免在请求执行时间过长时超时。
是否有类似的功能可以做到这一点?
此致, 罗曼.
您可以使用 task scheduler 设置循环执行脚本。
可以在脚本中使用 xdmp:set-request-time-limit
调整超时我建议你也看看 MLCP。
根据 Mads 的建议,像 CORB 这样的工具可以帮助从 MarkLogic 中提取 csv 数据。
迈克尔建议的时间表可以触发定期导出,并将输出保存到磁盘,或通过 HTTP 将其推送到其他地方。不过,在这种情况下,我会研究 运行ning 增量导出,并且我还建议将事情分批处理。在大型集群中,我什至建议将导出分块为每个林或每个连接内容林的主机。计划任务允许针对特定主机,它们应该 运行.
您还可以 运行 临时导出,尤其是当您使用 taskbot 等工具批量处理工作时。如果将它与其 OPTIONS-SYNC-UPDATE
模式结合使用,则可以在发出结果文件之前将多个批次合并回一个结果文件,与 运行 单线程相比,它可以获得更好的性能。合并结果不会无限扩展,但如果你有一个相对较小的数据集(可能只有几百万条小记录),这可能就足够了。
HTH!