首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >marklogic 8:调度Xquery提取

marklogic 8:调度Xquery提取
EN

Stack Overflow用户
提问于 2017-08-10 13:35:37
回答 2查看 83关注 0票数 1

我目前正在使用Xquery查询(通过API启动)从Marklogic 8.0.6/

我的文件extract_data.xqy中的查询

代码语言:javascript
复制
xdmp:save("toto.csv",let $nl := "
"

return
document {

for $data in collection("http://book/polar")
return ($data)
}) 

API调用:

代码语言:javascript
复制
$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中直接安排这个提取,并让它在后台运行,以避免在执行请求需要太多时间时超时。

有这样的特征吗?

你好,罗曼。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-10 16:46:08

您可以使用任务调度器来设置重复的脚本执行。

可以使用xdmp:设置-请求-时限在脚本中调整超时

我建议你也看看MLCP

票数 4
EN

Stack Overflow用户

发布于 2017-08-18 18:38:16

正如Mads所建议的,像科布这样的工具可以帮助将csv数据从MarkLogic中提取出来。

Michael建议的计划可以触发定期导出,并将输出保存到磁盘,或者通过HTTP将输出推送到其他地方。不过,我会考虑在这种情况下运行增量导出,并建议分批处理。在一个大的集群中,我甚至建议将每个林中的输出分批处理,或者将内容林附加在每个主机上。计划的任务允许针对它们应该运行的特定主机。

您还可以运行一个临时导出,特别是如果您使用像任务机器人这样的工具对工作进行批处理。如果将它与其OPTIONS-SYNC-UPDATE模式相结合,您也可以在发出结果文件之前将多个批合并回一个结果文件,并且与单线程运行相比,可以获得更好的性能。合并结果并不是无止境的,但是如果您有一个相对较小的数据集(可能只有几百万个小记录),这可能就足够了。

哈哈!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45615303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档