I'm following the approach you suggested about using the batch update. I'll have a look at the Bulk API and see if I can use it.