如何更新 MarkLogic 中非常大的文档的 XML 集合?

问题描述 投票:0回答:1

我正在 MarkLogic 中处理一个大型 XML 文件——大约 50MB,长 700,000 行。该任务涉及使用 XQuery 模块添加和删除特定集合。以前,我使用

xdmp:invoke-function()
来执行这些操作,但它导致了严重的性能问题,导致超时。

删除

xdmp:invoke-function()
后,我可以在查询控制台中手动运行该操作,但仍然需要近8分钟才能完成。作为模块的一部分运行相同的操作会影响其他模块,从而导致系统范围的超时。

我尝试将交易时间限制增加到 1 小时并使用

xdmp:spawn-function()
并行化任务,但这两种方法都没有解决问题。

鉴于我在 3 节点集群上运行此程序,在 MarkLogic XQuery 中高效更新大型文档集合的最佳方法是什么?

xml query-optimization bigdata xquery marklogic
1个回答
0
投票

添加/删除集合需要更新 MarkLogic 中的该文档。如果您要更改集合或内容,它仍然需要更新 - 并且大得离谱的文档(甚至是具有大量集合的合理大小的文档)将需要时间来保存。

通常不建议管理一个 50MB、700,000 行长的大型文档,而是考虑将其分解为许多较小的记录。如果需要,您始终可以通过将它们组合在响应中来构建这样的文档。

© www.soinside.com 2019 - 2024. All rights reserved.