Referensi tabel sistem MLflow

Penting

Tabel sistem MLflow berada di Pratinjau Umum.

Tabel mlflow sistem menangkap metadata eksperimen yang dikelola dalam layanan pelacakan MLflow. Tabel ini memungkinkan pengguna istimewa untuk memanfaatkan alat Databricks lakehouse pada data MLflow mereka di semua ruang kerja di wilayah tersebut. Anda dapat menggunakan tabel untuk membangun dasbor AI/BI kustom, menyiapkan pemberitahuan SQL, atau melakukan kueri analitik skala besar.

mlflow Melalui tabel sistem, pengguna dapat menjawab pertanyaan seperti:

  • Eksperimen mana yang memiliki keandalan terendah?
  • Apa pemanfaatan GPU rata-rata di berbagai eksperimen?

Nota

Tabel mlflow sistem mulai merekam data MLflow dari semua wilayah pada 2 September 2025. Data dari sebelum tanggal tersebut mungkin tidak tersedia.

Tabel yang tersedia

mlflow Skema menyertakan tabel berikut:

  • system.mlflow.experiments_latest: Mencatat nama eksperimen dan peristiwa penghapusan sementara. Data ini mirip dengan halaman eksperimen di MLflow UI.
  • system.mlflow.runs_latest: Mencatat informasi siklus hidup eksekusi, param dan tag yang terkait dengan setiap eksekusi, dan statistik agregat nilai min, maks, dan terbaru dari semua metrik. Data ini mirip dengan halaman detail pencarian atau eksekusi yang dijalankan.
  • system.mlflow.run_metrics_history: Mencatat nama, nilai, tanda waktu, dan langkah dari semua metrik yang tercatat saat dijalankan, yang dapat digunakan untuk memplot deret waktu terperinci dari eksekusi. Data ini mirip dengan tab metrik pada halaman detail eksekusi.

Berikut ini adalah contoh memplot informasi runtime menggunakan dasbor.

menjalankan dasbor detail

Skema tabel

Di bawah ini adalah skema tabel dengan deskripsi dan contoh data.

Diagram ER

system.mlflow.experiments_latest

Nama kolom Jenis data Description Example Bisa bernilai null
account_id string ID akun yang berisi eksperimen MLflow "bd59efba-4444-4444-443f-44444449203" Tidak.
update_time stempel waktu Waktu sistem ketika eksperimen terakhir diperbarui 2024-06-27T00:58:57.000+00:00 Tidak.
delete_time stempel waktu Waktu sistem ketika eksperimen MLflow dihapus sementara oleh pengguna 2024-07-02T12:42:59.000+00:00 Yes
experiment_id string ID eksperimen MLflow "2667956459304720" Tidak.
workspace_id string ID ruang kerja yang berisi eksperimen MLflow "6051921418418893" Tidak.
name string Nama eksperimen yang disediakan pengguna "/Users/first.last@databricks.com/myexperiment" Tidak.
create_time stempel waktu Waktu sistem ketika eksperimen dibuat 2024-06-27T00:58:57.000+00:00 Tidak.

system.mlflow.runs_latest

