SYSTEM$DATA_METRIC_SCAN¶
データ品質チェックに失敗したデータを含むとして、データ品質メトリック によって識別された行を返します。例えば、 NULL_COUNT データメトリック関数を引数として使用した場合、この関数はテーブル内の特定の列に NULL 値を含む行を返します。
構文¶
SYSTEM$DATA_METRIC_SCAN(
REF_ENTITY_NAME => '<object>'
, METRIC_NAME => '<data_metric_function>'
, ARGUMENT_NAME => '<column> [ , <column> ... ]'
[ , ARGUMENT_EXPRESSION => '<boolean-expression>' ]
[ , AT_TIMESTAMP => '<timestamp>' ] )
引数¶
必須:
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 [ , column ... ]'Name of the columns in the specified table or view that are being passed as arguments to the specified data metric function.
オプション:
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'
));
Given that the SNOWFLAKE.CORE.DUPLICATE_COUNT system metric returns the count of duplicate values, the following returns
the rows of the employeesTable table that had duplicate values in both the first_name and last_name columns.
SELECT *
FROM TABLE(SYSTEM$DATA_METRIC_SCAN(
REF_ENTITY_NAME => 'governance.sch.employeesTable',
METRIC_NAME => 'snowflake.core.duplicate_count',
ARGUMENT_NAME => 'first_name, last_name'
));
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'
));