Share via


Skapa en övervakare med hjälp av API:et

Viktigt!

Den här funktionen finns som allmänt tillgänglig förhandsversion.

Den här sidan beskriver hur du skapar en övervakare i Databricks med python-API:et och beskriver alla parametrar som används i API-anropet. Du kan också skapa och hantera övervakare med hjälp av REST-API:et. Referensinformation finns i Referens för Lakehouse-övervakning av Python API och REST API-referensen.

Du kan skapa en övervakare på alla hanterade eller externa Delta-tabeller som registrerats i Unity Catalog. Endast en enda övervakare kan skapas i ett Unity Catalog-metaarkiv för valfri tabell.

Krav

Lakehouse Monitoring API är inbyggt i Databricks Runtime 14.3 LTS och senare. Om du vill använda den senaste versionen av API:et eller för att använda den med tidigare Databricks Runtime-versioner använder du följande kommando i början av notebook-filen för att installera Python-klienten:

%pip install "https://ml-team-public-read.s3.amazonaws.com/wheels/data-monitoring/a4050ef7-b183-47a1-a145-e614628e3146/databricks_lakehouse_monitoring-0.4.14-py3-none-any.whl"

Parameter för profiltyp

Parametern profile_type avgör vilken klass av mått som övervakar beräkningar för tabellen. Det finns tre typer: TimeSeries, InferenceLog och Snapshot. I det här avsnittet beskrivs parametrarna kortfattat. Mer information finns i API-referensen eller REST API-referensen.

Kommentar

  • När du först skapar en tidsserie- eller slutsatsdragningsprofil analyserar övervakaren endast data från de 30 dagarna innan den skapas. När övervakaren har skapats bearbetas alla nya data.
  • Övervakare som definierats för materialiserade vyer och strömmande tabeller stöder inte inkrementell bearbetning.

TimeSeries Profil

En TimeSeries profil jämför datadistributioner mellan tidsfönster. För en TimeSeries profil måste du ange följande:

  • En tidsstämpelkolumn (timestamp_col). Datatypen för tidsstämpelkolumnen måste vara antingen TIMESTAMP eller en typ som kan konverteras till tidsstämplar med funktionen to_timestampPySpark.
  • Den uppsättning granularities som måtten ska beräknas över. Tillgängliga kornigheter är "5 minuter", "30 minuter", "1 timme", "1 dag", "n vecka(er)", "1 månad", "1 år".
from databricks import lakehouse_monitoring as lm

lm.create_monitor(
    table_name=f"{catalog}.{schema}.{table_name}",
    profile_type=lm.TimeSeries(
        timestamp_col="ts",
        granularities=["30 minutes"]
    ),
    output_schema_name=f"{catalog}.{schema}"
)

InferenceLog Profil

En InferenceLog profil liknar en TimeSeries profil men innehåller även modellkvalitetsmått. För en InferenceLog profil krävs följande parametrar:

Parameter Description
problem_type "klassificering" eller "regression".
prediction_col Kolumn som innehåller modellens förutsagda värden.
timestamp_col Kolumn som innehåller tidsstämpeln för inferensbegäran.
model_id_col Kolumn som innehåller ID:t för modellen som används för förutsägelse.
granularities Avgör hur data ska partitioneras i fönster över tid. Möjliga värden: "5 minuter", "30 minuter", "1 timme", "1 dag", "n vecka(er)", "1 månad", "1 år".

Det finns också en valfri parameter:

Valfri parameter beskrivning
label_col Kolumn som innehåller grundsanningen för modellförutsägelser.
from databricks import lakehouse_monitoring as lm

lm.create_monitor(
    table_name=f"{catalog}.{schema}.{table_name}",
    profile_type=lm.InferenceLog(
        problem_type="classification",
        prediction_col="preds",
        timestamp_col="ts",
        granularities=["30 minutes", "1 day"],
        model_id_col="model_ver",
        label_col="label", # optional
    ),
    output_schema_name=f"{catalog}.{schema}"
)

För InferenceLog-profiler skapas sektorer automatiskt baserat på de distinkta värdena model_id_colför .

Snapshot Profil

Till skillnad från TimeSeriesövervakar en Snapshot profil hur det fullständiga innehållet i tabellen ändras över tid. Mått beräknas över alla data i tabellen och övervakar tabelltillståndet varje gång övervakaren uppdateras.

from databricks import lakehouse_monitoring as lm

lm.create_monitor(
    table_name=f"{catalog}.{schema}.{table_name}",
    profile_type=lm.Snapshot(),
    output_schema_name=f"{catalog}.{schema}"
)

Uppdatera och visa övervakningsresultat

Om du vill uppdatera måtttabeller använder du run_refresh. Till exempel:

from databricks import lakehouse_monitoring as lm

