Rules

validatemetadata rule ruleName

validatemetadata rule IncrementalSnapshotFact

This tables detail the validation rules sorted by Rule Group:

Rule Name Rule Description
IncrementalSnapshotFact Incremental snapshot fact Delete key(s) should be marked when "Bulk Insert and Delete Measure Records" is enabled. And marked delete key should be present as either level key or measure on that stagingtable.
LevelKeyDataTypeLengthCheckRule Level keys exist and corresponding staging column should be marked as natural key Level Key(s) of level as well as parent level(s) up to hierarchy should be marked as Natural key on StagingTable at level.
LevelKeyNaturalKeyFlagChecksOnStagingTable Level key column is present against a hierarchy level with valid Birst data type and length Level key data type and length (in case of varchar) on corresponding staging table and on dimension table should be same. It is required because joins apply on that column.
StagingColumnSourceColumnMappingChecks SourceFileColumn referred in StagingColumn should exist in SourceFile. SourceFileColumn referred in StagingColumn should exist in corresponding SourceFile.
MeasureGrainCreationRule Measure Grain isn't created as a result of internal naming collision issue More than one source should not be at the same levelName(s) in different hierarchies. If two sources are on the same levelName(s) then only one fact table gets created instead of two due to name collision.
LevelKeyColSourceColMapping Level Keys are not removed from Repository after the column is removed from the Source

All the level keys associated with staging table should be existed in corresponding source file associated with staging table.

If the above condition is not met then list out those columns.

ValidateETLScript ValidateETLScript Session variable is restricted from being used in ETL script. This rule will list down all the scripted sources for which session variable is being used in ETL script.
ValidateDuplicateMeasureNameDatatype Validate column (marked as measure) having same name but have different data types Birst tries to create base facts from all the sources during building application. If the same name column is present under different sources with different data types, and marked as a measure (e.g. Integer and DateTime), Birst will store the fact as Varchar. So as best practice, measures with same name should be of same data type across all the sources, or else, measure name needs to be different. This rule will list out those entire same name columns with different data types and marked as a measure.
HierarchyDimensionKeyLevel Hierarchy Dimension Key Level Dimension key level is the lowest level in the hierarchy
HigherLevelLevelKeyNaturalKeyFlagChecksOnStagingTable Day ID, if exists then it should be marked as natural key Day ID, if exists then it should be marked as natural key
ValidateDayIDColumn SourceFileColumn field should not exist on "Day ID" staging colun, if transformation is set to V{LoadDate} SourceFileColumn field should not exist on "Day ID" staging colun, if transformation is set to V{LoadDate}
ColumnNameValidationForSourcesHavingSameGrain Column_Name Validation For Sources Having Same Grain Two data sources have the same grain, and have columns whose names differ only by underscores being used in one column name whereas spaces are used in the other column name shouldn't be allowed.
StagingColValidationHavingSameNameAndMarkedOnSameHierarchy StagingColumn validation having same name and marked on same hierarchy Data type and width of source column having same name and marked on same hierarchy should be the same
StagingColLevelKeyValidationHavingSameNameAndMarkedOnSameHierarchy StagingColumn level key validation having same name and marked on same hierarchy Data type and width of source column level key having same name and marked on same hierarchy should be the same
OutOfRangeKeyIndicesOnSourceFile Key Indices Validation on Source File Key Indices mapped on a source file should be less than the number of columns in the source file
SourceFieldsValidation Validate source against ExcludFromModel and Disabled fields List out sources which are excluded from model and disabled for loading
QueryAggregateNavigationRule Query aggregate navigation Birst should be able to navigate the query used in aggregate generation. If not then those aggregate will be listed out by this rule.
CardinalityCheck Level cardinality is non-zero positive integer Cardinality set on each level should be non-zero positive integer
HierarchyLevelRule Hierarchy name is unique and hierarchy level name is unique within hierarchy Hierarchy name should be unique and Level name should be unique within hierarchy.
UniqueSurrogateKeyCheck Availability of unique surrogate key column name Surrogate key column name should be unique within hierarchy.
CustomAttributeRule Custom Attribute derived from other custom attributes fails on improperly constructed CASE statement in SQL Custom Attribute cannot be used to derive other custom attribute at the same level.
CustomAttributeExprValidationRule Custom Attribute should validate and warn me if I exceed the 10 nested IF statement restriction. Expression of Custom Attribute should not be having more than 10 else if statement. It causes more than 10 level of nested case statement which is not supported by SQL server.
CustomMeasureExprValidationRule Custom Measure should validate and warn me if I exceed the 10 nested IF statement restriction. Expression of Custom Measure should not be having more than 10 else if statement. It causes more than 10 level of nested case statement which is not supported by SQL server.
Model Performance
PerformanceWarnings Warning rule for model performance, triggering a warning if the data model design is impacting performance. Performance checks are designed to be run against Enterprise spaces. Data Model Properties are not accessible for Professional spaces. Provides warning messages when a model properties setting may affect performance in the space. The rule throws an error warning message if one of these criteria are met: All Time Series are enabled in a space by default, including both Default Time Series and Extended Time Series The Analyze By Date is enabled for all columns. The rule does not check the properties of any prepared pipeline sources, ignored sources, hidden sources, or Live Access sources in the space.