Referencia de la tabla del sistema de clasificación de datos

En esta página se describe el esquema de la tabla de resultados de clasificación de datos e incluye consultas de ejemplo. La tabla almacena detecciones para las clases de datos confidenciales a nivel de columna en los catálogos habilitados en el metastore.

Ruta de acceso de tabla: system.data_classification.results

Esquema de tabla de resultados de clasificación de datos

La tabla del sistema de resultados de clasificación de datos usa el esquema siguiente:

Nombre de la columna Tipo de dato Description Example
latest_detected_time marca de tiempo Momento en el que se escaneó la columna por última vez. 2025-06-27T12:34
first_detected_time marca de tiempo Hora en que se registró por primera vez la detección de columnas. 2025-06-27T12:34
catalog_id cuerda / cadena Id. del catálogo. 3f1a7d6e-9c59-...
table_id cuerda / cadena ID de la tabla. 3f1a7d6e-9c59-...
catalog_name cuerda / cadena Nombre del catálogo. main_catalog
schema_name cuerda / cadena Nombre del esquema. public
table_name cuerda / cadena Nombre de la tabla. sales_data
column_name cuerda / cadena Nombre de columna. customer_email
data_type cuerda / cadena Tipo de datos de la columna. Los tipos complejos incluyen definiciones de estructura completas. struct<name:string, age:int>
class_tag cuerda / cadena Etiqueta para la entidad detectada o la clave de etiqueta y el valor opcional. class.us_ssn o pii: confidential
samples array<string> Hasta cinco valores de ejemplo que coinciden con la detección. ["[email protected]", ...]
confidence cuerda / cadena Confianza de la detección. Ya sea HIGH o LOW HIGH
frequency flotante Estimación de la proporción de filas coincidentes en el ejemplo. Entre 0 y 1. 0.87

Consultas de ejemplo

Reemplace los valores de parámetro por los suyos propios antes de ejecutarse.

Obtén todas las detecciones de una tabla

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

Obtener todas las detecciones con alta confianza

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

Obtener el número de tablas afectadas por una clasificación 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;

Obtener el número de usuarios que consultaron tablas con datos confidenciales en los últimos 30 días

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