Import utility behaves like the put option with the option "-if-absent" set
(Doc ID 2542629.1)
Last updated on JUNE 01, 2020
Applies to:Oracle NoSQL Database - Version 184.108.40.206.10 to 220.127.116.11.0 [Release 12.1]
Information in this document applies to any platform.
According to documentation, the import utility acts like another client: https://docs.oracle.com/database/nosql-18.104.22.168/AdminGuide/importutility.html#importclparms
"Write activity may be on-going against the store at the time of the import. In this regard, the import utility is simply another client writing to the store. In the case of conflict when writing a table row or record, your store data will be in a state defined by which client last wrote the data."
But this is not the case. It does not update an existing table row back to the state the export was performed. The import utility behaves like the put option with the option "-if-absent" set.
The current behavior is not a bug since that was the intended design.
When we import the records from the export bundle, the behavior of import utility is driven by whether the target store (to which you are trying to import) is empty or if also contains records whose key matches with the record you are trying to import.
When the records are imported into an empty store - everything gets imported.
However, when the target store is non-empty and contains records that match - has the same key(s) that's a conflict situation and currently, the system gives preference to records that are already present in the target store. What that means it doesn't import such conflicting records from the export bundle.
We have taken the "safe" option to NOT import all such records, and we follow what we call "put if absent" semantics.
To view full details, sign in with your My Oracle Support account.
Don't have a My Oracle Support account? Click to get started!
In this Document