Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Nu, hvor dine digitale twin builder-data (prøveversion) er projekteret til et eventhouse, kan du undersøge dem med et KQL-forespørgselssæt og visualisere dem med et Real-Time dashboard. I denne del af selvstudiet konfigurerer du et KQL-forespørgselssæt (Kusto Query Language) med eksempelforespørgsler for at udtrække indsigt fra dataene og derefter visualisere denne indsigt med et Real-Time dashboard.
Vigtigt
Denne funktion er i prøveversion.
Forespørg dataene ved hjælp af KQL
Begynd hvor den forrige del af tutorialen slap, i fanen Tutorial_queryset for din Tutorial KQL-database.
+ Opret følgende nye forespørgsler ved hjælp af ovenstående forespørgselsrude. Du kan få flere oplysninger om oprettelse af KQL-forespørgsler under Forespørgselsdata i et KQL-forespørgselssæt.
Status for forsinkelse
Denne forespørgsel beregner forsinkelsen af hver bustur ved at sammenligne det aktuelle tidspunkt og tiden med den næste station med det planlagte ankomsttidspunkt.
//Start with the function generated by the eventhouse projection to get your time series bus data
Bus_timeseries()
// Parse your travel‑time string into a timespan
| extend TimeToNextStationSpan = totimespan(TimeToNextStation)
// Compute when the bus will actually arrive
| extend PredictedArrival = PreciseTimestamp + TimeToNextStationSpan
// Compare that prediction to the schedule
| extend Delay = PredictedArrival - ScheduleTime
| extend DelayRounded = format_timespan(Delay, 'hh:mm:ss')
// Flag and label a delay of more than 5 minutes
| extend IsDelayed = Delay > 5m
| extend DelayLabel = iff(IsDelayed, "Delayed", "On‑Time")
// Select final output columns
| project
TripId,
BusLine,
StopCode,
DelayLabel,
DelayRounded,
PreciseTimestamp,
TimeToNextStationSpan,
PredictedArrival,
ScheduledArrival = ScheduleTime
Kør forespørgslen, og se resultaterne.
Forsinkelser ved stop
Denne forespørgsel beregner oplysninger om forsinkelser fra et busstoppestedsperspektiv, herunder den gennemsnitlige forsinkelsestid ved stop, og hvor ofte ture til stoppestedet er forsinket.
// Compute delay for each event
let delays =
Bus_timeseries()
| extend TimeToNextStationSpan = totimespan(TimeToNextStation)
| extend PredictedArrival = PreciseTimestamp + TimeToNextStationSpan
| extend Delay = PredictedArrival - todatetime(ScheduleTime);
// Join to Stop metadata
delays
| join kind=inner (
Stop_property()
| project Stop_Code, DisplayName, Borough, Suggested_Locality
) on $left.StopCode == $right.Stop_Code
// Aggregate
| summarize
AvgDelayMinutes = avg(Delay) // average timespan
/ 1m, // convert to minutes
TotalRuns = count(),
LateRuns = countif(Delay > 5m)
by Stop_Code, DisplayName, Borough, Locality=Suggested_Locality
| extend PercentLate = round((todouble(LateRuns) / TotalRuns * 100), 2)
| sort by AvgDelayMinutes
Kør forespørgslen, og se resultaterne.
Forsinkelser med bus og rute
Denne forespørgsel beregner oplysninger om forsinkelser fra et busruteperspektiv og beregner en gennemsnitlig forsinkelse for hver kombination af buslinje- og stopkode.
Bus_timeseries()
| extend
// inline compute delay minutes without a two‑step PredictedArrival alias
DelayMinutes =
(
PreciseTimestamp
+ totimespan(TimeToNextStation)
- todatetime(ScheduleTime)
) / 1m
| summarize
AvgDelayMin = round(avg(DelayMinutes), 0) // round to whole minutes
by BusLine, StopCode
| sort by AvgDelayMin
Kør forespørgslen, og se resultaterne.
Anslået forsinkelse
Denne forespørgsel forudsiger, om en bus vil være forsinket ved næste stop baseret på det aktuelle tidspunkt og tidspunktet til næste station.
Bus_timeseries()
// Compute when the bus will actually arrive at the next stop
| extend PredictedArrival = PreciseTimestamp + totimespan(TimeToNextStation)
// Classify "will be late" as a boolean
| extend WillBeLate = PredictedArrival > todatetime(ScheduleTime) + 5m
// Select final output columns
| project
PreciseTimestamp,
StopCode,
PredictedArrival,
WillBeLate
Kør forespørgslen, og se resultaterne.
Visualiser dataene i et Real-Time dashboard
Nu, hvor du har nogle KQL-forespørgsler til at udtrække indsigt fra dine data fra digital twin builder (prøveversion), kan du visualisere resultaterne af disse forespørgsler i et Real-Time Dashboard.
I dette afsnit skal du bruge en skabelonfil til at udfylde et Real-Time dashboard med data fra de forespørgsler, du oprettede i forrige afsnit, sammen med nogle få ekstra forespørgsler.
Sådan ser dashboardet ud (bemærk forespørgslerne fra forrige afsnit: Forsinkelsesstatus, Forsinkelser ved stop, Forsinkelser med bus og rute og Anslået ventetid):
Opret et nyt dashboard
Start med at oprette et tomt Real-Time dashboard i dit Fabric-arbejdsområde.
Realtidsdashboardet findes i konteksten af et arbejdsområde. Et nyt realtidsdashboard er altid knyttet til det arbejdsområde, du bruger, når du opretter det.
Gå til det ønskede arbejdsområde.
Vælg + Nyt element.
Vælg Real-Time Dashboard i vinduet Nyt element. Søg efter tekstfeltet, hvis det er nødvendigt.
I New Real-Time Dashboard-popupen skal du indtaste et navn og arbejdsområdeplacering for dashboardet, og vælge Opret det.
Der oprettes et nyt dashboard i dit arbejdsområde.
Dashboard-indstillinger kan ikke tilgås, før dashboardet er forbundet til en datakilde. Tilføj en indledende datakilde ved at vælge Tutorial KQL-databasen, hvor den er synlig på lærredet.
Databasen åbner med muligheden for at indtaste en forespørgsel for en ny flise. Da du importerer fliser i næste trin, er der ikke behov for at oprette en flise nu. Vælg Fjern ændringer for at vende tilbage til dashboardet, der nu fungerer med en datakildeforbindelse.
Overfør skabelon, og opret forbindelse til datakilde
Brug derefter en skabelonfil til at udfylde dit dashboard med felter, der er baseret på dine KQL-forespørgsler fra tidligere.
Download DTB+RTI_dashboard.json dashboardskabelonen fra eksempelmappen i GitHub: digital-twin-builder/bus-scenario.
I dit Real-Time Dashboard skifter du til fanen Administrér . Vælg Erstat med fil fra menubåndet.
Åbn den dashboardskabelonfil, du har downloadet. Fortsæt gennem migreringsadvarsler , der markerer skabelonens pladsholderværdier for databasen og arbejdsområde-id'et.
Skabelonfilen fylder dashboardet med flere fliser, selvom fliserne ikke kan hente data, før du genopretter din datakilde.
Vælg Datakilder under fanen Administrer. Denne handling åbner ruden Datakilder med en eksempelkilde til dine data. Vælg redigeringsikonet for datakilden Selvstudium .
Under Database skal du vælge rullepilen og KQL-databasen. Vælg KQL-selvstudiet , og vælg Opret forbindelse. Lad de andre standardindstillinger være, vælg Anvend, og luk ruden Datakilder .
Efter et par sekunder udfyldes visualiseringerne med data fra databasen.
Tips
Dashboardet bevarer det aktuelle klokkeslæt i UTC, så tidsintervalvælgeren stemmer muligvis ikke overens med din lokale tid. Hvis du ikke kan se data i felterne, skal du udvide tidsintervallen.
Udforsk dashboardet. Du kan bruge ikonerne Rediger og Udforsk data på hvert felt til at få vist de underliggende forespørgsler, eksperimentere med at ændre tidsintervalfiltrene og andre feltindstillinger og prøve at tilføje dine egne nye forespørgsler og felter.
Med denne visualisering er det komplette selvstudium om brug af digital twin builder (prøveversion) med Real-Time Intelligence fuldført. Du har brugt Digital Twin Builder til at kontekstualisere eksempelbusdata, der streames fra Real-Time Intelligence, og derefter projekterede du dine ontologidata til Eventhouse for at give yderligere indsigt via KQL-forespørgsler og et Real-Time dashboard.
Relateret indhold
Få mere at vide om de KQL-operatorer, der bruges i dette selvstudium: