Any attribute that is defined as a KEY requires a value to be populated (as you can't really have NULL's for KEYs ). What looks like an issue here (and something I would not do in Compose personally) - is making a relationship part of the KEY of the table. So for your example - Agreement_Master has an FK to Business_Unit_Master Business_Unit is a KEY column for BUM - so it has been pulled down into the Agreement_Master mapping. To do this, Compose adds the KEY columns for the related table into the mapping. When processing the data, Compose needs to understand which source columns map to the parent(foreign key) tables NATURAL KEYs. In the Compose model you have relationships between your entities and those relationships are based on the LOGICAL KEY (typically considered the natural or business key in DW parlance). Compose automated ETL will handle associating the physical DW tables together based on the surrogate keys (ID column).