After you create mappings to load the star schemas, create sessions and workflows to run the mappings. To verify that the Integration Service loads each table appropriately, configure each session according to the mapping type you created.
To verify that the fact tables contain the most recent data, refresh all dimension tables before loading the fact table. You can accomplish this by creating a workflow that executes the dimension sessions before executing the fact session.
To verify that all dimension sessions successfully complete before the Integration Service runs a fact session, use the following workflow logic:
Place all dimension sessions in the workflow before the fact session.
Link all dimension sessions to a Decision task.
Define the following decision condition:
$
<session_name1>
.Status = SUCCEEDED AND $
<session_name2>
.Status = SUCCEEDED AND ... $
<session_nameN>
.Status = SUCCEEDED
Place the fact session in the workflow after the Decision task, and link the Decision task to the fact session.
Configure the following link condition from the Decision task to the fact session:
$
<Decision_name>
.Condition = TRUE
For example, you create three sessions that load data to dimension tables and one session that loads data to a fact table.
The following figure shows the workflow you can create:
Define the following decision condition for the sess_successful Decision task:
$s_dimension1.Status = SUCCEEDED AND $s_dimension2.Status = SUCCEEDED AND $s_dimension3.Status = SUCCEEDED
Define the following link condition for the link from the Decision task to the s_fact fact session:
$sess_successful.Condition = TRUE
To improve workflow performance, run the dimension sessions concurrently. Arrange the sessions in the workflow to start at the same time. If the Integration Service cannot start and run all dimension sessions concurrently due to the existing session load, you can run the dimension sessions sequentially by arranging the dimension sessions sequentially in the workflow.
If you have a dimension table that does not need to reload each time you run the workflow, you can disable that session.