My first Publication Agile-Data-Warehouse-Design-eBook | Page 107

86 Chapter 3 Historic Value Attributes Historical value (HV) attributes support “as was” reporting HV attributes require more ETL resources, but provide more flexible reporting Historic value (HV) attributes support “as was” reporting by providing the histori- cally correct dimensional values to group and filter historical events and measures. Everything is reported “as it was” at the time of the event. Returning to the Mori- arty example, an HV customer STATE attribute would roll last year’s orders up to New York, and this year’s up to California. Preserving dimensional history requires more ETL work but data warehouses that are built using HV dimensions are more flexible. Not only can they correctly answer the “What were things really like when …?” questions by default, they can also be used with minimal effort to recast history to current values for “as is” reporting, or to a specific date, such as a financial year-end for “as at” reporting. HV dimensions techniques for supporting both “as is” and “as was” reporting are covered in Chapter 6. Historic value dimensional attributes support the agile principle “Welcome chang- ing requirements, even late in development.” Stakeholders are able to change their mind about using current or historic values without ETL developers “tearing their hair out” and having to reload the data warehouse. Telling Change Stories You discover temporal properties by telling change stories To discover exactly how a dimension handles descriptive history, you add an extra row to the dimension table, to hold a change story for each attribute and ask the stakeholders to help you fill it out. For each attribute, you start by asking if it can change; for example: Can the PRODUCT NAME of a PRODUCT change? If the answer is NO, label the attribute as fixed value with the short code FV and copy its example value from the first row (the typical member) into its change story as in Figure 3-15 to illustrate that it is unchanging over time. Then move on to the next attribute. If the answer is YES, the attribute’s values are not fixed and you need to ask a follow-on question to discover if stakeholders want/need (not always the same thing) historical values. For example, if PRODUCT TYPE is not FV ask: If the PRODUCT TYPE of a PRODUCT changes will you need its historic values for grouping and filtering your reports?