Before we look at the implementation methods, it's key to understand the transformation process requirements as they directly affect the options available. In general, I have seen only three data transformation scenarios:
Source data is already transformed (i.e., no transformation required).
Source data requires very simple transformation operations.
Source data requires very complex transformation operations.
The first and second scenarios almost never occur. If they do, then either you're really building an ODS—and hence this book's techniques generally do not apply—or somehow you've tricked the upstream application teams into producing your source data files with all your data transformations already complete.