在使用MLCP时,我在将文档从一个数据库复制到另一个数据库时,遇到了选项文件(options.txt)中给出的"-batch_size"选项的奇怪问题,例如,如果-batch_size = 10并且要传输的文档数量(根据提供的过滤选项)为106,现在我执行命令: mlcp.bat -options_file "options.txt"
收到的内容泵统计信息如下:
INFO contentpump.LocalJobRunner:com.marklogic.mapreduce.ContentPumpStats:
INFO contentpump.LocalJobRunner: INPUT_RECORDS: 106
INFO contentpump.LocalJobRunner: OUTPUT_RECORDS: 106
INFO contentpump.LocalJobRunner: OUTPUT_RECORDS_COMMITTED: 100
INFO contentpump.LocalJobRunner: OUTPUT_RECORDS_FAILED: 0
INFO contentpump.LocalJobRunner: Total execution time: 37 sec
似乎批处理后剩余的文档(批量大小= 10)即10 * 10 + 6,6个文档没有传输到所需的数据库。
因此,不知何故,它只传输属于完整批次的文档,而不是无法形成完整批次的剩余文档。
有人可以为此提出解决方法以及此行为的原因吗?
您是否验证了"丢失"的文档是否在目标数据库中?
有一段时间(至少在导入时)存在一个错误,其中统计信息有时不正确,即使行为是正确的。此问题已在 mlcp v8.0-4 中修复。
我要检查的另一件事是目标服务器上没有记录错误。OUTPUT_RECORDS <OUTPUT_RECORDS_COMMITTED可以指示发生了服务器端错误,导致某些提交失败,如下所述:>
http://docs.marklogic.com/guide/mlcp/getting-started#id_33299
最后,你使用什么过滤器?-query_filter可能会产生误报,因为它使用未经过滤的搜索。我怀疑这是你遇到的,但认为值得一提。这里谈到了:
http://docs.marklogic.com/guide/mlcp/export#id_85989