Comparteix via


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

Importante

Esta característica está en versión preliminar pública.

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. ["a@b.com", ...]
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