カテゴリ:

システム関数テーブル関数

SYSTEM$DATA_METRIC_SCAN

データ品質チェックに失敗したデータを含むとして、データ品質メトリック によって識別された行を返します。例えば、 NULL_COUNT データメトリック関数を引数として使用した場合、この関数はテーブル内の特定の列に NULL 値を含む行を返します。

構文

SYSTEM$DATA_METRIC_SCAN( REF_ENTITY_NAME => '<object>' , METRIC_NAME => '<data_metric_function>' , ARGUMENT_NAME => '<column>' [ , ARGUMENT_EXPRESSION => '<boolean-expression>' ] [ , AT_TIMESTAMP => '<timestamp>' ] ) 
Copy

引数

必須:

REF_ENTITY_NAME => 'object'

データメトリック関数を実行するテーブルまたはビューの名前。この関数は、このオブジェクトから行を返します。

METRIC_NAME => 'data_metric_function'

指定したテーブルまたはビューを評価するために実行するシステムデータメトリクスの名前。以下のシステム機能のみがサポートされています。

  • SNOWFLAKE.CORE.ACCEPTED_VALUES

  • SNOWFLAKE.CORE.BLANK_COUNT

  • SNOWFLAKE.CORE.BLANK_PERCENT

  • SNOWFLAKE.CORE.DUPLICATE_COUNT

  • SNOWFLAKE.CORE.NULL_COUNT

  • SNOWFLAKE.CORE.NULL_PERCENT

ARGUMENT_NAME => 'column'

指定されたデータメトリック関数の引数として渡される、指定されたテーブルまたはビューの列の名前。

オプション:

ARGUMENT_EXPRESSION => 'boolean-expression'

Required if the specified data metric function is ACCEPTED_VALUES. Disallowed for all other DMFs.

Specifies a Boolean expression used to evaluate whether a record passes or fails the ACCEPTED_VALUES data quality check. The SYSTEM$DATA_METRIC_SCAN function returns records that do not match the Boolean expression. The expression can include the following operators and functions:

ブール式の列は、ARGUMENT_NAME 引数で指定された列と同じである必要があります。

If the ACCEPTED_VALUES DMF is associated with the object specified by REF_ENTITY_NAME, the SYSTEM$DATA_METRIC_SCAN function ignores the Boolean expression that was specified when ACCEPTED_VALUES was associated with the object.

AT_TIMESTAMP => 'timestamp'

過去のテーブルやビューの DMF 評価結果を確認するための引数として渡されるタイムスタンプ。

戻り値

指定したテーブルまたはビューの行。

アクセス制御権限

この関数を実行するには以下の権限が必要です。

  • 指定したテーブルに対する SELECT。

  • 指定したデータメトリック関数に対する USAGE。

使用上の注意

  • この関数はユーザー定義のメトリックをサポートしていません。

  • 指定したテーブルがマスキングポリシーや行アクセスポリシーなどのポリシーで保護されている場合、関数を実行したときのユーザーのロールによって結果が異なるため、この関数は予期しないデータや不完全なデータを返すことがあります。

SNOWFLAKE.CORE.NULL_COUNT システムメトリックが特定の列の NULL 値の総数を返す場合、以下は SSN 列に NULL 値を持つ employeesTable テーブルの行を返します。

SELECT * FROM TABLE(SYSTEM$DATA_METRIC_SCAN( REF_ENTITY_NAME => 'governance.sch.employeesTable', METRIC_NAME => 'snowflake.core.null_count', ARGUMENT_NAME => 'SSN' )); 
Copy

SNOWFLAKE.CORE.BLANK_COUNT システムメトリックがある列の値が空白であるカウントを返す場合、以下は、過去の特定の時刻に存在したテーブルのバージョンで name 列の値が空白であった employeesTable テーブルの行を返します。

SELECT * FROM TABLE(SYSTEM$DATA_METRIC_SCAN( REF_ENTITY_NAME => 'governance.sch.employeesTable', METRIC_NAME => 'snowflake.core.blank_count', ARGUMENT_NAME => 'name', AT_TIMESTAMP => '2024-08-28 02:00:00 -0700' )); 
Copy

age 列の値が5と等しく*ない*行(つまり、ARGUMENT_EXPRESSION で指定された条件に一致*しない*行)を返します。

SELECT * FROM TABLE(SYSTEM$DATA_METRIC_SCAN( REF_ENTITY_NAME => 'governance.sch.employeesTable', METRIC_NAME => 'snowflake.core.accepted_values', ARGUMENT_NAME => 'age', ARGUMENT_EXPRESSION => 'age = 5' )); 
Copy