Aracılığıyla paylaş


Ö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_metricskonumuna {output_schema}.{table_name}_profile_metrics kaydedilir. Burada:

  • {output_schema} tarafından output_schema_namebelirtilen 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 > 10bir, için col_2 <= 10bir ve içindeki col1her benzersiz değer için bir dilim.

Dilimler ölçüm tablolarında ve slice_valuesü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.

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_namegösterilir.

Model doğruluğu ölçümleri gibi birden fazla sütuna dayalı ölçümler column_name için :tableolarak ayarlanır.

Profil ölçümleri için aşağıdaki gruplandırma sütunları kullanılır:

  • zaman penceresi
  • taneciklik (TimeSeries ve InferenceLog 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_namenull 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_nameayrı değerlerin sayısı.
dk çift içindeki column_nameen düşük değer.
max çift içindeki column_nameen büyük değer.
stddev çift standart sapması column_name.
num_zeros bigint içindeki column_namesıfır sayısı.
num_nan bigint içindeki column_nameNaN değerlerinin sayısı.
min_size çift içindeki column_namedizilerin veya yapıların en küçük boyutu.
max_size çift içindeki column_namedizilerin veya yapıların en büyük boyutu.
avg_size çift içindeki column_namedizilerin veya yapıların ortalama boyutu.
min_len çift içindeki column_namedize ve ikili değerlerin en düşük uzunluğu.
max_len çift içindeki column_namedize ve ikili değerlerin uzunluk üst sınırı.
avg_len çift içindeki column_namedize 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_namenull değerlerin yüzdesi.
percent_zeros çift içinde column_namesıfır olan değerlerin yüzdesi.
percent_distinct çift içinde column_nameayrı 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_colarasındaki prediction_col ortalama hata karesi.
root_mean_squared_error çift ile label_colarasında prediction_col kök ortalama kare hatası.
mean_average_error çift ile label_colarasında prediction_col ortalama ortalama hata.
mean_absolute_percentage_error çift ile label_colarasında prediction_col ortalama mutlak yüzde hatası.
r2_score çift ile label_colarası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] , , precisionrecallve f1_scoreiçin confusion_matrixyapı 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 CONSECUTIVEkarşı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 countfark.
avg_delta çift içindeki avgfark.
percent_null_delta çift içindeki percent_nullfark.
percent_zeros_delta çift içindeki percent_zerosfark.
percent_distinct_delta çift içindeki percent_distinctfark.
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.