Ich habe etwa 10.000 Datensätze (ca.), die ich in Orient-DB Batch einfügen möchte. Mein Problem ist, dass ein Teil des Datensatzes bereits in der DB existiert (das entscheide ich anhand einiger eindeutiger Felder). Also sollte meine Batch-Operation den bestehenden Datensatz aktualisieren und den neuen für den nicht existierenden erstellen. Es kann möglich sein, dass für eine gegebene Batch-Datei derselbe Datensatz zweimal mit einem anderen Wert (abgesehen von einem eindeutigen Feld) vorkommen kann. Ein solcher Datensatz sollte ebenfalls aktualisiert werden.Batch-Einfügung in OrientDB
Beispiel:
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
Für den oben beschriebenen Vorgang, wenn meine einzigartigen Felder Beschreibung und nachName sind. Dann habe ich doppelte Datensätze in der Datei mit Rec2 und Rec13, aber Rec4 ist nicht doppelt. Es ist auch möglich, dass ein Teil des Datensatzes bereits in der DB existiert.
Wie soll ich Batch anwenden, wenn meine Datei riesig ist? Was ich jetzt denken kann, ist Fire asyn Thread zu DB zu finden, ob Rec existiert, dann aktualisieren Sie die ID für den bestehenden Datensatz und trennen Sie den ganzen Haufen in zwei (Record zu aktualisieren und zu erstellen) und die Anwendung Batch für erstellen und separat aktualisieren. Ich suche nur Rat, wenn es etwas gibt, was es auf einen Schlag macht. Danke.
Hallo Hast du den 'UPDATE UPSERT' in Betracht gezogen? –
http://orientdb.com/docs/2.1/SQL-Update.html –