Indeed, I think you should at least read it chunked.
But reading the file into the database and then process it further, using a polling adapter is also a good choice. That option will enable you to process the rows in parallel by multiple nodes. And at a fault, only the row that faults is rolled back.
I guess I prefer the database option, although it is a bit more work.