I had used SSIS from MS and Kettle from Pentaho,Now trying INFA
About Insert or Update, the Kettle would be the best and effective tool which just need one component ---'insert/update' to handle this, however those two other tools have to first use 'lookup' to determine if records already exists
Hope they could be improved in the further