Many data warehousing applications make use of a surrogate key instead of using the keys from an operational system, like an alphanumeric employee ID or an integer employee number.
A surrogate key is usually an incrementing integer with no intrinsic meaning. One reason applications use surrogate keys is to improve the performance of JOINs.
You can build a data flow to load a table that has surrogate keys by using a self-referential transformation to generate the values for the surrogate key field.
In the following example, DMSALE, a sales table, is the data source, and the extracted records are loaded into a table named DMREPS. Values for the surrogate key REPNO are generated when the data flow is run.
Refer to the sample data flow DMSURRG for the complete example.
In the DMC:
The Column Selection dialog box opens.
The SQL Calculator opens.
The Function Assist dialog box opens.
The SQL Calculator should appear as shown in the following image.
The Column Selection dialog box should appear as the following image.
The Properties dialog box opens.
The Transformations dialog box opens.
To map FNAME and LNAME, use substring to extract the necessary characters from the SALESREP source column, of which the first 16 characters are first name and the next 34 characters are last name.
The Transformation Calculator opens.
SUBSTR(50, SALESREP, 1, 16, 16, 'A16')
Click OK.
The Transformation Calculator opens.
SUBSTR (50, SALESREP, 17, 50, 34, 'A34')
Note: While the creation of a surrogate key does not require the use of the SUBSTR function, it is a useful routine that can be used in a number of different situations.
Click OK.
The Transformation Calculator opens.
DECODE PLANT (BOS MA DAL TX LA CA ORL FL SEA WA STL MO)
This expressions will convert a three-character city name to its two-character state code.
Click OK.
The Transformation Calculator opens.
When you have completed the transformations, the Transformations dialog box should appear, as shown in the following image.
The Test Transformations dialog box opens, as shown in the following image.
Note that REPNO is incremented by one for each record and that FNAME and LNAME are transformed correctly.
Close the Test Transformations dialog box.
When the data flow run is complete, verify that the target was loaded properly and that the surrogate key was generated by right-clicking the DMREPS object, clicking Expand, and then clicking the Sample Data tab in the window that opens. The following image shows the DMREPS window with the Sample Data tab selected.
There are two ways to confirm that the job ran correctly:
On the Flow tab, in the Reports group, click View Last Log.
or
Right-click the flow from the navigation pane, point to Logs, and then click Last Log.
The following image shows the log of the most recently run procedure.
WebFOCUS | |
Feedback |