The business has a need for some single value dimensions:
DIM_BuildDate - store datetime of the DW build, with latest inventory date
DIM_CurrentAccountingPeriod - what is the accounting period now (at build date)
DIM_CurrentExchangeRate - what is the currency exchange rate now
Perhaps they could all roll into a single dimension with attributes for each value, but that is not my concern.
This seems wrong. The values change daily or periodically, making them slowly changing dimensions, at best. However, there is some genuine usefulness in storing those values with the DW.
- If a transactional job had failed, the DW build might have inventory data that is two days old, and that's important. So I store it in DIM_BuildDate.
- Often, the calendar date does not match up with the accounting period, especially near the beginnings and endings of months. So I store that as DIM_CurrentAccountingPeriod.
- There is a FACT_ExchangeRate which stores exchange rate values over time, but the business people want an easy way to access "Current Exchange Rate."
I want to be practical, and offer useful objects such as these, but I suspect these dimensions do not conform to a proper Kimball implementation.
What is another way to provide for these requirements in the DW?