Aller au contenu principal

Référence de la table système de classification des données

Cette page décrit le schéma de table des résultats de la classification des données et comprend des exemples de queries. La table stocke les détections pour les classes de données sensibles au niveau des colonnes dans les catalogues activés de votre métastore.

Chemin de la table : system.data_classification.results

important

N'appliquez pas de filtre de lignes ou de masque de colonne au niveau de la table (configuré directement sur la table avec ALTER TABLE ... SET ROW FILTER ou ALTER TABLE ... ALTER COLUMN ... SET MASK) à la table system.data_classification.results. La classification des données gère les écritures dans cette table, et un filtre de lignes ou un masque de colonne au niveau de la table interférera avec le système et fera échouer l'analyse.

Cette limitation s'applique uniquement aux filtres de ligne au niveau de la table et aux masques de colonne. Les politiques ABAC n'affectent pas les analyses et ne sont pas bloquées.

Schéma de table des résultats de classification des données

La table système des résultats de classification des données utilise le schéma suivant :

Nom de colonne

Type de données

Description

Exemple

latest_detected_time

Horodatage

Heure de référence de la dernière analyse de la colonne.

2025-06-27T12:34

first_detected_time

Horodatage

Heure à laquelle la détection de la colonne a été enregistrée pour la première fois.

2025-06-27T12:34

catalog_id

chaîne

ID du catalogue.

3f1a7d6e-9c59-...

table_id

chaîne

ID de la table.

3f1a7d6e-9c59-...

catalog_name

chaîne

Nom du catalogue.

main_catalog

schema_name

chaîne

Nom du schéma.

public

table_name

chaîne

Nom de la table.

sales_data

column_name

chaîne

Nom de la colonne.

customer_email

data_type

chaîne

Type de données de la colonne. Les types complexes incluent des définitions complètes de struct.

struct<name:string, age:int>

class_tag

chaîne

Tag pour l'entité détectée ou clé de tag et valeur facultative.

class.us_ssn OU pii: confidential

samples

array<string>

Jusqu’à cinq exemples de valeurs qui correspondaient à la détection.

["a@b.com", ...]

confidence

chaîne

Confiance de la détection. Soit HIGH soit LOW

HIGH

frequency

Présentation libre

Estimation de la proportion de lignes correspondantes dans l'échantillon. Entre 0 et 1.

0.87

Nom de colonne

Type de données

Description

Exemple

latest_detected_time

Horodatage

Heure de référence de la dernière analyse de la colonne.

2025-06-27T12:34

first_detected_time

Horodatage

Heure à laquelle la détection de la colonne a été enregistrée pour la première fois.

2025-06-27T12:34

catalog_id

chaîne

ID du catalogue.

3f1a7d6e-9c59-...

table_id

chaîne

ID de la table.

3f1a7d6e-9c59-...

catalog_name

chaîne

Nom du catalogue.

main_catalog

schema_name

chaîne

Nom du schéma.

public

table_name

chaîne

Nom de la table.

sales_data

column_name

chaîne

Nom de la colonne.

customer_email

data_type

chaîne

Type de données de la colonne. Les types complexes incluent des définitions complètes de struct.

struct<name:string, age:int>

class_tag

chaîne

Tag pour l'entité détectée ou clé de tag et valeur facultative.

class.us_ssn OU pii: confidential

samples

array<string>

Jusqu’à cinq exemples de valeurs qui correspondaient à la détection.

["a@b.com", ...]

confidence

chaîne

Confiance de la détection. Soit HIGH soit LOW

HIGH

frequency

Présentation libre

Estimation de la proportion de lignes correspondantes dans l'échantillon. Entre 0 et 1.

0.87

Exemples de requêtes

Remplacez les valeurs de parameter par les vôtres avant l'exécution.

Obtenir toutes les détections pour une table

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

Obtenir toutes les détections à haute confiance

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

Obtenez le nombre de tables impactées par une classification spécifique

SQL
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;

Obtenez le nombre d'utilisateurs qui ont interrogé des tables avec des données sensibles au cours des 30 derniers jours

SQL
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