Partilhar via


Referência da tabela do sistema de classificação de dados

Importante

Este recurso está no Public Preview.

Esta página descreve o esquema da tabela de resultados de classificação de dados e inclui consultas de exemplo. A tabela armazena detecções para classes de dados confidenciais ao nível da coluna em catálogos ativados no seu metastore.

Caminho da tabela: system.data_classification.results

Esquema da tabela de resultados de classificação de dados

A tabela do sistema de resultados de classificação de dados usa o seguinte esquema:

Nome da coluna Tipo de dados Description Example
latest_detected_time carimbo de data/hora Horário em que a coluna foi digitalizada pela última vez. 2025-06-27T12:34
first_detected_time carimbo de data/hora Momento em que a deteção da coluna foi registrada pela primeira vez. 2025-06-27T12:34
catalog_id cadeia (de caracteres) ID do catálogo. 3f1a7d6e-9c59-...
table_id cadeia (de caracteres) ID da tabela. 3f1a7d6e-9c59-...
catalog_name cadeia (de caracteres) Nome do catálogo. main_catalog
schema_name cadeia (de caracteres) Nome do esquema. public
table_name cadeia (de caracteres) Nome da tabela. sales_data
column_name cadeia (de caracteres) Nome da coluna. customer_email
data_type cadeia (de caracteres) Tipo de dados da coluna. Tipos complexos incluem definições completas de estrutura. struct<name:string, age:int>
class_tag cadeia (de caracteres) Tag para a entidade detetada ou chave de tag e valor opcional. class.us_ssn ou pii: confidential
samples array<string> Até cinco valores de amostra que corresponderam à deteção. ["a@b.com", ...]
confidence cadeia (de caracteres) Confiança na deteção. Ou HIGH ou LOW HIGH
frequency float Estimativa da proporção de linhas correspondentes na amostra. Entre 0 e 1. 0.87

Exemplos de consultas

Substitua os valores dos parâmetros pelos seus próprios valores antes de executar.

Obter todas as deteções para uma tabela

SELECT *
FROM system.data_classification.results
WHERE
  catalog_name = "c"
  AND schema_name = "s"
  AND table_name = "t";

Obtenha todas as deteções de alta confiança

SELECT *
FROM system.data_classification.results
WHERE
  catalog_name = "c"
  AND schema_name = "s"
  AND table_name = "t"
  AND confidence = "HIGH";

Obter o número de tabelas afetadas por uma classificação específica

SELECT
  class_tag,
  COUNT(DISTINCT catalog_name, schema_name, table_name) AS num_tables
FROM
  system.data_classification.results
WHERE
  class_tag IS NOT NULL
GROUP BY class_tag;

Obter o número de usuários que consultaram tabelas com dados confidenciais nos últimos 30 dias

WITH table_accesses AS (
  SELECT
    IFNULL(
      request_params.full_name_arg,
      CONCAT(request_params.catalog_name, '.', request_params.schema_name, '.', request_params.name)
    ) AS table_full_name,
    COUNT(DISTINCT user_identity.email) AS num_users
  FROM
    system.access.audit
  WHERE
    action_name IN ("createTable", "getTable", "updateTable", "deleteTable")
    AND (
      -- For performance, limit the blast radius of the audit log query to only the current catalog
      request_params.catalog_name = :catalog_name OR
      request_params.full_name_arg LIKE :catalog_name || '%'
    )
    AND event_time >= DATE_SUB(current_date(), 30)
  GROUP BY table_full_name
),
sensitive_tables AS (
  SELECT
    DISTINCT CONCAT(catalog_name, '.', schema_name, '.', table_name) AS table_full_name
  FROM
    system.data_classification.results
  WHERE class_tag IS NOT NULL
)

SELECT
  st.table_full_name,
  ta.num_users
FROM
  sensitive_tables st
  JOIN table_accesses ta
  ON st.table_full_name = ta.table_full_name