lm.run_refresh(
    table_name=f"{catalog}.{schema}.{table_name}"
)

När du anropar run_refresh från en notebook-fil skapas eller uppdateras övervakningsstatistiktabellerna. Den här beräkningen körs på serverlös beräkning, inte på klustret som notebook-filen är kopplad till. Du kan fortsätta att köra kommandon i notebook-filen medan övervakningsstatistiken uppdateras.

Information om den statistik som lagras i måtttabeller finns i Övervaka måtttabeller Måtttabeller är Unity Catalog-tabeller. Du kan fråga dem i notebook-filer eller i SQL-frågeutforskaren och visa dem i Katalogutforskaren.

Om du vill visa historiken för alla uppdateringar som är associerade med en övervakare använder du list_refreshes.

from databricks import lakehouse_monitoring as lm

lm.list_refreshes(
    table_name=f"{catalog}.{schema}.{table_name}"
)

Om du vill hämta status för en specifik körning som har placerats i kö, körts eller slutförts använder du get_refresh.

from databricks import lakehouse_monitoring as lm

run_info = lm.run_refresh(table_name=f"{catalog}.{schema}.{table_name}")

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

Om du vill avbryta en uppdatering som är i kö eller körs använder du cancel_refresh.

from databricks import lakehouse_monitoring as lm

run_info = lm.run_refresh(table_name=f"{catalog}.{schema}.{table_name}")

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

Visa övervakningsinställningar

Du kan granska övervakningsinställningarna med hjälp av API get_monitor:et .

from databricks import lakehouse_monitoring as lm

lm.get_monitor(table_name=TABLE_NAME)

Schema

Om du vill konfigurera en övervakare som ska köras enligt ett schema använder du parametern schedulecreate_monitor:

lm.create_monitor(
    table_name=f"{catalog}.{schema}.{table_name}",
    profile_type=lm.TimeSeries(
        timestamp_col="ts",
        granularities=["30 minutes"]
    ),
    schedule=lm.MonitorCronSchedule(
        quartz_cron_expression="0 0 12 * * ?", # schedules a refresh every day at 12 noon
        timezone_id="PST",
    ),
    output_schema_name=f"{catalog}.{schema}"
)

Mer information finns i cron-uttryck .

Meddelanden

Om du vill konfigurera meddelanden för en övervakare använder du parametern notificationscreate_monitor:

lm.create_monitor(
    table_name=f"{catalog}.{schema}.{table_name}",
    profile_type=lm.TimeSeries(
        timestamp_col="ts",
        granularities=["30 minutes"]
    ),
    notifications=lm.Notifications(
        # Notify the given email when a monitoring refresh fails or times out.
        on_failure=lm.Destination(
            email_addresses=["your_email@domain.com"]
        )
    )
    output_schema_name=f"{catalog}.{schema}"
)

Högst 5 e-postadresser stöds per händelsetyp (till exempel "on_failure").

Kontrollera åtkomsten till måtttabeller

Måtttabellerna och instrumentpanelen som skapats av en övervakare ägs av den användare som skapade övervakaren. Du kan använda Behörigheter för Unity Catalog för att styra åtkomsten till måtttabeller. Om du vill dela instrumentpaneler på en arbetsyta använder du knappen Dela längst upp till höger på instrumentpanelen.

Ta bort en övervakare

Så här tar du bort en övervakare:

lm.delete_monitor(table_name=TABLE_NAME)

Det här kommandot tar inte bort profiltabellerna och instrumentpanelen som skapats av övervakaren. Du måste ta bort dessa tillgångar i ett separat steg, eller så kan du spara dem på en annan plats.

Exempelnotebook-filer

Följande exempel på notebook-filer visar hur du skapar en övervakare, uppdaterar övervakaren och undersöker de måtttabeller som skapas.

Notebook-exempel: Tidsserieprofil

Den här notebook-filen visar hur du skapar en TimeSeries typövervakare.

TimeSeries Lakehouse Monitor- exempelanteckningsbok

Hämta notebook-fil

Notebook-exempel: Slutsatsdragningsprofil (regression)

Den här notebook-filen visar hur du skapar en InferenceLog typövervakare för ett regressionsproblem.

Inference Lakehouse Monitor regressionsexempel notebook

Hämta notebook-fil

Notebook-exempel: Slutsatsdragningsprofil (klassificering)

Den här notebook-filen visar hur du skapar en InferenceLog typövervakare för ett klassificeringsproblem.

Inference Lakehouse Monitor–klassificeringsexempel notebook

Hämta notebook-fil

Notebook-exempel: Profil för ögonblicksbild

Den här notebook-filen visar hur du skapar en Snapshot typövervakare.

Snapshot Lakehouse Monitor- exempelanteckningsbok

Hämta notebook-fil