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.