Java OrientDB中的批插入

Java OrientDB中的批插入,java,orientdb,nosql,Java,Orientdb,Nosql,我有大约10000条记录(大约),我想在Orient DB中进行批量插入。 我的问题是DB中已经存在一些记录(我根据一些唯一字段来决定)。因此,我的批处理操作应该更新现有记录,并为不存在的记录创建新记录。对于给定的批处理文件,同一记录可能会出现两次,但值不同(除了唯一字段),这样的记录也应该得到更新 例如: description firstName lastName title organization currentStage inCurrentSt

我有大约10000条记录(大约),我想在Orient DB中进行批量插入。 我的问题是DB中已经存在一些记录(我根据一些唯一字段来决定)。因此,我的批处理操作应该更新现有记录,并为不存在的记录创建新记录。对于给定的批处理文件,同一记录可能会出现两次,但值不同(除了唯一字段),这样的记录也应该得到更新

例如:

description firstName lastName title organization currentStage inCurrentStageAsOf serviceLevelMonitored description1 John Doe CEO organization1 Existing 1012001 Availability description2 Jane Doe CIO organization2 End-of-Life 2022002 Performance description3 Jane Doe CIO organization2 End-of-Life 2022002 Performance description2 Jane Joe CIO organization2 End-of-Life 2022002 Performance description4 Jane Doe CIO organization2 End-of-Life 2022002 Performance description5 Jane Doe CIO organization2 End-of-Life 2022002 Performance description6 Jane Doe CIO organization2 End-of-Life 2022002 Performance description7 Jane Doe CIO organization2 End-of-Life 2022002 Performance description8 Jane Doe CIO organization2 End-of-Life 2022002 Performance description9 Jane Doe CIO organization2 End-of-Life 2022002 Performance description10 Jane Doe CIO organization2 End-of-Life 2022002 Performance description11 Jane Doe CIO organization2 End-of-Life 2022002 Performance description2 Jane Doe organization2 End-of-Life 2022002 Performance description firstName lastName title组织currentStage IncirentStageAsof serviceLevelMonitored 描述1 John Doe首席执行官组织1现有1012001可用性 描述2 Jane Doe首席信息官组织2生命终止2022002年绩效 描述3 Jane Doe首席信息官组织2生命终止2022002年绩效 描述2 Jane Joe首席信息官组织2生命终止2022002年绩效 描述4 Jane Doe首席信息官组织2寿命终止2022002年绩效 描述5 Jane Doe首席信息官组织2生命终止2022002年绩效 描述6 Jane Doe首席信息官组织2生命终止2022002年绩效 描述7 Jane Doe首席信息官组织2生命终止2022002年绩效 描述8 Jane Doe首席信息官组织2生命终止2022002年绩效 描述9 Jane Doe首席信息官组织2生命终止2022002年绩效 描述10 Jane Doe首席信息官组织2生命终止2022002年绩效 描述11 Jane Doe首席信息官组织2生命终止2022002年绩效 描述2 Jane Doe组织2寿命终止2022002年绩效 对于上述操作,如果我的唯一字段是description和lastName。然后我在Rec2和Rec13的文件中有重复的记录,但是Rec4不是重复的。也可能有些记录已经存在于数据库中

如果我的文件很大,我应该如何应用批处理? 我现在能想到的是将asyn线程发送到DB,以查找Rec是否存在,然后更新现有记录的Id,并将整个组分为两个(要更新和要创建的记录)和分别用于创建和更新的应用批处理。如果有什么事情可以一蹴而就的话,我只是想寻求建议。
谢谢。

您可以使用
updateupsert
来完成

正如在中所解释的,您需要对感兴趣的属性进行唯一索引,因此在您的情况下

CREATE INDEX yourClass.desc_lastName ON yourClass (description,lastName) UNIQUE_HASH_INDEX
然后,您可以使用更新(例如,对于您的第一条记录):


您可以使用
updateupsert
执行此操作

正如在中所解释的,您需要对感兴趣的属性进行唯一索引,因此在您的情况下

CREATE INDEX yourClass.desc_lastName ON yourClass (description,lastName) UNIQUE_HASH_INDEX
然后,您可以使用更新(例如,对于您的第一条记录):


您好,您是否考虑过
更新插入
?您好,您是否考虑过
更新插入