Explain the difference between a data lake and a data warehouse. When would you use one over the other?