- カテゴリ:
EXTRACT_SEMANTIC_CATEGORIES¶
指定されたテーブルまたはビューでサポートされている各列のカテゴリのセット(セマンティックおよびプライバシー)を返します。列のカテゴリを返すには、列で分類をサポートする データ型 を使用し、列にすべての NULL 値が含まれていない必要があります。
カテゴリは、列に含まれるメタデータとデータ、および列とデータに関するメタデータから派生します。プライバシーカテゴリは、生成されたセマンティックカテゴリ(存在する場合)に依存します。
構文¶
EXTRACT_SEMANTIC_CATEGORIES( '<object_name>' [ , <max_rows_to_scan> ] )
引数¶
必須:
object_name
分類される列を含むテーブル、外部テーブル、ビュー、またはマテリアライズドビューの名前。データベースとスキーマが現在のセッションで使用されていない場合は、名前を完全修飾する必要があります。
名前は、データベースに保存されているとおりに正確に指定する必要があります。名前に特殊文字、大文字小文字の区別、または空白スペースが含まれている場合は、名前を最初に二重引用符で囲み、次に一重引用符で囲む必要があります。
オプション:
max_rows_to_scan
指定されたテーブル/ビューの分類カテゴリを決定するために使用する行のサンプルサイズ。
有効値:
1
から10000
デフォルト:
10000
戻り値¶
この関数は、分類カテゴリが生成された列ごとに、タグの名前と値のペアを含む単一の JSON オブジェクトを返します。列がサポートされていないデータ型であるか、すべての NULL 値が含まれている場合、その列は出力に含まれません。
JSON オブジェクトの構造は次のとおりです。
{
"<col1_name>": {
"extra_info" : {
"alternates" : [<semantic_categories>],
"probability" : "<number>"
},
"privacy_category" : "<value>",
"semantic_category" : "<value>"
},
...
...
"<colN_name>": {
"extra_info" : {
"alternates" : [<semantic_categories>],
"probability" : "<number>"
},
"privacy_category" : "<value>",
"semantic_category" : "<value>"
}
}
条件:
extra_info
次のキーと値のペアを含むオブジェクト:
alternates
は、probability
が0.80
より小さい場合、他の可能なセマンティックカテゴリの配列です。代替としてリストされるためには、セマンティックカテゴリの確率は0.15
以上、0.80
未満である必要があります。probability
は、分類アルゴリズムがsemantic_category
の正しい値を導出した可能性を示す数値です。最大確率は1.00
で、最小しきい値は0.15
です(つまり、すべてのセマンティックカテゴリの確率が0.15
未満の場合、probability
やsemantic_category
の値は返されません)。
privacy_category
列のセマンティックカテゴリに基づく、タグ値として
IDENTIFIER
、QUASI_IDENTIFIER
、またはSENSITIVE
を使用した列のプライバシーカテゴリタグ。semantic_category
分類アルゴリズムによって導出されたタグ値を持つ、列のセマンティックカテゴリタグ。可能な値のリストについては、 システムタグおよびカテゴリ をご参照ください。
たとえば、テーブルに fname
、 lname
、 age
、および email_address
という名前の列がある場合、関数は次のような出力を返す可能性があります。
{
"AGE": {
"extra_info" : {
"alternates" : [],
"probability" : "1.00"
},
"privacy_category" : "QUASI_IDENTIFIER",
"semantic_category" : "AGE"
},
"EMAIL_ADDRESS": {
"extra_info": {
"alternates": [],
"probability": "1.00"
},
"privacy_category": "IDENTIFIER",
"semantic_category": "EMAIL"
},
"FNAME": {
"extra_info" : {
"alternates" : [],
"probability" : "1.00"
},
"privacy_category" : "IDENTIFIER",
"semantic_category" : "NAME"
},
"LNAME": {
"extra_info" : {
"alternates" : [],
"probability" : "1.00"
},
"privacy_category" : "IDENTIFIER",
"semantic_category" : "NAME"
}
}
使用上の注意¶
この関数には、関数が実行されるセッションでアクティブな稼動中のウェアハウスが必要です。
ウェアハウスのサイズは、テーブル/ビューでデータを分類するために必要な時間に影響を与える可能性があります。特に、分類するデータを含む列が多数あるテーブルの場合はそうです。原則として、ウェアハウスが大きいほど時間が短縮されます。
複数の可能なセマンティックカテゴリを持っていると分類が識別する列ごとに、次のようになります。
確率が
0.80
(またはそれ以上)のすべてのカテゴリについて、確率が最も高いカテゴリがsemantic_category
の値としてリストされます。0.15
(またはそれ以上)の確率を持つすべてのカテゴリは、alternates
としてリストされます。0.80
(またはそれ以上)の確率を持つカテゴリがない場合、semantic_category
とprobability
の値は表示されません。同様に、0.15
(またはそれ以上)の確率を持つカテゴリがない場合、alternates
の値は表示されません。
例¶
スキャンする行数のデフォルト(10000
)を使用して、 my_db.my_schema.hr_data
テーブルのセマンティックカテゴリとプライバシーカテゴリを抽出します。
USE ROLE data_engineer; USE WAREHOUSE classification_wh; SELECT EXTRACT_SEMANTIC_CATEGORIES( 'my_db.my_schema.hr_data' );
前の例と同じですが、テーブル内の5000行のみをスキャンするように制限されています。
USE ROLE data_engineer; SELECT EXTRACT_SEMANTIC_CATEGORIES( 'my_db.my_schema.hr_data', 5000 );
最初の例と同じですが、結果をテーブルに保存します。
USE ROLE data_engineer; CREATE OR REPLACE TABLE classification_results(v VARIANT) AS SELECT EXTRACT_SEMANTIC_CATEGORIES( 'my_db.my_schema.hr_data');結果がテーブルに保存されたら、 ASSOCIATE_SEMANTIC_CATEGORY_TAGS を使用して適用する前に結果を修正できます。