Aracılığıyla paylaş


API kullanarak izleyici oluşturma

Bu sayfada Databricks SDK'sını kullanarak Databricks'te bir izleyicinin nasıl oluşturulacağı açıklanır ve API çağrılarında kullanılan tüm parametreler açıklanır. REST API'yi kullanarak izleyiciler oluşturabilir ve yönetebilirsiniz. Başvuru bilgileri için bkz. Lakehouse izleme SDK'sı başvurusu ve REST API başvurusu.

Unity Kataloğu'nda kayıtlı herhangi bir yönetilen veya dış Delta tablosunda izleyici oluşturabilirsiniz. Herhangi bir tablo için Unity Kataloğu meta veri deposunda yalnızca tek bir monitör oluşturulabilir.

Gereksinimler

Lakehouse İzleme API'si 0.28.0 ve üzeri bir modelde databricks-sdk yerleşiktir. API'nin en son sürümünü kullanmak için not defterinizin başındaki aşağıdaki komutu kullanarak Python istemcisini yükleyin:

%pip install "databricks-sdk>=0.28.0"

Ortamınızda Databricks SDK'sını kullanmak üzere kimlik doğrulaması yapmak için bkz . Kimlik doğrulaması.

Profil türleri

Bir monitör oluşturduğunuzda, şu profil türlerinden birini seçersiniz: TimeSeries, InferenceLog veya Snapshot. Bu bölümde her seçenek kısaca açıklanmaktadır. Ayrıntılar için bkz . API başvurusu veya REST API başvurusu.

Not

  • İlk kez bir zaman serisi veya çıkarım profili oluşturduğunuzda, izleyici yalnızca oluşturulmadan önceki 30 güne ait verileri analiz eder. İzleyici oluşturulduktan sonra tüm yeni veriler işlenir.
  • Gerçekleştirilmiş görünümlerde ve akış tablolarında tanımlanan izleyiciler artımlı işlemeyi desteklemez.

İpucu

ve Inference profilleri içinTimeSeries, tablonuzda değişiklik veri akışını (CDF) etkinleştirmek en iyi yöntemdir. CDF etkinleştirildiğinde, her yenilemede tablonun tamamını yeniden işlemek yerine yalnızca yeni eklenen veriler işlenir. Bu, yürütmeyi daha verimli hale getirir ve izlemeyi birçok tabloda ölçeklendirdikçe maliyetleri azaltır.

TimeSeries profil

Profil TimeSeries , zaman pencerelerindeki veri dağıtımlarını karşılaştırır. Profil için TimeSeries aşağıdakileri sağlamanız gerekir:

  • Zaman damgası sütunu (timestamp_col). Zaman damgası sütunu veri türü veya TIMESTAMP PySpark işlevi kullanılarak to_timestamp zaman damgalarına dönüştürülebilecek bir tür olmalıdır.
  • Ölçümlerin granularities hesaplanacağı küme. Kullanılabilir ayrıntı düzeyleri şunlardır: "5 dakika", "30 dakika", "1 saat", "1 gün", "n hafta/hafta", "1 ay", "1 yıl".
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.catalog import MonitorTimeSeries

w = WorkspaceClient()
w.quality_monitors.create(
  table_name=f"{catalog}.{schema}.{table_name}",
  assets_dir=f"/Workspace/Users/{user_email}/databricks_lakehouse_monitoring/{catalog}.{schema}.{table_name}",
  output_schema_name=f"{catalog}.{schema}",
  time_series=MonitorTimeSeries(timestamp_col=ts, granularities=["30 minutes"])
)

InferenceLog profil

Profil InferenceLog , profile TimeSeries benzer ancak model kalitesi ölçümlerini de içerir. Bir InferenceLog profil için aşağıdaki parametreler gereklidir:

