I have designed a DW setup before that cut the usual whole process of loading new data to the DW server, regenerate the cube to up to 400%.

Here is what I did, create a dummy database that its only purpose is to load new data anytime as long as the new data(either dump, data from other db server, etc.) is available. After the new data are loaded, when DW DB server is available for use, retrieve all new data from the dummy server using dblink and then update the date range of the cubes(discover in my case at that time) for regenerating/updating the cube. And then truncate again all data from dummy server.
So, users still enjoy the use of the DW server, while the dummy database uploads the new data. And I do it every night.