To build up history with QlikView, you can use QVD files. For every table you can create a QVD file. For example you can add the newest records from your database to the QVD file with incremental loads based on for example last change dates. Chapter 25 in your Reference Manual gives you a couple of solutions how to create QVD files. It's also possible to Insert, Update and Delete rows of data. You can find examples for incremental load in this forum.
I suppose that depends on the definition of "data warehouse". In a very general sense, I consider our multi-purpose QlikView QVD files to be a type of data warehouse. But generally speaking, no. You can load directly from your business systems. You don't need to stage the data in a data warehouse. If you have a data warehouse already in place, you might well want to load from there instead of from your raw data. But if you don't have one in place, I'm not thinking of a good reason to build one if QlikView is going to be your primary reporting tool.
As far as history goes, my preference and our most common solution in our shop is to keep history in the business systems themselves, and just load it from there into QlikView. I also have one case where history is kept in generations of a flat file, one file for each month. That was done for a particularly large (for us) database with various reasons to want to keep purging old data from the live database. We do have several incremental loads, where the QVD is storing the historical data, and it isn't being reloaded from the live system. However, in all the cases I'm thinking of, the QVD is backed up by either a file or database, so that if we lost the QVD for some reason, we could recreate it from scratch.