Nama kolom Jenis data Description Example Bisa bernilai null
account_id string ID akun yang memuat run MLflow "bd59efba-4444-4444-443f-44444449203" Tidak.
update_time stempel waktu Waktu sistem ketika pembaruan terakhir dijalankan 2024-06-27T00:58:57.000+00:00 Tidak.
delete_time stempel waktu Waktu sistem ketika eksekusi MLflow dihapus sementara oleh pengguna 2024-07-02T12:42:59.000+00:00 Yes
workspace_id string ID ruang kerja yang berisi run MLflow "6051921418418893" Tidak.
run_id string ID eksekusi MLflow "7716d750d279487c95f64a75bff2ad56" Tidak.
experiment_id string ID eksperimen MLflow yang berisi eksekusi MLflow "2667956459304720" Tidak.
created_by string Nama prinsipal, pengguna, atau grup Databricks yang membuat eksekusi MLflow "<user>@<domain-name>" Yes
start_time stempel waktu Waktu yang ditentukan pengguna ketika menjalankan MLflow dimulai 2024-06-27T00:58:57.000+00:00 Tidak.
end_time stempel waktu Waktu yang ditentukan pengguna ketika menjalankan MLflow berakhir 2024-07-02T12:42:59.000+00:00 Yes
run_name string Nama eksekusi MLflow "wistful-deer-932", "my-xgboost-training-run" Tidak.
status string Status eksekusi run MLflow "FINISHED" Tidak.
params peta<string, string> Parameter nilai kunci dari eksekusi MLflow {"n_layers": "5", "batch_size": "64", "optimizer": "Adam"} Tidak.
tags peta<string, string> Tag nilai kunci yang diatur pada eksekusi MLflow {"ready_for_review": "true"} Tidak.
aggregated_metrics daftar<string struct<, double, double, double>> Tampilan agregat yang meringkas metrik di run_metrics_history [{"metric_name": "training_accuracy", "latest_value": 0.97, "min_value": 0.8, "max_value": 1.0}, ...] Tidak.
aggregated_metrics.metric_name string Nama metrik yang ditentukan pengguna "training_accuracy" Tidak.
aggregated_metrics.latest_value dua kali lipat Nilai terbaru dari metric_name dalam deret waktu untuk kombinasi (run, metric_name) ini dalam run_metrics_history 0.97 Tidak.
aggregated_metrics.max_value dua kali lipat Nilai maksimum dari metric_name dalam seri waktu untuk kombinasi (run, metric_name) ini dalam run_metrics_history. Jika ada nilai NaN yang dicatat untuk metrik, nilainya adalah NaN 1.0 Tidak.
aggregated_metrics.min_value dua kali lipat Nilai minimum metric_name dalam rangkaian waktu kombinasi ini (jalankan, metric_name) dalam run_metrics_history. Jika ada nilai NaN yang dicatat untuk metrik, nilainya adalah NaN 0.8 Tidak.

system.mlflow.run_metrics_history

Nama kolom Jenis data Description Example Bisa bernilai null
account_id string ID akun yang berisi run MLflow tempat metrik dicatatkan. "bd59efba-4444-4444-443f-44444449203" Tidak.
insert_time stempel waktu Waktu sistem ketika metrik dimasukkan 2024-06-27T00:58:57.000+00:00 Tidak.
record_id string Pengidentifikasi unik metrik untuk membedakan antara nilai yang identik "Ae1mDT5gFMSUwb+UUTuXMQ==" Tidak.
workspace_id string ID ruang kerja yang memiliki operasi MLflow di mana metrik dicatat "6051921418418893" Tidak.
experiment_id string ID eksperimen MLflow yang berisi eksekusi MLflow di mana metrik tersebut dicatat "2667956459304720" Tidak.
run_id string ID dari jalankan MLflow tempat metrik dicatat "7716d750d279487c95f64a75bff2ad56" Tidak.
metric_name string Nama metrik "training_accuracy" Tidak.
metric_time stempel waktu Waktu yang ditentukan pengguna saat metrik dihitung 2024-06-27T00:55:54.1231+00:00 Tidak.
metric_step bigint Langkah (misalnya, epoch) dalam pelatihan model atau pengembangan agen di mana metrik dicatat 10 Tidak.
metric_value dua kali lipat Nilai metrik 0.97 Tidak.

Berbagi akses dengan pengguna

Secara default, hanya admin akun yang memiliki akses ke skema sistem. Untuk memberikan akses kepada pengguna tambahan ke tabel, admin akun harus memberi mereka izin USE dan SELECT pada skema system.mlflow.. Lihat Referensi hak istimewa Katalog Unity.

Setiap pengguna yang memiliki akses ke tabel ini dapat melihat metadata di semua eksperimen MLflow untuk semua ruang kerja di akun. Untuk mengonfigurasi akses tabel untuk grup tertentu bukan pengguna individual, lihat Praktik terbaik Katalog Unity.

Jika Anda memerlukan kontrol yang lebih halus daripada memberi semua pengguna akses ke tabel, Anda dapat menggunakan tampilan dinamis dengan kriteria kustom untuk memberikan akses tertentu kepada grup. Misalnya, Anda dapat membuat tampilan yang hanya menampilkan rekaman dari sekumpulan ID eksperimen tertentu. Setelah mengonfigurasi tampilan kustom, berikan nama tampilan kepada pengguna Anda sehingga mereka dapat mengkueri tampilan dinamis daripada tabel sistem secara langsung.

Nota

Anda tidak dapat langsung menyinkronkan izin eksperimen MLflow dengan izin Katalog Unity.

Contoh kasus penggunaan metadata MLflow

Bagian berikut memberikan contoh bagaimana Anda dapat menggunakan tabel sistem MLflow untuk menjawab pertanyaan tentang eksperimen dan eksekusi MLflow Anda.

Mengonfigurasi pemberitahuan SQL untuk keandalan eksperimen rendah

