Gerealiseerde weergaven en opgeslagen functies

Voltooid

Hoewel u vaak uw analytische doelen kunt bereiken door query's uit te voeren op tabellen en ingebouwde functies en operators te gebruiken, biedt KQL enkele geavanceerde functies die u kunt gebruiken om nieuwe objecten te maken die gegevens of logica inkapselen die u vaak moet gebruiken.

Gerealiseerde weergaven

Een gerealiseerde weergave is een samenvatting van gegevens uit een brontabel of een andere gerealiseerde weergave. In de weergave wordt een overzichtsinstructie ingekapseld.

Met de volgende instructie wordt bijvoorbeeld een gerealiseerde weergave gemaakt die het aantal ritten voor elke leverancier elke dag bevat.

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

Als u deze instructie uitvoert, wordt een gerealiseerde weergave gemaakt, maar wordt deze niet onmiddellijk gevuld met de gegevens in de bestaande tabel. De weergave wordt ingevuld wanneer nieuwe gegevens worden opgenomen in de brontabel. Als u bestaande gegevens wilt opnemen, kunt u een asynchrone bewerking gebruiken om de gerealiseerde weergave te maken met de optie Backfill , zoals deze:

.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")
}

Nadat u de gerealiseerde weergave hebt gemaakt en gevuld, kunt u een query uitvoeren op dezelfde tabel als een tabel.

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

Gerealiseerde weergaven worden weergegeven in de map Gerealiseerde weergaven voor de KQL-database waar u deze hebt gedefinieerd op de eventhouse-pagina.

Opgeslagen functies

KQL bevat de mogelijkheid om een query in te kapselen als een functie, waardoor het eenvoudiger is om algemene query's te herhalen. U kunt ook parameters voor een functie opgeven, zodat u dezelfde query kunt herhalen met variabele waarden.

Als u een functie wilt maken, gebruikt u de KQL-opdracht .create-or-alter. Met de volgende functie wordt bijvoorbeeld de reis-id en ophaaltijd opgehaald voor ritten met ten minste het opgegeven aantal passagiers:

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

Als u de functie wilt aanroepen, gebruikt u deze als een tabel. In dit voorbeeld wordt de functie trips_by_min_passenger_count gebruikt om 10 reizen met ten minste drie passagiers te vinden:

trips_by_min_passenger_count (3)
| take 10