- Categorias:
EXTRACT_SEMANTIC_CATEGORIES¶
Retorna um conjunto de categorias (semânticas e de privacidade) para cada coluna compatível na tabela ou exibição especificada. Para retornar as categorias para uma coluna, a coluna deve usar um tipo de dados que ofereceça suporte à classificação e não contenha todos os valores NULL.
As categorias são derivadas dos metadados e dados contidos nas colunas, assim como os metadados sobre as colunas e dados. As categorias de privacidade dependem das categorias semânticas geradas, se houver.
Sintaxe¶
EXTRACT_SEMANTIC_CATEGORIES( '<object_name>' [ , <max_rows_to_scan> ] )
Argumentos¶
Obrigatório:
object_name
O nome da tabela, tabela externa, exibição ou exibição materializada contendo as colunas a serem classificadas. Se um banco de dados e esquema não estiver em uso na sessão atual, o nome deve ser totalmente qualificado.
O nome deve ser especificado exatamente como está armazenado no banco de dados. Se o nome contiver caracteres especiais, letras maiúsculas ou espaços em branco, o nome deve ser incluído primeiro em aspas duplas e depois em aspas simples.
Opcional:
max_rows_to_scan
O tamanho da amostra de linhas a serem utilizadas para determinar as categorias de classificação na tabela/exibição especificada.
Valores válidos:
1
a10000
Padrão:
10000
Retornos¶
A função retorna um único objeto JSON contendo um nome de tag/par de valores para cada coluna para a qual foram geradas categorias de classificação. Se uma coluna for um tipo de dados não suportado ou tiver todos os valores NULL, a coluna não será incluída na saída.
O objeto JSON tem a seguinte estrutura:
{
"<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>"
}
}
Onde:
extra_info
Objeto contendo os seguintes pares chave-valor:
alternates
é uma matriz de outras categorias semânticas possíveis seprobability
for inferior a0.80
. Para ser listada como alternativa, a categoria semântica deve ter uma probabilidade de0.15
(ou maior), mas menor do que0.80
.probability
é um número que indica a probabilidade de que o algoritmo de classificação tenha derivado o valor correto parasemantic_category
. A probabilidade máxima é1.00
e o limite mínimo é0.15
(ou seja, se todas as categorias semânticas tiverem uma probabilidade inferior a0.15
, nenhum valor será retornado paraprobability
ousemantic_category
).
privacy_category
Tag de categoria de privacidade para a coluna, com
IDENTIFIER
,QUASI_IDENTIFIER
ouSENSITIVE
como valor da tag, com base na categoria semântica para a coluna.semantic_category
Tag de categoria semântica para a coluna, com o valor do tag derivado pelo algoritmo de classificação. Para uma lista dos valores possíveis, consulte Tags de sistema e categorias.
Por exemplo, se uma tabela tiver colunas chamadas fname
, lname
, age
e email_address
, a função pode retornar a saída semelhante a:
{
"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"
}
}
Notas de uso¶
A função requer um warehouse ativo e em funcionamento na sessão em que a função é executada.
O tamanho do warehouse pode impactar o tempo necessário para classificar os dados na tabela/exibição, especialmente para tabelas com um grande número de colunas contendo dados para classificar. Como regra geral, um warehouse maior resulta em tempo reduzido.
Para cada coluna que a classificação identifica como tendo múltiplas categorias semânticas possíveis:
Para todas as categorias com probabilidade de
0.80
(ou maior), a categoria com maior probabilidade é listada como o valor parasemantic_category
.Todas as categorias com uma probabilidade de
0.15
(ou superior) são listadas comoalternates
.Se nenhuma categoria tiver uma probabilidade de
0.80
(ou superior), nenhum valor será listado parasemantic_category
eprobability
. Da mesma forma, se nenhuma categoria tiver uma probabilidade de0.15
(ou superior), nenhum valor será listado paraalternates
.
Exemplos¶
Extrair as categorias semântica e de privacidade da tabela my_db.my_schema.hr_data
usando o padrão (10000
) para o número de linhas a serem digitalizadas:
USE ROLE data_engineer; USE WAREHOUSE classification_wh; SELECT EXTRACT_SEMANTIC_CATEGORIES( 'my_db.my_schema.hr_data' );
O mesmo que o exemplo anterior, mas limitado apenas a 5.000 linhas digitalizadas na tabela:
USE ROLE data_engineer; SELECT EXTRACT_SEMANTIC_CATEGORIES( 'my_db.my_schema.hr_data', 5000 );
O mesmo que o primeiro exemplo, mas armazena os resultados em uma tabela:
USE ROLE data_engineer; CREATE OR REPLACE TABLE classification_results(v VARIANT) AS SELECT EXTRACT_SEMANTIC_CATEGORIES( 'my_db.my_schema.hr_data');Quando os resultados são armazenados em uma tabela, você pode revisá-los antes de usar ASSOCIATE_SEMANTIC_CATEGORY_TAGS para aplicá-los.