Aracılığıyla paylaş


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_DERIVEDveya 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 f2sütunlarına f1 uygulanır. Çıkış, profil ölçümleri tablosunda yeni bir sütun olarak kaydedilir ve ve f2sü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 f2sü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 Trueolduğ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(),
)