当我将 csv 文件发送到 marklogic 时,它不会覆盖前一个文件吗?

When i am sending the csv file to marklogic it is not overwriting the previous one?

我正在将以下 csv 文件发送到 marklogic

id,first_name,last_name,email,country,ip_address
5,Shawn,Grant,sgrant0@51.la,Liberia,37.194.161.124
5,Joshua,Fields,jfields1@godaddy.com,Colombia,54.224.238.176
5,Johnny,Bell,jbell2@t.co,Finland,159.38.61.122

使用以下命令通过 mlcp

C:\mlcp-9.0.3\bin>mlcp.bat import -host localhost -port 9636 -username admin -pa
ssword admin -input_file_path D:\test.csv -input_file_type delimited_text -docum
ent_type json

What happened ?

当我看到查询控制台时,我有一个 JSON 文档,其中包含以下信息

 id,first_name,last_name,email,country,ip_address
 5,Shawn,Grant,sgrant0@51.la,Liberia,37.194.161.124

What i am expecting ?

默认情况下,csv 的第一列是通过创建 json/xml 文档获取的。因为我发送了 3 行,所以它应该有最新的信息(即第 3 行)。

By Assumption

因为我在 mlcp 中一次发送所有三行,所以我们不能说哪一个先发送到 ML DB

让我知道我的假设是对还是错..

谢谢

MLCP 希望尽可能快。对于 CSV 文件,它将使用多个线程处理行(如果您通过了拆分选项,甚至可以对文档进行分片)。有了这个,就不能保证它将以任何特定的顺序进行处理。您可以调整 MLCP 中的某些设置以使用一个线程而不对文件进行分片以影响您想要的结果,但在这种情况下,您将失去 MLCP 的一些功能。

其次,一个观察:根据我对您的问题陈述的解释,您增加了相当多的插入和覆盖不需要的文档的开销。为什么不对您的初始 CSV 文档进行分类和过滤,使每个 ID 只有一条记录,从而避免您的计算机执行更多工作。