Cached Mart Dimension referenced by other model objects (Business Rule)
Applies to
Platform: Microsoft SQL Server · Snowflake · Databricks · Databricks dbt · Fabric Lakehouse · Fabric Warehouse · Oracle
Architecture: Data Mart
This business rule checks a Mart Dimension with Implementation Type Cached against the model objects that reference it. A Cached Mart Dimension is truncated during load, so every referencing model object must be truncated as well and must not have foreign key constraints to it. Both rules raise an error, which blocks generation in the client: ID-10054 and ID-10055.
Messages
Each message names the Mart Dimension and its type in place of <model object name> and <type>. The Generate Artifacts page lists the messages without the rule ID.
Referencing model object is not truncated during load
The client shows an error with this text:
Model object '<model object name>' of type '<type>' has unsupported implementation type 'Cached' defined because a referencing model object uses a permanent implementation type or fact load strategy. Implementation type 'Cached' is only supported when all referencing model objects are also truncated during load, so all referenced identities are updated.
On the model object card, point to the error icon to see this message with the rule ID: Error ID-10054.
Cause: a model object with a relationship to the Mart Dimension has Implementation Type Permanent, or Implementation Type FactLoadStrategy with a dataflow whose Fact Load Strategy is not Truncate Insert alone.
Fix: set Implementation Type of the Mart Dimension to Permanent, or load every referencing model object with Fact Load Strategy Truncate Insert only.
Referencing model object has foreign key constraints
The client shows an error with this text:
Model object '<model object name>' of type '<type>' has unsupported implementation type 'Cached' defined because a referencing model object uses a foreign key constraint mode that is not 'None'. Implementation type 'Cached' is only supported when all referencing model objects are configured to not have foreign keys, so the truncate of the model object is not blocked during load.
On the model object card, point to the error icon to see this message with the rule ID: Error ID-10055.
Cause: a model object with a relationship to the Mart Dimension has Foreign Key Mode Create Disabled or Create Enforced.
Fix: set Foreign Key Mode of the referencing model objects to None, or set Implementation Type of the Mart Dimension to Permanent.
Available since Generator 2.0.
Check the result
The error icon is gone from the Mart Dimension, and generation is no longer blocked by it.
Example
In a Data Mart project on Microsoft SQL Server, the Mart Dimension common_salestransaction gets Implementation Type Cached. Mart Facts with Fact Load Strategy Insert reference it. The client shows:
Model object 'common_salestransaction' of type 'Mart Dimension' has unsupported implementation type 'Cached' defined because a referencing model object uses a permanent implementation type or fact load strategy. Implementation type 'Cached' is only supported when all referencing model objects are also truncated during load, so all referenced identities are updated.
Related articles
- Reference: Implementation Type (Model Object), Foreign Key Mode (Model Object), Fact Load Strategy (Dataflow), Mart Dimension
- See also: Understand warnings and errors