我目前正在使用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中直接安排这个提取,并让它在后台运行,以避免在执行请求需要太多时间时超时。
有这样的特征吗?
你好,罗曼。
发布于 2017-08-10 16:46:08
发布于 2017-08-18 18:38:16
正如Mads所建议的,像科布这样的工具可以帮助将csv数据从MarkLogic中提取出来。
Michael建议的计划可以触发定期导出,并将输出保存到磁盘,或者通过HTTP将输出推送到其他地方。不过,我会考虑在这种情况下运行增量导出,并建议分批处理。在一个大的集群中,我甚至建议将每个林中的输出分批处理,或者将内容林附加在每个主机上。计划的任务允许针对它们应该运行的特定主机。
您还可以运行一个临时导出,特别是如果您使用像任务机器人这样的工具对工作进行批处理。如果将它与其OPTIONS-SYNC-UPDATE模式相结合,您也可以在发出结果文件之前将多个批合并回一个结果文件,并且与单线程运行相比,可以获得更好的性能。合并结果并不是无止境的,但是如果您有一个相对较小的数据集(可能只有几百万个小记录),这可能就足够了。
哈哈!
https://stackoverflow.com/questions/45615303
复制相似问题