Parametre Açıklama
problem_type MonitorInferenceLogProblemType.PROBLEM_TYPE_CLASSIFICATION veya MonitorInferenceLogProblemType.PROBLEM_TYPE_REGRESSION
prediction_col Modelin tahmin edilen değerlerini içeren sütun.
timestamp_col Çıkarım isteğinin zaman damgasını içeren sütun.
model_id_col Tahmin için kullanılan modelin kimliğini içeren sütun.
granularities Zaman içinde pencerelerdeki verilerin nasıl bölümleneceğini belirler. Olası değerler: "5 dakika", "30 dakika", "1 saat", "1 gün", "n hafta", "1 ay", "1 yıl".

İsteğe bağlı bir parametre de vardır:

İsteğe bağlı parametre Açıklama
label_col Model tahminleri için temel gerçeği içeren sütun.
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.catalog import MonitorInferenceLog, MonitorInferenceLogProblemType

w = WorkspaceClient()
w.quality_monitors.create(
  table_name=f"{catalog}.{schema}.{table_name}",
  assets_dir=f"/Workspace/Users/{user_email}/databricks_lakehouse_monitoring/{catalog}.{schema}.{table_name}",
  output_schema_name=f"{catalog}.{schema}",
  inference_log=MonitorInferenceLog(
        problem_type=MonitorInferenceLogProblemType.PROBLEM_TYPE_CLASSIFICATION,
        prediction_col="preds",
        timestamp_col="ts",
        granularities=["30 minutes", "1 day"],
        model_id_col="model_ver",
        label_col="label", # optional
  )
)

InferenceLog profilleri için dilimler, benzersiz değerlerine model_id_colgöre otomatik olarak oluşturulur.

Snapshot profil

yerine TimeSeries, bir Snapshot profil tablonun tüm içeriğinin zaman içinde nasıl değiştiğini izler. Ölçümler tablodaki tüm veriler üzerinde hesaplanır ve izleyici her yenilendiğinde tablo durumunu izler.

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.catalog import MonitorSnapshot

w = WorkspaceClient()
w.quality_monitors.create(
  table_name=f"{catalog}.{schema}.{table_name}",
  assets_dir=f"/Workspace/Users/{user_email}/databricks_lakehouse_monitoring/{catalog}.{schema}.{table_name}",
  output_schema_name=f"{catalog}.{schema}",
  snapshot=MonitorSnapshot()
)

İzleyici sonuçlarını yenileme ve görüntüleme

Ölçüm tablolarını yenilemek için kullanın run_refresh. Örneğin:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
w.quality_monitors.run_refresh(
    table_name=f"{catalog}.{schema}.{table_name}"
)

Not defterinden arama run_refresh yaptığınızda, monitör ölçüm tabloları oluşturulur veya güncelleştirilir. Bu hesaplama, not defterinin bağlı olduğu kümede değil sunucusuz işlemde çalışır. İzleme istatistikleri güncelleştirilirken not defterinde komut çalıştırmaya devam edebilirsiniz.

Ölçüm tablolarında depolanan istatistikler hakkında bilgi için bkz . Ölçüm tablolarını izleme Ölçüm tabloları Unity Kataloğu tablolarıdır. Bunları not defterlerinde veya SQL sorgu gezgininde sorgulayabilir ve Katalog Gezgini'nde görüntüleyebilirsiniz.

Bir monitörle ilişkili tüm yenilemelerin geçmişini görüntülemek için kullanın list_refreshes.

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
w.quality_monitors.list_refreshes(
    table_name=f"{catalog}.{schema}.{table_name}"
)

Kuyruğa alınmış, çalıştırılmış veya tamamlanmış belirli bir çalıştırmanın durumunu almak için kullanın get_refresh.

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
run_info = w.quality_monitors.run_refresh(table_name=f"{catalog}.{schema}.{table_name}")

w.quality_monitors.get_refresh(
    table_name=f"{catalog}.{schema}.{table_name}",
    refresh_id = run_info.refresh_id
)

Kuyruğa alınan veya çalışan bir yenilemeyi iptal etmek için kullanın cancel_refresh.

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
run_info = w.quality_monitors.run_refresh(table_name=f"{catalog}.{schema}.{table_name}")

w.quality_monitors.cancel_refresh(
    table_name=f"{catalog}.{schema}.{table_name}",
    refresh_id=run_info.refresh_id
)

