Materialiserade vyer och lagrade funktioner

Slutförd

Även om du ofta kan uppnå dina analytiska mål genom att fråga tabeller och använda inbyggda funktioner och operatorer, tillhandahåller KQL vissa avancerade funktioner som du kan använda för att skapa nya objekt som kapslar in data eller logik som du ofta behöver använda.

Materialiserade vyer

En materialiserad vy är en sammanfattning av data från en källtabell eller en annan materialiserad vy. Vyn kapslar in en sammanfattande instruktion.

Följande instruktion skapar till exempel en materialiserad vy som innehåller antalet resor för varje leverantör varje dag.

.create materialized-view TripsByVendor on table Automotive
{
    Automotive
    | summarize trips = count() by vendor_id, pickup_date = format_datetime(pickup_datetime, "yyyy-MM-dd")
}

Om du kör den här instruktionen skapas en materialiserad vy, men den fylls inte omedelbart i med data i den befintliga tabellen. Vyn fylls i när nya data matas in i källtabellen. Om du vill mata in befintliga data kan du använda en asynkron åtgärd för att skapa den materialiserade vyn med alternativet för återfyllnad, så här:

.create async materialized-view with (backfill=true)
TripsByVendor on table Automotive
{
    Automotive
    | summarize trips = count() by vendor_id, pickup_date = format_datetime(pickup_datetime, "yyyy-MM-dd")
}

När du har skapat och fyllt i den materialiserade vyn kan du fråga den precis som en tabell.

TripsByVendor
| project pickup_date, vendor_id, trips
| sort by pickup_date desc

Materialiserade vyer visas i mappen Materialiserade vyer för KQL-databasen där du definierade dem på sidan eventhouse.

Lagrade funktioner

KQL innehåller möjligheten att kapsla in en fråga som en funktion, vilket gör det lättare att upprepa vanliga frågor. Du kan också ange parametrar för en funktion, så att du kan upprepa samma fråga med variabelvärden.

Om du vill skapa en funktion använder du KQL-kommandot .create-or-alter . Till exempel hämtar följande funktion rese-ID och upphämtningstid för resor med minst det angivna antalet passagerare:

.create-or-alter function trips_by_min_passenger_count(num_passengers:long)
{
    Automotive
    | where passenger_count >= num_passengers 
    | project trip_id, pickup_datetime
}

Om du vill anropa funktionen använder du den som en tabell. I det här exemplet används funktionen trips_by_min_passenger_count för att hitta 10 resor med minst tre passagerare:

trips_by_min_passenger_count (3)
| take 10