SYSTEM$CLASSIFY¶
サンプリングする行数を指定するオプションを使用して指定されたオブジェクトを分類し、指定されたオブジェクトの各列に推奨される 分類タグ を割り当てます。
構文¶
SYSTEM$CLASSIFY( '<object_name>' ,
{ '<classification_profile>' | <options> } )
引数¶
'object_name'分類される列を含むテーブル、外部テーブル、ビュー、またはマテリアライズドビューの名前。データベースとスキーマが現在のセッションで使用されていない場合は、名前を完全修飾する必要があります。
名前は、データベースに保存されているとおりに正確に指定する必要があります。名前に特殊文字、大文字小文字の区別、または空白スペースが含まれている場合は、名前を最初に二重引用符で囲み、次に一重引用符で囲む必要があります。
'classification_profile'プロファイルで指定された基準に基づいて分類するために、 分類プロファイル を指定します。
options分類プロセスがどのように機能するかを決定する JSON OBJECT を指定します。次のいずれかを使用します。
NULLSnowflakeは、指定されたオブジェクトの行数に基づいてデフォルトの構成を使用します。指定されたオブジェクトにあるどの列にもシステムタグは設定されません。
{}空のオブジェクト。これは機能的には
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分類された各列の詳細を提供します。
object_path_results列に機密フィールドが配置された半構造化データが含まれている場合、
object_path_resultsキーは、ネイティブまたはカスタムのセマンティックカテゴリに分類されたフィールドをリストします。詳細については、 JSON 列の結果 をご参照ください。alternates各タグに関する情報と、推奨タグ以外に考慮すべき値を提供します。
recommendationタグと値に関する情報を提供します。
これらの値は、代替と推薦の両方に表示することができます。
classifier_name分類された列にタグを付けるために使用されたカスタム分類インスタンスの完全修飾名。
このフィールドは、列に設定するタグのソースとしてカスタム分類インスタンスを使用する場合にのみ表示されます。
confidence
HIGH、MEDIUMまたはLOWの値のいずれかを指定します。この値は、列のサンプリングプロセスと、列のデータとSnowflakeがデータを分類する方法の整合性に基づいて、Snowflakeが持つ相対的な信頼性を示します。coverage特定のカテゴリのルールに一致する、サンプリングされたセル値のパーセントを提供します。
details地理固有の分類に関連するフィールドと値を提供します。
semantic_categoryフィールドにはロケールの セマンティックサブカテゴリ が含まれます。privacy_categoryプライバシーカテゴリを提供します。
可能な値は、
IDENTIFIER、QUASI-IDENTIFIER、およびSENSITIVEです。semantic_categoryセマンティックカテゴリを提供します。ネイティブセマンティックカテゴリのリストについては、 機密データ分類のネイティブセマンティックカテゴリ をご覧ください。
値が
MULTIPLEの場合に、半構造化データで機密データが見つかりました。結果オブジェクトのobject_path_resultsフィールドを検査して、分類中に見つかったネイティブおよびカスタムのセマンティックカテゴリの詳細な内訳を確認します。詳細については、 JSON 列の結果 をご参照ください。tags分類処理の結果、列に適用されたタグに関する情報を提供します。
valid_value_ratioサンプルサイズにおける有効な値の比率を提示します。
構造化データについて、無効な値には NULL、空の文字列、256文字を超える文字列などがあります。
半構造化データについて、無効な値には NULL と空の文字列などがあります。
使用上の注意¶
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');