SYSTEM$CLASSIFY¶
サンプルする行数を指定するオプションで指定されたオブジェクトを分類し、指定されたオブジェクトの各列に推奨される機密データ分類 システムタグ を割り当てます。
構文¶
SYSTEM$CLASSIFY( '<object_name>' , { '<classification_profile>' | <options> } )
引数¶
'object_name'
分類される列を含むテーブル、外部テーブル、ビュー、またはマテリアライズドビューの名前。データベースとスキーマが現在のセッションで使用されていない場合は、名前を完全修飾する必要があります。
名前は、データベースに保存されているとおりに正確に指定する必要があります。名前に特殊文字、大文字小文字の区別、または空白スペースが含まれている場合は、名前を最初に二重引用符で囲み、次に一重引用符で囲む必要があります。
'classification_profile'
プロファイルで指定された基準に基づいて分類するために、 分類プロファイル を指定します。
options
分類プロセスがどのように機能するかを決定する JSON OBJECT を指定します。次のいずれかを使用します。
NULL
Snowflakeは、指定されたオブジェクトの行数に基づいてデフォルトの構成を使用します。指定されたオブジェクトにあるどの列にもシステムタグは設定されません。
{}
空のオブジェクト。これは機能的には
NULL
を指定するのと同様です。{'sample_count': integer}
指定したオブジェクトにあるサンプルする行数を指定します。
1
から10000
(各値を含む)までの任意の数。{'auto_tag': true}
分類プロセスが完了したときに、指定されたオブジェクトの列に推奨分類システムタグを設定します。
この引数を使用する場合は、スキーマに対する OWNERSHIP 権限を持つロールでストアドプロシージャを呼び出します。
{'sample_count': integer, 'auto_tag': true}
サンプルする行数を指定しながら指定されたオブジェクトを分類し、分類処理が完了したら指定されたオブジェクトの各列に推奨システムタグを設定します。
この引数を使用する場合は、スキーマに対する OWNERSHIP 権限を持つロールでストアドプロシージャを呼び出します。
{'use_all_custom_classifiers': true}
Snowflakeはすべてのカスタム分類インスタンスを評価し、分類結果に基づいてカスタム分類インスタンスに関連付けられたタグを推奨します。
このオプションは、ストアドプロシージャを呼び出す使用中のロール(現在のロール、呼び出し元の権限)にアクセス可能なカスタム分類子を使用します。詳細については、 呼び出し元権限と所有者権限のストアドプロシージャについて をご参照ください。
{'custom_classifiers': ['instance_name1' [ , 'instance_name2' ... ] ]}
列に設定する推奨タグのソースとして評価する、カスタム分類インスタンスを指定します。
リストに複数のインスタンスを指定し、各インスタンスをコンマで区切ることができます。
戻り値¶
以下の形式で JSON オブジェクトを返します。例:
{ "classification_profile_config": { "classification_profile_name": "db1.sch.sensitive_data_detection_profile" }, "classification_result": { "col1_name": { "alternates": [], "recommendation": { "confidence": "HIGH", "coverage": 1, "details": [], "privacy_category": "QUASI_IDENTIFIER", "semantic_category": "DATE_OF_BIRTH", "tags": [ { "tag_applied": true, "tag_name": "snowflake.core.semantic_category", "tag_value": "DATE_OF_BIRTH" }, { "tag_applied": true, "tag_name": "snowflake.core.privacy_category", "tag_value": "QUASI_IDENTIFIER" } ] }, "valid_value_ratio": 1 } } }
条件:
classification_profile_config
自動分類が構成されている場合は、分類結果の生成に使用された構成プロファイルの完全修飾名がコンテナーとして格納されます。
classification_result
分類された各列の詳細を提供します。
alternates
各タグに関する情報と、推奨タグ以外に考慮すべき値を提供します。
recommendation
タグと値に関する情報を提供します。
これらの値は、代替と推薦の両方に表示することができます。
classifier_name
分類された列にタグを付けるために使用されたカスタム分類インスタンスの完全修飾名。
このフィールドは、列に設定するタグのソースとしてカスタム分類インスタンスを使用する場合にのみ表示されます。
confidence
HIGH
、MEDIUM
またはLOW
の値のいずれかを指定します。この値は、列のサンプリングプロセスと、列のデータとSnowflakeがデータを分類する方法の整合性に基づいて、Snowflakeが持つ相対的な信頼性を示します。coverage
特定のカテゴリのルールに一致する、サンプリングされたセル値のパーセントを提供します。
details
SEMANTIC_CATEGORY タグに対して、 地理タグ値 を参照するフィールドと値を提供します。
privacy_category
プライバシーカテゴリタグ値を提供します。
可能な値は、
IDENTIFIER
、QUASI-IDENTIFIER
、およびSENSITIVE
です。semantic_category
セマンティックカテゴリタグ値を提供します。
可能なタグの値については、 システムタグおよびカテゴリ および システムタグおよびカテゴリ をご参照ください。
tags
分類処理の結果、列に適用されたタグに関する情報を提供します。
valid_value_ratio
サンプルサイズ内の有効値の比率を提供します。無効な値には、 NULL、空の文字列、256文字を超える文字列などがあります。
使用上の注意¶
Snowflakeのストアドプロシージャは呼び出し元の権限を利用します。詳細については、 呼び出し元権限と所有者権限のストアドプロシージャについて をご参照ください。
システムタグの代替値を適用する場合は、 ALTER TABLE ... MODIFY COLUMN ...SET TAG ステートメントを使用してタグ値を更新します。
列から分類システムタグを設定解除するには、 ALTER TABLE ... MODIFY COLUMN ... UNSET TAG ステートメントを使用します。
例¶
テーブルを分類します。
CALL SYSTEM$CLASSIFY('hr.tables.empl_info', null);
テーブルを分類し、サンプルする行数を指定します。
CALL SYSTEM$CLASSIFY('hr.tables.empl_info', {'sample_count': 1000});
テーブルを分類し、列にシステムタグを設定します。
CALL SYSTEM$CLASSIFY('hr.tables.empl_info', {'auto_tag': true});
テーブルを分類し、サンプルする行数を指定し、テーブルの各列に推奨システムタグを設定します。
CALL SYSTEM$CLASSIFY('hr.tables.empl_info', {'sample_count': 1000, 'auto_tag': true});
my_config_profile
分類プロファイルで指定された基準に基づいてテーブルを分類します。
CALL SYSTEM$CLASSIFY('hr.tables.empl_info, 'my_config_profile');