Bagikan melalui


Referensi tabel sistem klasifikasi data

Penting

Fitur ini ada di Pratinjau Umum.

Halaman ini menguraikan skema tabel hasil klasifikasi data dan menyertakan kueri sampel. Tabel menyimpan deteksi untuk kelas data sensitif di tingkat kolom di seluruh katalog yang diaktifkan di metastore Anda.

Jalur tabel: system.data_classification.results

Skema tabel hasil klasifikasi data

Tabel sistem hasil klasifikasi data menggunakan skema berikut:

Nama kolom Jenis data Description Example
latest_detected_time stempel waktu Waktu saat kolom terakhir kali dipindai. 2025-06-27T12:34
first_detected_time stempel waktu Waktu ketika deteksi kolom pertama kali direkam. 2025-06-27T12:34
catalog_id string ID dari katalog. 3f1a7d6e-9c59-...
table_id string ID dari tabel. 3f1a7d6e-9c59-...
catalog_name string Nama katalog. main_catalog
schema_name string Nama skema. public
table_name string Nama tabel sales_data
column_name string Nama kolom. customer_email
data_type string Jenis data kolom. Jenis kompleks mencakup definisi struktur penuh. struct<name:string, age:int>
class_tag string Tag untuk entitas atau kunci tag yang terdeteksi dan nilai opsional. class.us_ssn atau pii: confidential
samples array<string> Hingga lima nilai sampel yang cocok dengan deteksi. ["a@b.com", ...]
confidence string Keyakinan dalam deteksi. Baik HIGH atau LOW HIGH
frequency float Estimasi proporsi baris yang cocok dalam sampel. Antara 0 dan 1. 0.87

Contoh pertanyaan

Ganti nilai parameter dengan nilai Anda sendiri sebelum menjalankan.

Ambil semua deteksi untuk tabel

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

Mendapatkan semua deteksi dengan tingkat keyakinan tinggi

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

Mendapatkan jumlah tabel yang terpengaruh oleh klasifikasi tertentu

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;

Mendapatkan jumlah pengguna yang mengkueri tabel dengan data sensitif dalam 30 hari terakhir

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