Monitör ayarlarını görüntüleme

API'sini get_monitorkullanarak izleme ayarlarını gözden geçirebilirsiniz.

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
w.quality_monitors.get(f"{catalog}.{schema}.{table_name}")

Zamanla

Zamanlanmış olarak çalışacak bir izleyici ayarlamak için parametresini schedule create_monitorkullanın:

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.catalog import MonitorTimeSeries, MonitorCronSchedule

w = WorkspaceClient()
w.quality_monitors.create(
  table_name=f"{catalog}.{schema}.{table_name}",
  assets_dir=f"/Workspace/Users/{user_email}/databricks_lakehouse_monitoring/{catalog}.{schema}.{table_name}",
  output_schema_name=f"{catalog}.{schema}",
  time_series=MonitorTimeSeries(timestamp_col=ts, granularities=["30 minutes"]),
  schedule=MonitorCronSchedule(
        quartz_cron_expression="0 0 12 * * ?", # schedules a refresh every day at 12 noon
        timezone_id="PST",
    )
)

Daha fazla bilgi için bkz . cron ifadeleri .

Notifications

Bir izleyiciye yönelik bildirimleri ayarlamak için parametresini notifications create_monitorkullanın:

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.catalog import MonitorTimeSeries, MonitorNotifications, MonitorDestination

w = WorkspaceClient()
w.quality_monitors.create(
  table_name=f"{catalog}.{schema}.{table_name}",
  assets_dir=f"/Workspace/Users/{user_email}/databricks_lakehouse_monitoring/{catalog}.{schema}.{table_name}",
  output_schema_name=f"{catalog}.{schema}",
  time_series=MonitorTimeSeries(timestamp_col=ts, granularities=["30 minutes"]),
  notifications=MonitorNotifications(
        # Notify the given email when a monitoring refresh fails or times out.
        on_failure=MonitorDestination(
            email_addresses=["your_email@domain.com"]
        )
    )
)

Olay türü başına en fazla 5 e-posta adresi desteklenir (örneğin, "on_failure").

Ölçüm tablolarına erişimi denetleme

Bir monitör tarafından oluşturulan ölçüm tabloları ve pano, izleyiciyi oluşturan kullanıcıya aittir. Unity Kataloğu ayrıcalıklarını kullanarak ölçüm tablolarına erişimi denetleyebilirsiniz. Çalışma alanında panoları paylaşmak için panonun sağ üst kısmındaki Paylaş düğmesini kullanın.

Monitör silme

Bir izleyiciyi silmek için:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
w.quality_monitors.delete(table_name=f"{catalog}.{schema}.{table_name}")

Bu komut, profil tablolarını ve izleyici tarafından oluşturulan panoyu silmez. Bu varlıkları ayrı bir adımda silmeniz gerekir veya bunları farklı bir konuma kaydedebilirsiniz.

Örnek not defterleri

Aşağıdaki örnek not defterleri monitör oluşturmayı, monitörü yenilemeyi ve oluşturduğu ölçüm tablolarını incelemeyi gösterir.

Not defteri örneği: Zaman serisi profili

Bu not defteri, tür TimeSeries izleyicisi oluşturmayı gösterir.

TimeSeries Lakehouse İzleyici örnek not defteri

Not defterini alma

Not defteri örneği: Çıkarım profili (regresyon)

Bu not defteri, bir regresyon sorunu için tür izleyicisi oluşturmayı InferenceLog gösterir.

Çıkarım Lakehouse İzleyici regresyon örneği not defteri

Not defterini alma

Not defteri örneği: Çıkarım profili (sınıflandırma)

Bu not defteri, sınıflandırma sorunu için tür izleyicisi oluşturmayı InferenceLog gösterir.

Inference Lakehouse Monitor sınıflandırma örneği not defteri

Not defterini alma

Not defteri örneği: Anlık görüntü profili

Bu not defteri, tür Snapshot izleyicisi oluşturmayı gösterir.

Snapshot Lakehouse İzleyici örnek not defteri

Not defterini alma