System data metric functions¶

This topic is a reference for the system data metric functions (DMFs) that Snowflake provides to all accounts.

You can call these system DMFs to start measuring your data quality immediately.

About system DMFs¶

Snowflake provides system DMFs in the CORE schema of the shared SNOWFLAKE database. System DMFs are maintained by Snowflake; you cannot change the name or functionality of any system DMF.

Each system DMF enables you to measure a different data quality attribute. You can assign more than one system DMF to a table or view to allow for a more comprehensive data quality measurement to address your governance and compliance needs.

To use a system DMF, choose one of the following access control approaches:

  • Grant the DATA_METRIC_USER database role to the table owner role, which is the role with the OWNERSHIP privilege on the table. This database role has the USAGE privilege on the SNOWFLAKE.CORE schema and the USAGE privilege on all system DMFs in the SNOWFLAKE.CORE schema.

    Additionally, grant the following privileges to the table owner role:

    Privilege

    Object

    Notes

    EXECUTE DATA METRIC FUNCTION

    Account

    This privilege enables you to control which roles have access to serverless compute resources to call the system DMF.

    USAGE

    Database, schema

    These objects are the database and schema that contain the table.referenced table with which the DMF is associated.

  • Grant IMPORTED PRIVILEGES on the SNOWFLAKE database to the table owner role. For information, see Enabling other roles to use schemas in the SNOWFLAKE database.

  • Use the ACCOUNTADMIN role.

System DMFs¶

Currently, Snowflake supports these system DMFs to measure common metrics without having to define them:

Category

System DMF

Description

Accuracy

BLANK_COUNT

Determine how many blank values are in a column.

BLANK_PERCENT

Determine what percentage of a column’s values are blank.

NULL_COUNT

Determine how many NULL values are in a column.

NULL_PERCENT

Determine what percentage of a column’s values are NULL.

Freshness

FRESHNESS

Determine the freshness of a table’s data based on a timestamp column.

DATA_METRIC_SCHEDULE_TIME

Define custom freshness metrics.

Statistics

AVG

Determine the average value of a column.

MAX

Determine the maximum value of a column.

MIN

Determine the minimum value of a column.

STDDEV

Determine the standard deviation value for a column.

Uniqueness

ACCEPTED_VALUES

Determine whether values in a column match a Boolean expression.

DUPLICATE_COUNT

Determine the number of duplicate values in a column, including NULL values.

UNIQUE_COUNT

Determine the number of unique, non-NULL values in a column.

Volume

ROW_COUNT

Determine how many records are in the table or view.