SYSTEM$CLASSIFY_SCHEMA¶
指定されたスキーマ内のテーブルをスケジュールします。オプションで、各テーブルのサンプルする行数を指定し、指定のスキーマに格納されたテーブルの各列に、推奨データ分類 システムタグ を割り当てます。
ストアドプロシージャの実行が完了したら、 データ分類を使用する に示すように、 SQL または Snowsight を使用してテーブルの分類を終了する必要があります。
構文¶
SYSTEM$CLASSIFY_SCHEMA( '<object_name>' , <object> )
引数¶
schema_name
分類されるテーブルを含んでいるスキーマの名前。データベースとスキーマが現在のセッションで使用されていない場合は、名前を完全修飾する必要があります。
名前は、データベースに保存されているとおりに正確に指定する必要があります。名前に特殊文字、大文字小文字の区別、または空白スペースが含まれている場合は、名前を最初に二重引用符で囲み、次に一重引用符で囲む必要があります。
object
分類プロセスがどのように動作するかを決定するための 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 オブジェクトを返します。例:
{
"failed": [
{
"message": "Insufficient privileges.",
"table_name": "t4"
}
],
"succeeded": [
{
"table_name": "t1"
},
{
"table_name": "t2"
},
{
"table_name": "t3"
}
]
}
条件:
failed
テーブルの分類がスケジュールされなかった理由を示すメッセージを指定します。
succeeded
データ分類がスケジュールされる各テーブルを指定します。
使用上の注意¶
指定されたスキーマ名には、最大1000個のテーブルオブジェクトを含めることができます。スキーマに1000個を超えるテーブルオブジェクトが含まれている場合、Snowflakeはエラーメッセージを返します。
Snowflakeのストアドプロシージャは呼び出し元の権限を利用します。詳細については、 呼び出し元権限と所有者権限のストアドプロシージャについて をご参照ください。
システムタグの代替値を適用する場合は、 ALTER TABLE ... MODIFY COLUMN ...SET TAG ステートメントを使用してタグ値を更新します。
列から分類システムタグを設定解除するには、 ALTER TABLE ... MODIFY COLUMN ... UNSET TAG ステートメントを使用します。
注意
このストアドプロシージャを呼び出すと、スキーマ内の各テーブルの分類処理が並行して実行され、ウェアハウスのリソースを消費します。このストアドプロシージャを短時間に何度も呼び出して、スキーマ内のテーブルを同時に分類すると、それらの処理も並行して実行されます。多くの並列分類処理がウェアハウスの容量を超えた場合、それが一部のテーブルで分類処理が失敗する原因になる可能性があります。その結果、スキーマに分類されたテーブルと分類されていないテーブルが存在することになります。
SYSTEM$CLASSIFY_SCHEMA を呼び出す前に、各テーブルの列数、スキーマ内のテーブル数、分類するスキーマの数、およびセッションで使用するウェアハウスのサイズを評価してください。ウェアハウスの推奨サイズについては、 コンピューティングコスト をご参照ください。
例¶
スキーマ内のテーブルの分類をステージします。
CALL SYSTEM$CLASSIFY_SCHEMA('hr.tables', null);
スキーマ内のテーブルの分類をステージし、サンプルする行数を指定します。
CALL SYSTEM$CLASSIFY_SCHEMA('hr.tables.empl_info', {'sample_count': 1000});
スキーマ内のテーブルの分類をステージし、列にシステムタグを設定します。
CALL SYSTEM$CLASSIFY_SCHEMA('hr.tables.empl_info', {'auto_tag': true});
スキーマ内のテーブルの分類をステージし、サンプルする行数を指定し、テーブルの各列に推奨システムタグを設定します。
CALL SYSTEM$CLASSIFY_SCHEMA('hr.tables.empl_info', {'sample_count': 1000, 'auto_tag': true});