Rule types and failed rows validations
Data Quality Studio provides rule types to validate data quality in Snowflake and Databricks. Each rule type targets specific data quality dimensions and generates a SQL query which provides failed rows when violations occur.
How failed rows validation works
When a data quality rule fails, Atlan automatically generates SQL queries that help you identify and inspect the problematic rows in your source system.
Query behavior:
- Filters rows that violate the rule condition
- Available for rules with per-row conditions (including Min/Max). Not available for aggregate-only metrics (Average, Standard Deviation, Row Count, Freshness, Custom SQL)
Engine support:
- All rule types work with both Snowflake and Databricks
- Column type restrictions vary by engine (see individual rule details below)
Accessing failed rows
Failed rows SQL queries can be accessed from the Data quality tab in Atlan. Select any failed rule execution to view the generated SQL query for investigating the specific rows that violate the rule.

Available rule types
Rule types are organized by data quality dimension. Each rule type includes supported column types for Snowflake and Databricks, along with details about the failed rows SQL it generates.
Completeness checks
Completeness rules identify missing or empty data in your columns.
- Snowflake
- Databricks
Blank CountCompletenessOptional
Blank CountCompletenessCounts blank values in a column.
VARCHARSTRINGTEXTSELECT * FROM table WHERE column = ''Blank PercentageCompletenessOptional
Blank PercentageCompletenessCalculates the percentage of blank values in a column.
VARCHARSTRINGTEXTSELECT * FROM table WHERE column = ''Null CountCompletenessOptional
Null CountCompletenessCounts NULL values in a column.
DATEFLOATNUMBERDECIMALDECNUMERICINTINTEGERBIGINTSMALLINTFLOAT4FLOAT8DOUBLEDOUBLE PRECISIONREALTIMESTAMP_LTZTIMESTAMP_NTZDATETIMETIMESTAMPLTZTIMESTAMPNTZTIMESTAMP_TZVARCHARSTRINGTEXTSELECT * FROM table WHERE column IS NULLNull PercentageCompletenessOptional
Null PercentageCompletenessCalculates the percentage of NULL values in a column.
DATEFLOATNUMBERDECIMALDECNUMERICINTINTEGERBIGINTSMALLINTFLOAT4FLOAT8DOUBLEDOUBLE PRECISIONREALTIMESTAMP_LTZTIMESTAMP_NTZDATETIMETIMESTAMPLTZTIMESTAMPNTZTIMESTAMP_TZVARCHARSTRINGTEXTSELECT * FROM table WHERE column IS NULLBlank CountCompletenessOptional
Blank CountCompletenessCounts blank values in a column.
STRINGSELECT * FROM table WHERE column = ''Blank PercentageCompletenessOptional
Blank PercentageCompletenessCalculates the percentage of blank values in a column.
STRINGSELECT * FROM table WHERE column = ''Null CountCompletenessOptional
Null CountCompletenessCounts NULL values in a column.
DATETIMESTAMPTIMESTAMP_NTZFLOATDOUBLEDECIMALBYTESHORTLONGBIGINTINTEGERINTSMALLINTTINYINTSTRINGBOOLEANBINARYVARIANTOBJECTSELECT * FROM table WHERE column IS NULLNull PercentageCompletenessOptional
Null PercentageCompletenessCalculates the percentage of NULL values in a column.
DATETIMESTAMPTIMESTAMP_NTZFLOATDOUBLEDECIMALBYTESHORTLONGBIGINTINTEGERINTSMALLINTTINYINTSTRINGBOOLEANBINARYVARIANTOBJECTSELECT * FROM table WHERE column IS NULLStatistical checks
Statistical rules validate numeric values by comparing them to minimum, maximum, average, and standard deviation thresholds.
- Snowflake
- Databricks
Max ValueStatisticalOptional
Max ValueStatisticalComputes the maximum value and validates it against a threshold. Provides failed rows that violate the threshold (for example, when using ≥ X, returns rows less than X).
FLOATNUMBERDECIMALDECNUMERICINTINTEGERBIGINTSMALLINTFLOAT4FLOAT8DOUBLEDOUBLE PRECISIONREALSELECT * FROM table WHERE column > XSELECT * FROM table WHERE column <= X
Min ValueStatisticalOptional
Min ValueStatisticalComputes the minimum value and validates it against a threshold. Provides failed rows that violate the threshold (for example, when using ≥ X, returns rows less than X).
FLOATNUMBERDECIMALDECNUMERICINTINTEGERBIGINTSMALLINTFLOAT4FLOAT8DOUBLEDOUBLE PRECISIONREALSELECT * FROM table WHERE column < XSELECT * FROM table WHERE column >= X
AverageStatisticalMetric-only
AverageStatisticalCalculates the average value of numeric columns. Failed rows sql query is not available.
FLOATNUMBERDECIMALDECNUMERICINTINTEGERBIGINTSMALLINTFLOAT4FLOAT8DOUBLEDOUBLE PRECISIONREALStandard DeviationStatisticalMetric-only
Standard DeviationStatisticalCalculates standard deviation for numeric columns. Failed rows sql query is not available.
FLOATNUMBERDECIMALDECNUMERICINTINTEGERBIGINTSMALLINTFLOAT4FLOAT8DOUBLEDOUBLE PRECISIONREALMax ValueStatisticalOptional
Max ValueStatisticalComputes the maximum value and validates it against a threshold. Provides failed rows that violate the threshold (for example, when using ≥ X, returns rows less than X).
BYTEINTEGERSHORTLONGBIGINTINTSMALLINTTINYINTFLOATDOUBLEDECIMALSELECT * FROM table WHERE column > XSELECT * FROM table WHERE column <= X
Min ValueStatisticalOptional
Min ValueStatisticalComputes the minimum value and validates it against a threshold. Provides failed rows that violate the threshold (for example, when using ≥ X, returns rows less than X).
BYTEINTEGERSHORTLONGBIGINTINTSMALLINTTINYINTFLOATDOUBLEDECIMALSELECT * FROM table WHERE column < XSELECT * FROM table WHERE column >= X
AverageStatisticalMetric-only
AverageStatisticalCalculates the average value of numeric columns. Failed rows sql query is not available.
INTEGERBYTESHORTLONGBIGINTINTSMALLINTTINYINTFLOATDOUBLEDECIMALStandard DeviationStatisticalMetric-only
Standard DeviationStatisticalCalculates standard deviation for numeric columns. Failed rows sql query is not available.
INTEGERBYTESHORTLONGBIGINTINTSMALLINTTINYINTFLOATDOUBLEDECIMALUniqueness checks
Uniqueness rules identify duplicate values and measure distinct value counts in columns.
- Snowflake
- Databricks
Unique CountUniquenessOptional
Unique CountUniquenessCounts the number of unique non-NULL values in the selected column.
DATEFLOATNUMBERDECIMALDECNUMERICINTINTEGERBIGINTSMALLINTFLOAT4FLOAT8DOUBLEDOUBLE PRECISIONREALTIMESTAMP_LTZTIMESTAMP_NTZDATETIMETIMESTAMPLTZTIMESTAMPNTZTIMESTAMP_TZVARCHARSTRINGTEXTSELECT DISTINCT column FROM tableDuplicate CountUniquenessOptional
Duplicate CountUniquenessCounts distinct values that appear more than once.
DATEFLOATNUMBERDECIMALDECNUMERICINTINTEGERBIGINTSMALLINTFLOAT4FLOAT8DOUBLEDOUBLE PRECISIONREALTIMESTAMP_LTZTIMESTAMP_NTZDATETIMETIMESTAMPLTZTIMESTAMPNTZTIMESTAMP_TZVARCHARSTRINGTEXTSELECT column, COUNT(*) FROM table GROUP BY column HAVING COUNT(*) > 1Unique CountUniquenessOptional
Unique CountUniquenessCounts the number of unique non-NULL values in the selected column.
DATETIMESTAMPTIMESTAMP_NTZFLOATDOUBLEDECIMALBYTESHORTLONGBIGINTINTINTEGERSMALLINTTINYINTSTRINGSELECT DISTINCT column FROM tableDuplicate CountUniquenessOptional
Duplicate CountUniquenessCounts distinct values that appear more than once.
DATETIMESTAMPTIMESTAMP_NTZFLOATDOUBLEDECIMALINTEGERBYTESHORTLONGBIGINTINTSMALLINTTINYINTSTRINGSELECT column, COUNT(*) FROM table GROUP BY column HAVING COUNT(*) > 1Validity checks
Validity rules verify that data values conform to expected formats, patterns, and constraints.
- Snowflake
- Databricks
RegexValidityOptional
RegexValidityValidates column values using REGEXP function. Returns rows that don't satisfy the regex condition.
VARCHARSTRINGTEXTSELECT * FROM table WHERE NOT REGEXP(column, 'pattern')String LengthValidityOptional
String LengthValidityValidates string length using comparison operators. Returns rows where string length violates the threshold. Supported operators: between, =, >, ≥, <, ≤.
VARCHARSTRINGTEXTSELECT * FROM table WHERE LENGTH(column) > XValid ValuesValidityOptional
Valid ValuesValidityValidates values using allowed or disallowed lists. Returns rows with values outside the allowed list or inside the disallowed list.
VARCHARSTRINGTEXTSELECT * FROM table WHERE column NOT IN ('value1', 'value2', 'value3')RegexValidityOptional
RegexValidityValidates column values using RLIKE function. Returns rows that don't satisfy the regex condition.
STRINGSELECT * FROM table WHERE column RLIKE 'pattern'String LengthValidityOptional
String LengthValidityValidates string length using comparison operators. Returns rows where string length violates the threshold. Supported operators: between, =, >, ≥, <, ≤.
STRINGSELECT * FROM table WHERE LENGTH(column) > XValid ValuesValidityOptional
Valid ValuesValidityValidates values using allowed or disallowed lists. Returns rows with values outside the allowed list or inside the disallowed list.
STRINGSELECT * FROM table WHERE column NOT IN ('value1', 'value2', 'value3')Timeliness checks
Timeliness rules verify data freshness by checking when data was last updated.
- Snowflake
- Databricks
FreshnessTimelinessMetric-only
FreshnessTimelinessValidates data recency using date or timestamp columns. Failed rows sql query is not available.
DATETIMESTAMP_LTZTIMESTAMP_TZTIMESTAMPLTZTIMESTAMPTZFreshnessTimelinessMetric-only
FreshnessTimelinessValidates data recency using timestamp columns. Failed rows sql query is not available.
TIMESTAMPVolume checks
Volume rules measure the total number of rows in tables.
Row CountVolumeMetric-only
Row CountVolumeCounts total rows in a table. Operates at table level (no column selection required). Failed rows sql query not available.
Custom checks
Custom rules let you define your own SQL-based metrics tailored to specific validation requirements.
Custom SQLCustomMetric-only
Custom SQLCustomExecutes custom SQL queries that return a single numeric result. Failed rows sql query is not available.