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

64 Chapter 3 BK : Business Key. A source system key that can uniquely identify a dimensional member. Discovering a suitable customer identifier can be difficult. There may be more than one Asking for a customer business key can be a vexing question. If customer data comes from multiple sources, a single business key that identifies all customers uniquely across all business processes may simply not exist. If you are lucky, customers will have a single major source, or a master data management (MDM) application will have created a master customer ID that the data warehouse can use. If not, be prepared for some interesting discussions with the stakeholders. You may have to model several alternate business keys to have a reliable identifier for each customer. Dimensional Attributes Use any detail about detail that you have then ask for new attributes Having defined the dimension’s granularity, you are now ready to discover the rest of its attributes. You may already have a short list of candidate attributes that were identified as detail about detail while modeling an event. Figure 3-3 shows the PRODUCT TYPE detail about detail being added to the PRODUCT dimension. These candidate attributes are a good place to start, because the stakeholders are obviously keen to use them. If you don’t have any candidate attributes then it’s time to ask the stakeholders: What attributes of [dimension name] are interesting for reporting purposes? What attributes would you like to be able to sort, group, or filter [dimension name]s on? This usually produces a list of attributes that should be tested, one at a time, to ensure they are in scope. Attribute Scope Check that the new attribute is in scope for your current project, iteration or release Before you add an attribute to a dimension you need to check that it is within the scope of the dimension and the current project iteration. You check the initial feasibility of an attribute by asking stakeholders whether they believe that data for the new attribute will be readily available from the same sources as other attributes and event details. You should be wary of attributes that don’t exist yet, or greatly expand the number of data sources you have to deal with in an iteration. Attempt- ing to collect examples is a good way of weeding out attributes that are “nice to have if we had an infinite budget.” If stakeholders struggle to provide any exam- ples, or can’t agree on common examples, the attribute may be of limited value.