- カテゴリ:
ACCEPTED_VALUES (システムデータメトリック関数)¶
列の値がブール式と一致*しない*記録の数を返します。
構文¶
SNOWFLAKE.CORE.ACCEPTED_VALUES ON ( <column>, <lambda-expression> )
引数¶
column
lambda-expression
のブール式と比較される値を含む列を指定します。lambda-expression
次の構文で構成されるLambda式を指定します。
column -> expression
この関数は、
column
の値がブール式と一致しない記録の数を返します。この式は、次の操作と関数を使用できます。ラムダ式の
column
は常にcolumn
引数に一致します。
許可されるデータ型¶
column
で指定された列および lambda-expression
引数には、次のデータ型のいずれかを含めることができます。
DATE
FLOAT
NUMBER
TIMESTAMP_LTZ
TIMESTAMP_NTZ
TIMESTAMP_TZ
VARCHAR
戻り値¶
関数は NUMBER を返します。
アクセス制御の要件¶
システムDMFを使用するには、次のアクセス制御アプローチのいずれかを選択します。
テーブルに対する OWNERSHIP 権限を持つロールであるテーブル所有者ロールに、DATA_METRIC_USERデータベースロールを付与します。このデータベースロールは、SNOWFLAKE.CORE スキーマに対する USAGE 権限と、SNOWFLAKE.CORE スキーマにあるすべてのシステム DMFs に対する USAGE 権限を持ちます。
さらに、テーブル所有者ロールに次の権限を付与します。
権限
オブジェクト
メモ
EXECUTE DATA METRIC FUNCTION
アカウント
この権限により、どのロールがサーバーレスのコンピューティングリソースにアクセスできるかを制御し、システムDMFを呼び出すことができます。
USAGE
データベース、スキーマ
これらのオブジェクトは、 DMF が関連付けられているtable.referencedテーブルを含むデータベースとスキーマです。
SNOWFLAKEデータベースの IMPORTED PRIVILEGES をテーブル所有者ロールに付与します。詳細については、 他のロールが SNOWFLAKE データベースのスキーマを使用できるようにする をご参照ください。
ACCOUNTADMIN ロールを使用します。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
この関数を直接呼び出すことはできません。関数をテーブルまたはビューに関連付け、一定の間隔で実行する方法については、DMF と関連付けて、データ品質チェックを自動化します。 をご参照ください。
SYSTEM$DATA_METRIC_SCAN 関数を使用して、テーブルを関連付けずに ACCEPTED_VALUES 関数を実行できます。
この関数を同じ列に複数回関連付けることはできません。
ACCEPTED_VALUES 関数で指定されている列の名前の変更は、関数と列のテーブルまたはビューの間の関連付けを解除します。列の名前を変更した場合は、関数をテーブルまたはビューに再度関連付ける必要があります。
例¶
関数をテーブル t1
に関連付けることで、age
列の値が5に*等しくない*記録の数を返します。
ALTER TABLE t1
ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.ACCEPTED_VALUES ON (age, age -> age = 5);
関数をビュー order_details
に関連付けることで、order_status
列の値が Pending
、Dispatched
、および Delivered
文字列のリストに*ない*記録の数を返します。
ALTER VIEW order_details
ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.ACCEPTED_VALUES ON (
order_status,
order_status -> order_status IN ('Pending', 'Dispatched', 'Delivered'));