Ölçüm tablolarını izleme
Bu sayfada Databricks Lakehouse monitoring tarafından oluşturulan ölçüm tabloları açıklanmaktadır. İzleyici tarafından oluşturulan pano hakkında bilgi için bkz . Oluşturulan SQL panosunu kullanma.
Bir izleyici Databricks tablosunda çalıştığında iki ölçüm tablosu oluşturur veya güncelleştirir: profil ölçümleri tablosu ve kayma ölçümleri tablosu.
- Profil ölçümleri tablosu, her sütun için ve zaman penceresi, dilim ve gruplandırma sütunlarının her birleşimi için özet istatistikleri içerir. Analiz için
InferenceLog
analiz tablosu model doğruluğu ölçümlerini de içerir. - Kayma ölçümleri tablosu, bir ölçümün dağılımındaki değişiklikleri izleyen istatistikler içerir. Kayma tabloları, belirli değerler yerine verilerdeki değişiklikleri görselleştirmek veya uyarı vermek için kullanılabilir. Aşağıdaki kayma türleri hesaplanır:
- Ardışık kayma, bir pencereyi önceki zaman penceresiyle karşılaştırır. Ardışık kayma yalnızca belirtilen ayrıntı düzeyine göre toplamadan sonra ardışık bir zaman penceresi varsa hesaplanır.
- Temel kayma, bir pencereyi temel tablo tarafından belirlenen temel dağılımla karşılaştırır. Temel kayma yalnızca bir temel tablo sağlandığında hesaplanır.
Ölçüm tablolarının bulunduğu yer
İzleyici ölçüm tabloları ve {output_schema}.{table_name}_drift_metrics
konumuna {output_schema}.{table_name}_profile_metrics
kaydedilir. Burada:
{output_schema}
tarafındanoutput_schema_name
belirtilen katalog ve şemadır.{table_name}
, izlenen tablonun adıdır.
İzleme istatistikleri nasıl hesaplanır?
Ölçüm tablolarındaki her istatistik ve ölçüm, belirtilen bir zaman aralığı ("pencere" olarak adlandırılır) için hesaplanır. Analiz için Snapshot
zaman penceresi, ölçümün yenilendiği zamana karşılık gelen tek bir zaman noktasıdır. ve InferenceLog
çözümlemesi içinTimeSeries
, zaman penceresi içinde create_monitor
belirtilen ayrıntı düzeylerini ve bağımsız değişkende timestamp_col
profile_type
belirtilen değerleri temel alır.
Ölçümler her zaman tablonun tamamı için hesaplanır. Ayrıca, dilimleme ifadesi sağlarsanız, ölçümler ifadenin bir değeri tarafından tanımlanan her veri dilimi için hesaplanır.
Örneğin:
slicing_exprs=["col_1", "col_2 > 10"]
aşağıdaki dilimleri oluşturur: için col_2 > 10
bir, için col_2 <= 10
bir ve içindeki col1
her benzersiz değer için bir dilim.
Dilimler ölçüm tablolarında ve slice_value
sütun adlarına slice_key
göre tanımlanır. Bu örnekte bir dilim anahtarı "col_2 > 10" ve karşılık gelen değerler "true" ve "false" olacaktır. Tablonun tamamı = NULL ve slice_value
= NULL ile eşdeğerdir slice_key
. Dilimler tek bir dilim anahtarıyla tanımlanır.
Ölçümler, zaman pencereleri, dilim anahtarları ve değerleri tarafından tanımlanan tüm olası gruplar için hesaplanır. Ayrıca analiz için InferenceLog
ölçümler her model kimliği için hesaplanır. Ayrıntılar için bkz . Oluşturulan tablolar için sütun şemaları.
Model doğruluğu izleme için ek istatistikler (InferenceLog
yalnızca analiz)
Analiz için InferenceLog
ek istatistikler hesaplanır.
- Her ikisi de
label_col
sağlanmışsa modelprediction_col
kalitesi hesaplanır. - Dilimler, ayrı değerlerine
model_id_col
göre otomatik olarak oluşturulur. - Sınıflandırma modellerinde, Boole değeri olan dilimler için eşitlik ve sapma istatistikleri hesaplanır.
Sorgu analizi ve kayma ölçümleri tabloları
Ölçüm tablolarını doğrudan sorgulayabilirsiniz. Aşağıdaki örnek analize dayanır InferenceLog
:
SELECT
window.start, column_name, count, num_nulls, distinct_count, frequent_items
FROM census_monitor_db.adult_census_profile_metrics
WHERE model_id = 1 — Constrain to version 1
AND slice_key IS NULL — look at aggregate metrics over the whole data
AND column_name = "income_predicted"
ORDER BY window.start
Oluşturulan tablolar için sütun şemaları
Birincil tablodaki her sütun için ölçüm tabloları, gruplandırma sütunlarının her birleşimi için bir satır içerir. Her satırla ilişkili sütun sütununda column_name
gösterilir.
Model doğruluğu ölçümleri gibi birden fazla sütuna dayalı ölçümler column_name
için :table
olarak ayarlanır.
Profil ölçümleri için aşağıdaki gruplandırma sütunları kullanılır:
- zaman penceresi
- taneciklik (
TimeSeries
veInferenceLog
yalnızca analiz) - günlük türü - giriş tablosu veya temel tablo
- dilim anahtarı ve değeri
- model kimliği (
InferenceLog
yalnızca analiz)
Kayma ölçümleri için aşağıdaki ek gruplandırma sütunları kullanılır:
- karşılaştırma zamanı penceresi
- kayma türü (önceki pencereyle karşılaştırma veya temel tablo karşılaştırması)
Ölçüm tablolarının şemaları aşağıda ve Databricks Lakehouse İzleme API'sinin başvuru belgelerinde de gösterilmiştir.
Profil ölçümleri tablosu şeması
Aşağıdaki tabloda profil ölçümleri tablosunun şeması gösterilmektedir. Bir ölçümün bir satır için geçerli olmadığı durumlarda, karşılık gelen hücre null'tır.
Sütun adı | Type | Açıklama |
---|---|---|
Sütunları gruplandırma | ||
pencere | Yapı. Aşağıdaki [1] bölümüne bakın. | Zaman penceresi. |
Taneciklilik | Dize | Pencere süresi, parametreye göre granularities ayarlanır. [2] |
model_id_col | Dize | isteğe bağlı. Yalnızca analiz türü için InferenceLog kullanılır. |
log_type | Dize | Ölçümleri hesaplamak için kullanılan tablo. TABAN ÇIZGISİ veya GİrDİ. |
slice_key | Dize | Dilim ifadesi. Tüm veriler olan varsayılan için NULL. |
slice_value | Dize | Dilimleme ifadesinin değeri. |
column_name | Dize | Birincil tablodaki sütunun adı. :table , modelin doğruluğu gibi tablonun tamamına uygulanan ölçümler için özel bir addır. |
data_type | Dize | Spark veri türü.column_name |
logging_table_commit_version | int | Yoksay. |
monitor_version | bigint | Satırdaki ölçümleri hesaplamak için kullanılan izleyici yapılandırmasının sürümü. Ayrıntılar için aşağıdaki [3] bölümüne bakın. |
Ölçüm sütunları - özet istatistikleri | ||
count | bigint | Null olmayan değerlerin sayısı. |
num_nulls | bigint | içindeki column_name null değerlerin sayısı. |
ort | çift | Null değerleri kategorilere ayırarak sütunun aritmetik ortalaması. |
niceller | array<double> |
1000 nicel dizisi. Aşağıdaki [4] bölümüne bakın. |
distinct_count | bigint | içindeki column_name ayrı değerlerin sayısı. |
dk | çift | içindeki column_name en düşük değer. |
max | çift | içindeki column_name en büyük değer. |
stddev | çift | standart sapması column_name . |
num_zeros | bigint | içindeki column_name sıfır sayısı. |
num_nan | bigint | içindeki column_name NaN değerlerinin sayısı. |
min_size | çift | içindeki column_name dizilerin veya yapıların en küçük boyutu. |
max_size | çift | içindeki column_name dizilerin veya yapıların en büyük boyutu. |
avg_size | çift | içindeki column_name dizilerin veya yapıların ortalama boyutu. |
min_len | çift | içindeki column_name dize ve ikili değerlerin en düşük uzunluğu. |
max_len | çift | içindeki column_name dize ve ikili değerlerin uzunluk üst sınırı. |
avg_len | çift | içindeki column_name dize ve ikili değerlerin ortalama uzunluğu. |
frequent_items | Yapı. Aşağıdaki [1] bölümüne bakın. | En sık oluşan 100 öğe. |
non_null_columns | array<string> |
En az bir null olmayan değere sahip sütunların listesi. |
Medyan | çift | ortanca değeri column_name . |
percent_null | çift | içindeki column_name null değerlerin yüzdesi. |
percent_zeros | çift | içinde column_name sıfır olan değerlerin yüzdesi. |
percent_distinct | çift | içinde column_name ayrı olan değerlerin yüzdesi. |
Ölçüm sütunları - sınıflandırma modeli doğruluğu [5] | ||
accuracy_score | çift | Null değerleri yoksayarak modelin doğruluğu (doğru tahmin sayısı / toplam tahmin sayısı) olarak hesaplanır. |
confusion_matrix | Yapı. Aşağıdaki [1] bölümüne bakın. | |
duyarlık | Yapı. Aşağıdaki [1] bölümüne bakın. | |
yakalama | Yapı. Aşağıdaki [1] bölümüne bakın. | |
f1_score | Yapı. Aşağıdaki [1] bölümüne bakın. | |
Ölçüm sütunları - regresyon modeli doğruluğu [5] | ||
mean_squared_error | çift | ile label_col arasındaki prediction_col ortalama hata karesi. |
root_mean_squared_error | çift | ile label_col arasında prediction_col kök ortalama kare hatası. |
mean_average_error | çift | ile label_col arasında prediction_col ortalama ortalama hata. |
mean_absolute_percentage_error | çift | ile label_col arasında prediction_col ortalama mutlak yüzde hatası. |
r2_score | çift | ile label_col arasında prediction_col R karesi puan. |
Ölçüm sütunları - eşitlik ve sapma [6] | ||
predictive_parity | çift | İki grubun tüm tahmin edilen sınıflarda eşit duyarlığı olup olmadığını ölçer. label_col gereklidir. |
predictive_equality | çift | İki grubun tüm tahmin edilen sınıflarda eşit hatalı pozitif oranı olup olmadığını ölçer. label_col gereklidir. |
equal_opportunity | çift | İki grubun tüm tahmin edilen sınıflarda eşit geri çağırmaya sahip olup olmadığını ölçer. label_col gereklidir. |
statistical_parity | çift | İki grubun eşit kabul oranına sahip olup olmadığını ölçer. Burada kabul oranı, tahmin edilen tüm sınıflarda belirli bir sınıf olarak tahmin edilecek ampirik olasılık olarak tanımlanır. |
[1] , , precision
recall
ve f1_score
için confusion_matrix
yapı biçimi:
Sütun adı | Tür |
---|---|
pencere | struct<start: timestamp, end: timestamp> |
frequent_items | array<struct<item: string, count: bigint>> |
confusion_matrix | struct<prediction: string, label: string, count: bigint> |
duyarlık | struct<one_vs_all: map<string,double>, macro: double, weighted: double> |
yakalama | struct<one_vs_all: map<string,double>, macro: double, weighted: double> |
f1_score | struct<one_vs_all: map<string,double>, macro: double, weighted: double> |
[2] Zaman serisi veya çıkarım profilleri için monitör, izleyicinin oluşturulduğu zamandan itibaren 30 gün geriye bakar. Bu kesme nedeniyle, ilk analiz kısmi bir pencere içerebilir. Örneğin, 30 gün sınırı bir hafta veya ayın ortasında olabilir ve bu durumda tam hafta veya ay hesaplamaya dahil edilmez. Bu sorun yalnızca ilk pencereyi etkiler.
[3] Bu sütunda gösterilen sürüm, satırdaki istatistikleri hesaplamak için kullanılan sürümdür ve izleyicinin geçerli sürümü olmayabilir. Ölçümleri her yenilediğinizde izleyici, geçerli izleyici yapılandırmasını kullanarak önceden hesaplanmış ölçümleri yeniden derlemeyi dener. Geçerli izleyici sürümü, API ve Python İstemcisi tarafından döndürülen izleyici bilgilerinde görünür.
[4] 50. yüzdebirlik değeri almak için örnek kod: SELECT element_at(quantiles, int((size(quantiles)+1)/2)) AS p50 ...
veya SELECT quantiles[500] ...
.
[5] Yalnızca izleyicinin analiz türüne sahip InferenceLog
olup olmadığını ve her ikisini de label_col
sağlayıp prediction_col
sağlamadığını gösterir.
[6] Yalnızca izleyicinin analiz türüne sahip InferenceLog
olup olmadığını gösterir problem_type
classification
.
Kayma ölçümleri tablosu şeması
Aşağıdaki tabloda, kayma ölçümleri tablosunun şeması gösterilmektedir. Kayma tablosu yalnızca bir temel tablo sağlandığında veya belirtilen taneciklere göre toplamadan sonra ardışık bir zaman penceresi varsa oluşturulur.
Sütun adı | Type | Açıklama |
---|---|---|
Sütunları gruplandırma | ||
pencere | struct<start: timestamp, end: timestamp> |
Zaman penceresi. |
window_cmp | struct<start: timestamp, end: timestamp> |
drift_type CONSECUTIVE karşılaştırma penceresi. |
drift_type | Dize | TABAN ÇIZGISİ veya ART ARDA. Kayma ölçümlerinin önceki zaman penceresiyle mi yoksa temel tabloyla mı karşılaştırdığı. |
Taneciklilik | Dize | Pencere süresi, parametreye göre granularities ayarlanır. [7] |
model_id_col | Dize | isteğe bağlı. Yalnızca analiz türü için InferenceLog kullanılır. |
slice_key | Dize | Dilim ifadesi. Tüm veriler olan varsayılan için NULL. |
slice_value | Dize | Dilimleme ifadesinin değeri. |
column_name | Dize | Birincil tablodaki sütunun adı. :table , modelin doğruluğu gibi tablonun tamamına uygulanan ölçümler için özel bir addır. |
data_type | Dize | Spark veri türü.column_name |
monitor_version | bigint | Satırdaki ölçümleri hesaplamak için kullanılan izleyici yapılandırmasının sürümü. Ayrıntılar için aşağıdaki [8] bölümüne bakın. |
Ölçüm sütunları - kayma | Farklılıklar geçerli pencere - karşılaştırma penceresi olarak hesaplanır. | |
count_delta | çift | içindeki count fark. |
avg_delta | çift | içindeki avg fark. |
percent_null_delta | çift | içindeki percent_null fark. |
percent_zeros_delta | çift | içindeki percent_zeros fark. |
percent_distinct_delta | çift | içindeki percent_distinct fark. |
non_null_columns_delta | struct<added: int, missing: int> |
Null olmayan değerlerde herhangi bir artış veya azalma içeren sütun sayısı. |
chi_squared_test | struct<statistic: double, pvalue: double> |
Dağılımda kayma için kikare testi. |
ks_test | struct<statistic: double, pvalue: double> |
Dağıtımda kayma için KS testi. Yalnızca sayısal sütunlar için hesaplanır. |
tv_distance | çift | Dağılımda kayma için toplam varyasyon uzaklığı. |
l_infinity_distance | çift | Dağılımda kayma için L-sonsuzluk uzaklığı. |
js_distance | çift | Jensen-Shannon dağılımda kayma için uzaklık. Yalnızca kategorik sütunlar için hesaplanır. |
wasserstein_distance | çift | Wasserstein uzaklık ölçümünü kullanarak iki sayısal dağılım arasında kayma. |
population_stability_index | çift | Popülasyon kararlılığı dizin ölçümünü kullanarak iki sayısal dağılım arasındaki kaymayı karşılaştırma ölçümü. Ayrıntılar için aşağıdaki [9] bölümüne bakın. |
[7] Zaman serisi veya çıkarım profilleri için monitör, izleyicinin oluşturulduğu zamandan itibaren 30 gün geriye bakar. Bu kesme nedeniyle, ilk analiz kısmi bir pencere içerebilir. Örneğin, 30 gün sınırı bir hafta veya ayın ortasında olabilir ve bu durumda tam hafta veya ay hesaplamaya dahil edilmez. Bu sorun yalnızca ilk pencereyi etkiler.
[8] Bu sütunda gösterilen sürüm, satırdaki istatistikleri hesaplamak için kullanılan sürümdür ve izleyicinin geçerli sürümü olmayabilir. Ölçümleri her yenilediğinizde izleyici, geçerli izleyici yapılandırmasını kullanarak önceden hesaplanmış ölçümleri yeniden derlemeyi dener. Geçerli izleyici sürümü, API ve Python İstemcisi tarafından döndürülen izleyici bilgilerinde görünür.
[9] Popülasyon kararlılığı dizininin çıkışı, iki dağılımın ne kadar farklı olduğunu gösteren sayısal bir değerdir. Aralık [0, inf) şeklindedir. PSI < 0.1, önemli bir popülasyon değişikliği olmadığı anlamına gelir. PSI < 0.2, orta düzeyde popülasyon değişikliğini gösterir. PSI >= 0,2, önemli popülasyon değişikliğini gösterir.