Menggunakan peringatan Databricks SQL (Pratinjau Umum), Anda dapat menjadwalkan kueri terjadwal yang berulang dan akan diberi tahu jika batasan tertentu tidak lagi terpenuhi.

Contoh ini membuat pemberitahuan yang memeriksa eksperimen yang paling sering dijalankan dalam ruang kerja Anda untuk menentukan apakah mereka mengalami keandalan rendah dan mungkin memerlukan perhatian khusus. Kueri menggunakan runs_latest tabel untuk menghitung eksekusi per eksperimen yang ditandai sebagai selesai, dibagi dengan jumlah total eksekusi.

Nota

Fitur Pemberitahuan SQL saat ini berada di Pratinjau Umum, dan Anda juga dapat menggunakan pemberitahuan warisan .

  1. Klik Ikon Pemberitahuan di bar samping dan klik Buat Pemberitahuan.

  2. Salin dan tempel kueri berikut ini di editor kueri.

     SELECT
       experiment_id,
       AVG(CASE WHEN status = 'FINISHED' THEN 1.0 ELSE 0.0 END) AS success_ratio,
       COUNT(status) AS run_count
     FROM system.mlflow.runs_latest
     WHERE status IS NOT NULL
     GROUP BY experiment_id
     ORDER BY run_count DESC
     LIMIT 20;
    
  3. Di bidang Kondisi , atur kondisi ke MIN success_ratio < 0.9. Ini akan memicu pemberitahuan jika salah satu dari 20 eksperimen teratas (berdasarkan jumlah eksekusi) memiliki rasio keberhasilan kurang dari 90%.

Selain itu, Anda dapat menguji kondisi, mengatur jadwal, dan mengonfigurasi pemberitahuan. Untuk informasi selengkapnya tentang mengonfigurasi pemberitahuan, lihat menyiapkan pemberitahuan SQL. Di bawah ini adalah contoh konfigurasi menggunakan kueri.

Konfigurasi pemberitahuan SQL

Contoh pertanyaan

Anda dapat menggunakan kueri sampel berikut untuk mendapatkan informasi tentang aktivitas MLflow di akun Anda menggunakan Databricks SQL. Anda juga dapat memanfaatkan alat seperti notebook Python dengan Spark.

Dapatkan informasi eksekusi dari runs_latest

SELECT
  run_name,
  date(start_time) AS start_date,
  status,
  TIMESTAMPDIFF(MINUTE, start_time, end_time) AS run_length_minutes
FROM system.mlflow.runs_latest
WHERE
  experiment_id = :experiment_id
  AND run_id = :run_id
LIMIT 1

Ini mengembalikan informasi tentang pemrosesan yang diberikan:

Informasi pemrosesan hasil kueri

Dapatkan informasi eksperimen dan pelaksanaan dari experiments_latest dan runs_latest

SELECT
  runs.run_name,
  experiments.name,
  date(runs.start_time) AS start_date,
  runs.status,
  TIMESTAMPDIFF(MINUTE, runs.start_time, runs.end_time) AS run_length_minutes
FROM system.mlflow.runs_latest runs
  JOIN system.mlflow.experiments_latest experiments ON runs.experiment_id = experiments.experiment_id
  WHERE
    runs.experiment_id = :experiment_id
    AND runs.run_id = :run_id
LIMIT 1

Dapatkan statistik ringkasan untuk eksekusi tertentu run_metrics_history

SELECT
  metric_name,
  count(metric_time) AS num_data_points,
  ROUND(avg(metric_value), 1) AS avg,
  ROUND(max(metric_value), 1) AS max,
  ROUND(min(metric_value), 1) AS min,
  ROUND(PERCENTILE_CONT(0.25) WITHIN GROUP (ORDER BY metric_value), 1) AS pct_25,
  ROUND(PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY metric_value), 1) AS median,
  ROUND(PERCENTILE_CONT(0.75) WITHIN GROUP (ORDER BY metric_value), 1) AS pct_75
FROM
  system.mlflow.run_metrics_history
WHERE
  run_id = :run_id
GROUP BY
  metric_name, run_id
LIMIT 100

Ini mengembalikan ringkasan metrik untuk yang diberikan run_id:

Metrik ringkasan hasil kueri

Dasbor untuk eksperimen dan pengujian

Anda dapat membuat dasbor berdasarkan data tabel sistem MLflow untuk menganalisis eksperimen dan run MLflow Anda dari seluruh ruang kerja.

Untuk detail selengkapnya, lihat Membangun dasbor dengan metadata MLflow dalam tabel sistem