Databricks Lakehouse İzleme ile özel ölçümleri kullanma
Bu sayfada Databricks Lakehouse İzleme'de özel bir ölçümün nasıl oluşturulacağı açıklanır. Otomatik olarak hesaplanan analiz ve kayma istatistiklerine ek olarak özel ölçümler oluşturabilirsiniz. Örneğin, iş mantığının bazı yönlerini yakalayan ağırlıklı bir ortalamayı izlemek veya özel model kalite puanı kullanmak isteyebilirsiniz. Ayrıca, birincil tablodaki değerlerde yapılan değişiklikleri izleyen özel kayma ölçümleri de oluşturabilirsiniz (taban çizgisine veya önceki zaman penceresine göre).
API'yi kullanma MonitorMetric
hakkında daha fazla bilgi için bkz . API başvurusu.
Özel ölçüm türleri
Databricks Lakehouse İzleme aşağıdaki özel ölçüm türlerini içerir:
- Birincil tablodaki sütunlara göre hesaplanan toplam ölçümler. Toplama ölçümleri profil ölçümleri tablosunda depolanır.
- Önceden hesaplanan toplama ölçümlerine göre hesaplanan ve doğrudan birincil tablodaki verileri kullanmayan türetilmiş ölçümler. Türetilmiş ölçümler profil ölçümleri tablosunda depolanır.
- Daha önce hesaplanan toplama veya türetilmiş ölçümleri iki farklı zaman penceresinden veya birincil tabloyla temel tablo arasında karşılaştıran kayma ölçümleri. Kayma ölçümleri, kayma ölçümleri tablosunda depolanır.
Mümkün olduğunda türetilmiş ve kayma ölçümlerini kullanmak, tam birincil tablo üzerinde yeniden derlemeyi en aza indirir. Yalnızca toplama ölçümleri birincil tablodan verilere erişmektedir. Daha sonra türetilen ve sürüklenen ölçümler doğrudan toplam ölçüm değerlerinden hesaplanabilir.
Özel ölçüm parametreleri
Özel ölçüm tanımlamak için SQL sütun ifadesi için bir Jinja şablonu oluşturursunuz. Bu bölümdeki tablolarda ölçümü tanımlayan parametreler ve Jinja şablonunda kullanılan parametreler açıklanmaktadır.
Parametre | Açıklama |
---|---|
type |
MonitorMetricType.CUSTOM_METRIC_TYPE_AGGREGATE , MonitorMetricType.CUSTOM_METRIC_TYPE_DERIVED veya MonitorMetricType.CUSTOM_METRIC_TYPE_DRIFT . |
name |
Ölçüm tablolarındaki özel ölçümün sütun adı. |
input_columns |
Ölçümün hesaplanması gereken giriş tablosundaki sütun adlarının listesi. Hesaplamada birden fazla sütun kullanıldığını belirtmek için kullanın :table . Bu makaledeki örneklere bakın. |
definition |
Ölçümün nasıl hesaplandığını belirten bir SQL ifadesi için Jinja şablonu. Bkz . Tanım oluşturma. |
output_data_type |
JSON dize biçiminde ölçüm çıkışının Spark veri türü. |
Yaratmak definition
parametresi, definition
Jinja şablonu biçiminde tek bir dize ifadesi olmalıdır. Birleşimler veya alt sorgular içeremez.
Aşağıdaki tabloda, ölçümün nasıl hesapleneceğini belirtmek üzere SQL Jinja Şablonu oluşturmak için kullanabileceğiniz parametreler listelenmiştir.
Parametre | Açıklama |
---|---|
{{input_column}} |
Özel ölçümü hesaplamak için kullanılan sütun. |
{{prediction_col}} |
ML modeli tahminlerini içeren sütun. Analiz ile kullanılır InferenceLog . |
{{label_col}} |
ML modeli temel gerçeklik etiketlerini içeren sütun. Analiz ile kullanılır InferenceLog . |
{{current_df}} |
Önceki zaman penceresiyle karşılaştırıldığında kayma için. Önceki zaman penceresindeki veriler. |
{{base_df}} |
Kayma için temel tabloyla karşılaştırın. Temel veriler. |
Toplama ölçümü örneği
Aşağıdaki örnek, bir sütundaki değerlerin karesinin ortalamasını hesaplar ve ve f2
sütunlarına f1
uygulanır. Çıkış, profil ölçümleri tablosunda yeni bir sütun olarak kaydedilir ve ve f2
sütunlarına f1
karşılık gelen çözümleme satırlarında gösterilir. Geçerli sütun adları Jinja parametresiyle {{input_column}}
değiştirilir.
from databricks.sdk.service.catalog import MonitorMetric, MonitorMetricType
from pyspark.sql import types as T
MonitorMetric(
type=MonitorMetricType.CUSTOM_METRIC_TYPE_AGGREGATE,
name="squared_avg",
input_columns=["f1", "f2"],
definition="avg(`{{input_column}}`*`{{input_column}}`)",
output_data_type=T.StructField("output", T.DoubleType()).json(),
)
Aşağıdaki kod, ile f2
sütunları f1
arasındaki farkın ortalamasını hesaplayan özel bir ölçümü tanımlar. Bu örnek, hesaplamada tablodan input_columns
birden fazla sütunun kullanıldığını belirtmek için parametresinin kullanımını [":table"]
gösterir.
from databricks.sdk.service.catalog import MonitorMetric, MonitorMetricType
from pyspark.sql import types as T
MonitorMetric(
type=MonitorMetricType.CUSTOM_METRIC_TYPE_AGGREGATE,
name="avg_diff_f1_f2",
input_columns=[":table"],
definition="avg(f1 - f2)",
output_data_type=T.StructField("output", T.DoubleType()).json(),
)
Bu örnekte ağırlıklı model kalite puanı hesaplanır. Sütunun critical
True
olduğu gözlemler için, bu satır için tahmin edilen değer temel gerçekle eşleşmediğinde daha ağır bir ceza atanır. Ham sütunlarda (prediction
ve label
) tanımlandığından, toplama ölçümü olarak tanımlanır. :table
sütunu, bu ölçümün birden çok sütundan hesaplandığını gösterir. Jinja parametreleri {{prediction_col}}
ve {{label_col}}
değerleri, izleyici için tahmin ve temel gerçeklik etiketi sütunlarının adıyla değiştirilir.
from databricks.sdk.service.catalog import MonitorMetric, MonitorMetricType
from pyspark.sql import types as T
MonitorMetric(
type=MonitorMetricType.CUSTOM_METRIC_TYPE_AGGREGATE,
name="weighted_error",
input_columns=[":table"],
definition="""avg(CASE
WHEN {{prediction_col}} = {{label_col}} THEN 0
WHEN {{prediction_col}} != {{label_col}} AND critical=TRUE THEN 2
ELSE 1 END)""",
output_data_type=T.StructField("output", T.DoubleType()).json(),
)
Türetilmiş ölçüm örneği
Aşağıdaki kod, bu bölümde daha önce tanımlanan ölçümün karekökünü squared_avg
hesaplayan özel bir ölçümü tanımlar. Bu türetilmiş bir ölçüm olduğundan, birincil tablo verilerine başvurmaz ve bunun yerine toplama ölçümü açısından squared_avg
tanımlanır. Çıkış, profil ölçümleri tablosunda yeni bir sütun olarak kaydedilir.
from databricks.sdk.service.catalog import MonitorMetric, MonitorMetricType
from pyspark.sql import types as T
MonitorMetric(
type=MonitorMetricType.CUSTOM_METRIC_TYPE_DERIVED,
name="root_mean_square",
input_columns=["f1", "f2"],
definition="sqrt(squared_avg)",
output_data_type=T.StructField("output", T.DoubleType()).json(),
)
Kayma ölçümleri örneği
Aşağıdaki kod, bu bölümün önceki bölümlerinde tanımlanan ölçümdeki weighted_error
değişikliği izleyen bir kayma ölçümünü tanımlar. {{current_df}}
ve {{base_df}}
parametreleri ölçümün geçerli pencere ve karşılaştırma penceresindeki weighted_error
değerlere başvurmasına olanak sağlar. Karşılaştırma penceresi, temel veriler veya önceki zaman penceresindeki veriler olabilir. Kayma ölçümleri, kayma ölçümleri tablosuna kaydedilir.
from databricks.sdk.service.catalog import MonitorMetric, MonitorMetricType
from pyspark.sql import types as T
MonitorMetric(
type=MonitorMetricType.CUSTOM_METRIC_TYPE_DRIFT,
name="error_rate_delta",
input_columns=[":table"],
definition="{{current_df}}.weighted_error - {{base_df}}.weighted_error",
output_data_type=T.StructField("output", T.DoubleType()).json(),
)